diff --git a/specs/latest/open-api3-latest-client.json b/specs/latest/open-api3-latest-client.json index 0b5a59cb..3f273b47 100644 --- a/specs/latest/open-api3-latest-client.json +++ b/specs/latest/open-api3-latest-client.json @@ -555,7 +555,7 @@ "x-appwrite": { "method": "updateMFA", "group": "mfa", - "weight": 239, + "weight": 223, "cookies": false, "type": "", "demo": "account\/update-mfa.md", @@ -627,7 +627,7 @@ "x-appwrite": { "method": "createMfaAuthenticator", "group": "mfa", - "weight": 241, + "weight": 225, "cookies": false, "type": "", "demo": "account\/create-mfa-authenticator.md", @@ -751,7 +751,7 @@ "x-appwrite": { "method": "updateMfaAuthenticator", "group": "mfa", - "weight": 242, + "weight": 226, "cookies": false, "type": "", "demo": "account\/update-mfa-authenticator.md", @@ -891,7 +891,7 @@ "x-appwrite": { "method": "deleteMfaAuthenticator", "group": "mfa", - "weight": 243, + "weight": 227, "cookies": false, "type": "", "demo": "account\/delete-mfa-authenticator.md", @@ -1015,7 +1015,7 @@ "x-appwrite": { "method": "createMfaChallenge", "group": "mfa", - "weight": 247, + "weight": 231, "cookies": false, "type": "", "demo": "account\/create-mfa-challenge.md", @@ -1149,7 +1149,7 @@ "x-appwrite": { "method": "updateMfaChallenge", "group": "mfa", - "weight": 248, + "weight": 232, "cookies": false, "type": "", "demo": "account\/update-mfa-challenge.md", @@ -1287,7 +1287,7 @@ "x-appwrite": { "method": "listMfaFactors", "group": "mfa", - "weight": 240, + "weight": 224, "cookies": false, "type": "", "demo": "account\/list-mfa-factors.md", @@ -1388,7 +1388,7 @@ "x-appwrite": { "method": "getMfaRecoveryCodes", "group": "mfa", - "weight": 246, + "weight": 230, "cookies": false, "type": "", "demo": "account\/get-mfa-recovery-codes.md", @@ -1487,7 +1487,7 @@ "x-appwrite": { "method": "createMfaRecoveryCodes", "group": "mfa", - "weight": 244, + "weight": 228, "cookies": false, "type": "", "demo": "account\/create-mfa-recovery-codes.md", @@ -1586,7 +1586,7 @@ "x-appwrite": { "method": "updateMfaRecoveryCodes", "group": "mfa", - "weight": 245, + "weight": 229, "cookies": false, "type": "", "demo": "account\/update-mfa-recovery-codes.md", @@ -4051,7 +4051,7 @@ "x-appwrite": { "method": "getBrowser", "group": null, - "weight": 250, + "weight": 234, "cookies": false, "type": "location", "demo": "avatars\/get-browser.md", @@ -4179,7 +4179,7 @@ "x-appwrite": { "method": "getCreditCard", "group": null, - "weight": 249, + "weight": 233, "cookies": false, "type": "location", "demo": "avatars\/get-credit-card.md", @@ -4313,7 +4313,7 @@ "x-appwrite": { "method": "getFavicon", "group": null, - "weight": 253, + "weight": 237, "cookies": false, "type": "location", "demo": "avatars\/get-favicon.md", @@ -4373,7 +4373,7 @@ "x-appwrite": { "method": "getFlag", "group": null, - "weight": 251, + "weight": 235, "cookies": false, "type": "location", "demo": "avatars\/get-flag.md", @@ -4863,7 +4863,7 @@ "x-appwrite": { "method": "getImage", "group": null, - "weight": 252, + "weight": 236, "cookies": false, "type": "location", "demo": "avatars\/get-image.md", @@ -4947,7 +4947,7 @@ "x-appwrite": { "method": "getInitials", "group": null, - "weight": 255, + "weight": 239, "cookies": false, "type": "location", "demo": "avatars\/get-initials.md", @@ -5041,7 +5041,7 @@ "x-appwrite": { "method": "getQR", "group": null, - "weight": 254, + "weight": 238, "cookies": false, "type": "location", "demo": "avatars\/get-qr.md", @@ -5135,7 +5135,7 @@ "x-appwrite": { "method": "getScreenshot", "group": null, - "weight": 256, + "weight": 240, "cookies": false, "type": "location", "demo": "avatars\/get-screenshot.md", @@ -5888,7 +5888,7 @@ "x-appwrite": { "method": "listTransactions", "group": "transactions", - "weight": 332, + "weight": 316, "cookies": false, "type": "", "demo": "databases\/list-transactions.md", @@ -5955,7 +5955,7 @@ "x-appwrite": { "method": "createTransaction", "group": "transactions", - "weight": 328, + "weight": 312, "cookies": false, "type": "", "demo": "databases\/create-transaction.md", @@ -6026,7 +6026,7 @@ "x-appwrite": { "method": "getTransaction", "group": "transactions", - "weight": 329, + "weight": 313, "cookies": false, "type": "", "demo": "databases\/get-transaction.md", @@ -6090,7 +6090,7 @@ "x-appwrite": { "method": "updateTransaction", "group": "transactions", - "weight": 330, + "weight": 314, "cookies": false, "type": "", "demo": "databases\/update-transaction.md", @@ -6168,7 +6168,7 @@ "x-appwrite": { "method": "deleteTransaction", "group": "transactions", - "weight": 331, + "weight": 315, "cookies": false, "type": "", "demo": "databases\/delete-transaction.md", @@ -6234,7 +6234,7 @@ "x-appwrite": { "method": "createOperations", "group": "transactions", - "weight": 333, + "weight": 317, "cookies": false, "type": "", "demo": "databases\/create-operations.md", @@ -6319,7 +6319,7 @@ "x-appwrite": { "method": "listDocuments", "group": "documents", - "weight": 283, + "weight": 267, "cookies": false, "type": "", "demo": "databases\/list-documents.md", @@ -6405,6 +6405,18 @@ "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", + "x-example": 0, + "default": 0 + }, + "in": "query" } ] }, @@ -6431,7 +6443,7 @@ "x-appwrite": { "method": "createDocument", "group": "documents", - "weight": 275, + "weight": 259, "cookies": false, "type": "", "demo": "databases\/create-document.md", @@ -6566,6 +6578,146 @@ } } } + }, + "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": { + "method": "upsertDocuments", + "group": "documents", + "weight": 264, + "cookies": false, + "type": "", + "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", + "client", + "server", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/upsert-documents.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.upsertRows" + }, + "methods": [ + { + "name": "upsertDocuments", + "namespace": "databases", + "desc": "", + "auth": { + "Project": [] + }, + "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": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "documents": { + "type": "array", + "description": "Array of document data as JSON objects. May contain partial documents.", + "x-example": null, + "items": { + "type": "object" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "", + "x-nullable": true + } + }, + "required": [ + "documents" + ] + } + } + } + } } }, "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { @@ -6592,7 +6744,7 @@ "x-appwrite": { "method": "getDocument", "group": "documents", - "weight": 276, + "weight": 260, "cookies": false, "type": "", "demo": "databases\/get-document.md", @@ -6703,7 +6855,7 @@ "x-appwrite": { "method": "upsertDocument", "group": "documents", - "weight": 279, + "weight": 263, "cookies": false, "type": "", "demo": "databases\/upsert-document.md", @@ -6858,7 +7010,7 @@ "x-appwrite": { "method": "updateDocument", "group": "documents", - "weight": 277, + "weight": 261, "cookies": false, "type": "", "demo": "databases\/update-document.md", @@ -6970,7 +7122,7 @@ "x-appwrite": { "method": "deleteDocument", "group": "documents", - "weight": 281, + "weight": 265, "cookies": false, "type": "", "demo": "databases\/delete-document.md", @@ -7077,7 +7229,7 @@ "x-appwrite": { "method": "decrementDocumentAttribute", "group": "documents", - "weight": 286, + "weight": 270, "cookies": false, "type": "", "demo": "databases\/decrement-document-attribute.md", @@ -7206,7 +7358,7 @@ "x-appwrite": { "method": "incrementDocumentAttribute", "group": "documents", - "weight": 285, + "weight": 269, "cookies": false, "type": "", "demo": "databases\/increment-document-attribute.md", @@ -7311,21 +7463,21 @@ } } }, - "\/functions\/{functionId}\/executions": { + "\/documentsdb\/transactions": { "get": { - "summary": "List executions", - "operationId": "functionsListExecutions", + "summary": "List transactions", + "operationId": "documentsDBListTransactions", "tags": [ - "functions" + "documentsDB" ], - "description": "Get a list of all the current user function execution logs. You can use the query params to filter your results.", + "description": false, "responses": { "200": { - "description": "Executions List", + "description": "Transaction List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/executionList" + "$ref": "#\/components\/schemas\/transactionList" } } } @@ -7333,20 +7485,20 @@ }, "deprecated": false, "x-appwrite": { - "method": "listExecutions", - "group": "executions", - "weight": 577, + "method": "listTransactions", + "group": "transactions", + "weight": 425, "cookies": false, "type": "", - "demo": "functions\/list-executions.md", + "demo": "documentsdb\/list-transactions.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "execution.read", + "scope": "documents.read", "platforms": [ "console", - "client", "server", + "client", "server" ], "packaging": false, @@ -7363,19 +7515,9 @@ } ], "parameters": [ - { - "name": "functionId", - "description": "Function ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - }, { "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: trigger, status, responseStatusCode, duration, requestMethod, requestPath, deploymentId", + "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", @@ -7385,34 +7527,23 @@ "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", - "x-example": false, - "default": true - }, - "in": "query" } ] }, "post": { - "summary": "Create execution", - "operationId": "functionsCreateExecution", + "summary": "Create transaction", + "operationId": "documentsDBCreateTransaction", "tags": [ - "functions" + "documentsDB" ], - "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.", + "description": false, "responses": { "201": { - "description": "Execution", + "description": "Transaction", "content": { - "multipart\/form-data": { + "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/execution" + "$ref": "#\/components\/schemas\/transaction" } } } @@ -7420,20 +7551,20 @@ }, "deprecated": false, "x-appwrite": { - "method": "createExecution", - "group": "executions", - "weight": 575, + "method": "createTransaction", + "group": "transactions", + "weight": 421, "cookies": false, "type": "", - "demo": "functions\/create-execution.md", + "demo": "documentsdb\/create-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "execution.write", + "scope": "documents.write", "platforms": [ "console", - "client", "server", + "client", "server" ], "packaging": false, @@ -7449,66 +7580,18 @@ "JWT": [] } ], - "parameters": [ - { - "name": "functionId", - "description": "Function ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - } - ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "body": { - "type": "string", - "description": "HTTP body of execution. Default value is empty string.", - "x-example": "" - }, - "async": { - "type": "boolean", - "description": "Execute code in the background. Default value is false.", - "x-example": false - }, - "path": { - "type": "string", - "description": "HTTP path of execution. Path can include query params. Default value is \/", - "x-example": "" - }, - "method": { - "type": "string", - "description": "HTTP method of execution. Default value is POST.", - "x-example": "GET", - "enum": [ - "GET", - "POST", - "PUT", - "PATCH", - "DELETE", - "OPTIONS", - "HEAD" - ], - "x-enum-name": "ExecutionMethod", - "x-enum-keys": [] - }, - "headers": { - "type": "object", - "description": "HTTP headers of execution. Defaults to empty.", - "x-example": "{}" - }, - "scheduledAt": { - "type": "string", - "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.", - "x-example": "", - "x-nullable": true - } + "ttl": { + "type": "integer", + "description": "Seconds before the transaction expires.", + "x-example": 60, + "format": "int32" + } } } } @@ -7516,21 +7599,21 @@ } } }, - "\/functions\/{functionId}\/executions\/{executionId}": { + "\/documentsdb\/transactions\/{transactionId}": { "get": { - "summary": "Get execution", - "operationId": "functionsGetExecution", + "summary": "Get transaction", + "operationId": "documentsDBGetTransaction", "tags": [ - "functions" + "documentsDB" ], - "description": "Get a function execution log by its unique ID.", + "description": false, "responses": { "200": { - "description": "Execution", + "description": "Transaction", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/execution" + "$ref": "#\/components\/schemas\/transaction" } } } @@ -7538,20 +7621,20 @@ }, "deprecated": false, "x-appwrite": { - "method": "getExecution", - "group": "executions", - "weight": 576, + "method": "getTransaction", + "group": "transactions", + "weight": 422, "cookies": false, "type": "", - "demo": "functions\/get-execution.md", + "demo": "documentsdb\/get-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "execution.read", + "scope": "documents.read", "platforms": [ "console", - "client", "server", + "client", "server" ], "packaging": false, @@ -7569,43 +7652,31 @@ ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - }, - { - "name": "executionId", - "description": "Execution ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" } ] - } - }, - "\/graphql": { - "post": { - "summary": "GraphQL endpoint", - "operationId": "graphqlQuery", + }, + "patch": { + "summary": "Update transaction", + "operationId": "documentsDBUpdateTransaction", "tags": [ - "graphql" + "documentsDB" ], - "description": "Execute a GraphQL mutation.", + "description": false, "responses": { "200": { - "description": "Any", + "description": "Transaction", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/any" + "$ref": "#\/components\/schemas\/transaction" } } } @@ -7613,16 +7684,16 @@ }, "deprecated": false, "x-appwrite": { - "method": "query", - "group": "graphql", - "weight": 176, + "method": "updateTransaction", + "group": "transactions", + "weight": 423, "cookies": false, - "type": "graphql", - "demo": "graphql\/query.md", - "rate-limit": 60, - "rate-time": 60, + "type": "", + "demo": "documentsdb\/update-transaction.md", + "rate-limit": 0, + "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "graphql", + "scope": "documents.write", "platforms": [ "console", "server", @@ -7631,7 +7702,6 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/graphql\/post.md", "auth": { "Project": [] } @@ -7642,41 +7712,65 @@ "Session": [], "JWT": [] } - ] - } - }, - "\/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" + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "commit": { + "type": "boolean", + "description": "Commit transaction?", + "x-example": false + }, + "rollback": { + "type": "boolean", + "description": "Rollback transaction?", + "x-example": false + } } } } } + } + }, + "delete": { + "summary": "Delete transaction", + "operationId": "documentsDBDeleteTransaction", + "tags": [ + "documentsDB" + ], + "description": false, + "responses": { + "204": { + "description": "No content" + } }, "deprecated": false, "x-appwrite": { - "method": "mutation", - "group": "graphql", - "weight": 175, + "method": "deleteTransaction", + "group": "transactions", + "weight": 424, "cookies": false, - "type": "graphql", - "demo": "graphql\/mutation.md", - "rate-limit": 60, - "rate-time": 60, + "type": "", + "demo": "documentsdb\/delete-transaction.md", + "rate-limit": 0, + "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "graphql", + "scope": "documents.write", "platforms": [ "console", "server", @@ -7685,7 +7779,6 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/graphql\/post.md", "auth": { "Project": [] } @@ -7696,24 +7789,36 @@ "Session": [], "JWT": [] } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } ] } }, - "\/locale": { - "get": { - "summary": "Get user locale", - "operationId": "localeGet", + "\/documentsdb\/transactions\/{transactionId}\/operations": { + "post": { + "summary": "Create operations", + "operationId": "documentsDBCreateOperations", "tags": [ - "locale" + "documentsDB" ], - "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))", + "description": false, "responses": { - "200": { - "description": "Locale", + "201": { + "description": "Transaction", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/locale" + "$ref": "#\/components\/schemas\/transaction" } } } @@ -7721,25 +7826,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": null, - "weight": 49, + "method": "createOperations", + "group": "transactions", + "weight": 426, "cookies": false, "type": "", - "demo": "locale\/get.md", + "demo": "documentsdb\/create-operations.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "scope": "documents.write", "platforms": [ - "console", - "client", "server", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-locale.md", "auth": { "Project": [] } @@ -7750,24 +7853,55 @@ "Session": [], "JWT": [] } - ] + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "operations": { + "type": "array", + "description": "Array of staged operations.", + "x-example": "[\n\t {\n\t \"action\": \"create\",\n\t \"databaseId\": \"\",\n\t \"collectionId\": \"\",\n\t \"documentId\": \"\",\n\t \"data\": {\n\t \"name\": \"Walter O'Brien\"\n\t }\n\t }\n\t]", + "items": { + "type": "object" + } + } + } + } + } + } + } } }, - "\/locale\/codes": { + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents": { "get": { - "summary": "List locale codes", - "operationId": "localeListCodes", + "summary": "List documents", + "operationId": "documentsDBListDocuments", "tags": [ - "locale" + "documentsDB" ], - "description": "List of all locale codes in [ISO 639-1](https:\/\/en.wikipedia.org\/wiki\/List_of_ISO_639-1_codes).", + "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": "Locale codes list", + "description": "Documents List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/localeCodeList" + "$ref": "#\/components\/schemas\/documentList" } } } @@ -7775,16 +7909,16 @@ }, "deprecated": false, "x-appwrite": { - "method": "listCodes", - "group": null, - "weight": 50, + "method": "listDocuments", + "group": "documents", + "weight": 417, "cookies": false, "type": "", - "demo": "locale\/list-codes.md", + "demo": "documentsdb\/list-documents.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "scope": "documents.read", "platforms": [ "console", "client", @@ -7793,7 +7927,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-locale-codes.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/list-documents.md", "auth": { "Project": [] } @@ -7804,78 +7938,90 @@ "Session": [], "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": { - "method": "listContinents", - "group": null, - "weight": 54, - "cookies": false, - "type": "", - "demo": "locale\/list-continents.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", - "platforms": [ - "console", - "client", - "server", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-continents.md", - "auth": { - "Project": [] - } - }, - "security": [ + "parameters": [ { - "Project": [], - "Session": [], - "JWT": [] + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "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", + "x-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", + "x-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", + "x-example": 0, + "default": 0 + }, + "in": "query" } ] - } - }, - "\/locale\/countries": { - "get": { - "summary": "List countries", - "operationId": "localeListCountries", + }, + "post": { + "summary": "Create document", + "operationId": "documentsDBCreateDocument", "tags": [ - "locale" + "documentsDB" ], - "description": "List of all countries. You can use the locale header to get the data in a supported language.", + "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": { - "200": { - "description": "Countries List", + "201": { + "description": "Document", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/countryList" + "$ref": "#\/components\/schemas\/document" } } } @@ -7883,16 +8029,16 @@ }, "deprecated": false, "x-appwrite": { - "method": "listCountries", - "group": null, - "weight": 51, + "method": "createDocument", + "group": "documents", + "weight": 409, "cookies": false, "type": "", - "demo": "locale\/list-countries.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "demo": "documentsdb\/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", @@ -7901,7 +8047,66 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/create-document.md", + "methods": [ + { + "name": "createDocument", + "namespace": "documentsDB", + "desc": "Create document", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions" + ], + "required": [ + "databaseId", + "collectionId", + "documentId", + "data" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/document" + } + ], + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "demo": "documentsdb\/create-document.md", + "public": true + }, + { + "name": "createDocuments", + "namespace": "documentsDB", + "desc": "Create documents", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documents" + ], + "required": [ + "databaseId", + "collectionId", + "documents" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/documentList" + } + ], + "description": "Create new Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "demo": "documentsdb\/create-documents.md", + "public": true + } + ], "auth": { "Project": [] } @@ -7912,24 +8117,88 @@ "Session": [], "JWT": [] } - ] + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection). Make sure to define attributes before creating documents.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "documentId": { + "type": "string", + "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "" + }, + "data": { + "type": "object", + "description": "Document data as JSON object.", + "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":30,\"isAdmin\":false}" + }, + "permissions": { + "type": "array", + "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).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } + }, + "documents": { + "type": "array", + "description": "Array of documents data as JSON objects.", + "x-example": null, + "items": { + "type": "object" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "" + } + } + } + } + } + } } }, - "\/locale\/countries\/eu": { + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { "get": { - "summary": "List EU countries", - "operationId": "localeListCountriesEU", + "summary": "Get document", + "operationId": "documentsDBGetDocument", "tags": [ - "locale" + "documentsDB" ], - "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.", + "description": "Get a document by its unique ID. This endpoint response returns a JSON object with the document data.", "responses": { "200": { - "description": "Countries List", + "description": "Document", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/countryList" + "$ref": "#\/components\/schemas\/document" } } } @@ -7937,16 +8206,16 @@ }, "deprecated": false, "x-appwrite": { - "method": "listCountriesEU", - "group": null, - "weight": 52, + "method": "getDocument", + "group": "documents", + "weight": 410, "cookies": false, "type": "", - "demo": "locale\/list-countries-eu.md", + "demo": "documentsdb\/get-document.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "scope": "documents.read", "platforms": [ "console", "client", @@ -7955,7 +8224,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries-eu.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/get-document.md", "auth": { "Project": [] } @@ -7966,24 +8235,77 @@ "Session": [], "JWT": [] } - ] - } - }, - "\/locale\/countries\/phones": { - "get": { - "summary": "List countries phone codes", - "operationId": "localeListCountriesPhones", + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "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", + "x-example": "" + }, + "in": "query" + } + ] + }, + "put": { + "summary": "Upsert a document", + "operationId": "documentsDBUpsertDocument", "tags": [ - "locale" + "documentsDB" ], - "description": "List of all countries phone codes. You can use the locale header to get the data in a supported language.", + "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": { - "200": { - "description": "Phones List", + "201": { + "description": "Document", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/phoneList" + "$ref": "#\/components\/schemas\/document" } } } @@ -7991,16 +8313,16 @@ }, "deprecated": false, "x-appwrite": { - "method": "listCountriesPhones", - "group": null, - "weight": 53, + "method": "upsertDocument", + "group": "documents", + "weight": 413, "cookies": false, "type": "", - "demo": "locale\/list-countries-phones.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "demo": "documentsdb\/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", @@ -8009,7 +8331,39 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries-phones.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/upsert-document.md", + "methods": [ + { + "name": "upsertDocument", + "namespace": "documentsDB", + "desc": "", + "auth": { + "Project": [] + }, + "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": { "Project": [] } @@ -8020,78 +8374,83 @@ "Session": [], "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" + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "object", + "description": "Document data as JSON object. Include all required fields of the document to be created or updated.", + "x-example": "{}" + }, + "permissions": { + "type": "array", + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "" + } } } } } - }, - "deprecated": false, - "x-appwrite": { - "method": "listCurrencies", - "group": null, - "weight": 55, - "cookies": false, - "type": "", - "demo": "locale\/list-currencies.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", - "platforms": [ - "console", - "client", - "server", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-currencies.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ] - } - }, - "\/locale\/languages": { - "get": { - "summary": "List languages", - "operationId": "localeListLanguages", + } + }, + "patch": { + "summary": "Update document", + "operationId": "documentsDBUpdateDocument", "tags": [ - "locale" + "documentsDB" ], - "description": "List of all languages classified by ISO 639-1 including 2-letter code, name in English, and name in the respective language.", + "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": "Languages List", + "description": "Document", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/languageList" + "$ref": "#\/components\/schemas\/document" } } } @@ -8099,16 +8458,16 @@ }, "deprecated": false, "x-appwrite": { - "method": "listLanguages", - "group": null, - "weight": 56, + "method": "updateDocument", + "group": "documents", + "weight": 411, "cookies": false, "type": "", - "demo": "locale\/list-languages.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "demo": "documentsdb\/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", @@ -8117,7 +8476,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-languages.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/update-document.md", "auth": { "Project": [] } @@ -8128,69 +8487,35 @@ "Session": [], "JWT": [] } - ] - } - }, - "\/messaging\/topics\/{topicId}\/subscribers": { - "post": { - "summary": "Create subscriber", - "operationId": "messagingCreateSubscriber", - "tags": [ - "messaging" - ], - "description": "Create a new subscriber.", - "responses": { - "201": { - "description": "Subscriber", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/subscriber" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "createSubscriber", - "group": "subscribers", - "weight": 223, - "cookies": false, - "type": "", - "demo": "messaging\/create-subscriber.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "subscribers.write", - "platforms": [ - "server", - "client", - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-subscriber.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "JWT": [], - "Session": [] - } ], "parameters": [ { - "name": "topicId", - "description": "Topic ID. The topic ID to subscribe to.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" }, "in": "path" } @@ -8201,35 +8526,37 @@ "schema": { "type": "object", "properties": { - "subscriberId": { - "type": "string", - "description": "Subscriber ID. Choose a custom Subscriber ID or a new Subscriber ID.", - "x-example": "" + "data": { + "type": "object", + "description": "Document data as JSON object. Include only fields and value pairs to be updated.", + "x-example": "{}" }, - "targetId": { + "permissions": { + "type": "array", + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } + }, + "transactionId": { "type": "string", - "description": "Target ID. The target ID to link to the specified Topic ID.", - "x-example": "" + "description": "Transaction ID for staging the operation.", + "x-example": "" } - }, - "required": [ - "subscriberId", - "targetId" - ] + } } } } } - } - }, - "\/messaging\/topics\/{topicId}\/subscribers\/{subscriberId}": { + }, "delete": { - "summary": "Delete subscriber", - "operationId": "messagingDeleteSubscriber", + "summary": "Delete document", + "operationId": "documentsDBDeleteDocument", "tags": [ - "messaging" + "documentsDB" ], - "description": "Delete a subscriber by its unique ID.", + "description": "Delete a document by its unique ID.", "responses": { "204": { "description": "No content" @@ -8237,25 +8564,25 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteSubscriber", - "group": "subscribers", - "weight": 227, + "method": "deleteDocument", + "group": "documents", + "weight": 415, "cookies": false, "type": "", - "demo": "messaging\/delete-subscriber.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "subscribers.write", + "demo": "documentsdb\/delete-document.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", "platforms": [ - "server", - "client", "console", + "client", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-subscriber.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/delete-document.md", "auth": { "Project": [] } @@ -8263,49 +8590,75 @@ "security": [ { "Project": [], - "JWT": [], - "Session": [] + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "topicId", - "description": "Topic ID. The topic ID subscribed to.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" }, { - "name": "subscriberId", - "description": "Subscriber ID.", + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "" + } + } + } + } + } + } } }, - "\/storage\/buckets\/{bucketId}\/files": { - "get": { - "summary": "List files", - "operationId": "storageListFiles", + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/decrement": { + "patch": { + "summary": "Decrement document attribute", + "operationId": "documentsDBDecrementDocumentAttribute", "tags": [ - "storage" + "documentsDB" ], - "description": "Get a list of all the user files. You can use the query params to filter your results.", + "description": "Decrement a specific column of a row by a given value.", "responses": { "200": { - "description": "Files List", + "description": "Document", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/fileList" + "$ref": "#\/components\/schemas\/document" } } } @@ -8313,25 +8666,25 @@ }, "deprecated": false, "x-appwrite": { - "method": "listFiles", - "group": "files", - "weight": 535, + "method": "decrementDocumentAttribute", + "group": "documents", + "weight": 420, "cookies": false, "type": "", - "demo": "storage\/list-files.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", + "demo": "documentsdb\/decrement-document-attribute.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", "platforms": [ - "console", "client", "server", + "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/list-files.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/decrement-document-attribute.md", "auth": { "Project": [] } @@ -8345,66 +8698,90 @@ ], "parameters": [ { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" }, { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: name, signature, mimeType, sizeOriginal, chunksTotal, chunksUploaded", - "required": false, + "name": "collectionId", + "description": "Collection ID.", + "required": true, "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] + "type": "string", + "x-example": "" }, - "in": "query" + "in": "path" }, { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, + "name": "documentId", + "description": "Document ID.", + "required": true, "schema": { "type": "string", - "x-example": "", - "default": "" + "x-example": "" }, - "in": "query" + "in": "path" }, { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, + "name": "attribute", + "description": "Attribute key.", + "required": true, "schema": { - "type": "boolean", - "x-example": false, - "default": true + "type": "string" }, - "in": "query" + "in": "path" } - ] - }, - "post": { - "summary": "Create file", - "operationId": "storageCreateFile", - "tags": [ - "storage" ], - "description": "Create a new file. Before using this route, you should create a new bucket resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/storage#storageCreateBucket) API or directly from your Appwrite console.\n\nLarger files should be uploaded using multiple requests with the [content-range](https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTTP\/Headers\/Content-Range) header to send a partial request with a maximum supported chunk of `5MB`. The `content-range` header values should always be in bytes.\n\nWhen the first request is sent, the server will return the **File** object, and the subsequent part request must include the file's **id** in `x-appwrite-id` header to allow the server to know that the partial upload is for the existing file and not for a new one.\n\nIf you're creating a new file using one of the Appwrite SDKs, all the chunking logic will be managed by the SDK internally.\n", - "responses": { - "201": { - "description": "File", + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "value": { + "type": "number", + "description": "Value to decrement the attribute by. The value must be a number.", + "x-example": null, + "format": "float" + }, + "min": { + "type": "number", + "description": "Minimum value for the attribute. If the current value is lesser than this value, an exception will be thrown.", + "x-example": null, + "format": "float" + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-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\/file" + "$ref": "#\/components\/schemas\/document" } } } @@ -8412,25 +8789,25 @@ }, "deprecated": false, "x-appwrite": { - "method": "createFile", - "group": "files", - "weight": 781, + "method": "incrementDocumentAttribute", + "group": "documents", + "weight": 419, "cookies": false, - "type": "upload", - "demo": "storage\/create-file.md", - "rate-limit": 60, + "type": "", + "demo": "documentsdb\/increment-document-attribute.md", + "rate-limit": 120, "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId},chunkId:{chunkId}", - "scope": "files.write", + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", "platforms": [ - "console", "client", "server", + "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/create-file.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/increment-document-attribute.md", "auth": { "Project": [] } @@ -8444,69 +8821,90 @@ ], "parameters": [ { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "attribute", + "description": "Attribute key.", + "required": true, + "schema": { + "type": "string" }, "in": "path" } ], "requestBody": { "content": { - "multipart\/form-data": { + "application\/json": { "schema": { "type": "object", "properties": { - "fileId": { - "type": "string", - "description": "File 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.", - "x-example": "", - "x-upload-id": true + "value": { + "type": "number", + "description": "Value to increment the attribute by. The value must be a number.", + "x-example": null, + "format": "float" }, - "file": { - "type": "string", - "description": "Binary file. Appwrite SDKs provide helpers to handle file input. [Learn about file input](https:\/\/appwrite.io\/docs\/products\/storage\/upload-download#input-file).", + "max": { + "type": "number", + "description": "Maximum value for the attribute. If the current value is greater than this value, an error will be thrown.", "x-example": null, - "format": "binary" + "format": "float" }, - "permissions": { - "type": "array", - "description": "An array of permission strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "x-example": "[\"read(\"any\")\"]", - "items": { - "type": "string" - }, - "x-nullable": true + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "" } - }, - "required": [ - "fileId", - "file" - ] + } } } } } } }, - "\/storage\/buckets\/{bucketId}\/files\/{fileId}": { + "\/functions\/{functionId}\/executions": { "get": { - "summary": "Get file", - "operationId": "storageGetFile", + "summary": "List executions", + "operationId": "functionsListExecutions", "tags": [ - "storage" + "functions" ], - "description": "Get a file by its unique ID. This endpoint response returns a JSON object with the file metadata.", + "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": "File", + "description": "Executions List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/file" + "$ref": "#\/components\/schemas\/executionList" } } } @@ -8514,16 +8912,16 @@ }, "deprecated": false, "x-appwrite": { - "method": "getFile", - "group": "files", - "weight": 534, + "method": "listExecutions", + "group": "executions", + "weight": 493, "cookies": false, "type": "", - "demo": "storage\/get-file.md", + "demo": "functions\/list-executions.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", + "scope": "execution.read", "platforms": [ "console", "client", @@ -8532,7 +8930,6 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file.md", "auth": { "Project": [] } @@ -8546,41 +8943,55 @@ ], "parameters": [ { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "name": "functionId", + "description": "Function ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" }, { - "name": "fileId", - "description": "File ID.", - "required": true, + "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": "string", - "x-example": "" + "type": "array", + "items": { + "type": "string" + }, + "default": [] }, - "in": "path" + "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", + "x-example": false, + "default": true + }, + "in": "query" } ] }, - "put": { - "summary": "Update file", - "operationId": "storageUpdateFile", + "post": { + "summary": "Create execution", + "operationId": "functionsCreateExecution", "tags": [ - "storage" + "functions" ], - "description": "Update a file by its unique ID. Only users with write permissions have access to update this resource.", + "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": { - "200": { - "description": "File", + "201": { + "description": "Execution", "content": { - "application\/json": { + "multipart\/form-data": { "schema": { - "$ref": "#\/components\/schemas\/file" + "$ref": "#\/components\/schemas\/execution" } } } @@ -8588,16 +8999,16 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateFile", - "group": "files", - "weight": 536, + "method": "createExecution", + "group": "executions", + "weight": 491, "cookies": false, "type": "", - "demo": "storage\/update-file.md", + "demo": "functions\/create-execution.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "files.write", + "scope": "execution.write", "platforms": [ "console", "client", @@ -8606,7 +9017,6 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/update-file.md", "auth": { "Project": [] } @@ -8620,22 +9030,12 @@ ], "parameters": [ { - "name": "bucketId", - "description": "Bucket unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - }, - { - "name": "fileId", - "description": "File ID.", + "name": "functionId", + "description": "Function ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" } @@ -8646,50 +9046,87 @@ "schema": { "type": "object", "properties": { - "name": { + "body": { "type": "string", - "description": "File name.", - "x-example": "" + "description": "HTTP body of execution. Default value is empty string.", + "x-example": "" }, - "permissions": { - "type": "array", - "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "x-example": "[\"read(\"any\")\"]", - "items": { - "type": "string" - }, - "x-nullable": true - } - } - } - } - } - } - }, - "delete": { - "summary": "Delete file", - "operationId": "storageDeleteFile", - "tags": [ - "storage" - ], - "description": "Delete a file by its unique ID. Only users with write permissions have access to delete this resource.", - "responses": { - "204": { - "description": "No content" - } + "async": { + "type": "boolean", + "description": "Execute code in the background. Default value is false.", + "x-example": false + }, + "path": { + "type": "string", + "description": "HTTP path of execution. Path can include query params. Default value is \/", + "x-example": "" + }, + "method": { + "type": "string", + "description": "HTTP method of execution. Default value is POST.", + "x-example": "GET", + "enum": [ + "GET", + "POST", + "PUT", + "PATCH", + "DELETE", + "OPTIONS", + "HEAD" + ], + "x-enum-name": "ExecutionMethod", + "x-enum-keys": [] + }, + "headers": { + "type": "object", + "description": "HTTP headers of execution. Defaults to empty.", + "x-example": "{}" + }, + "scheduledAt": { + "type": "string", + "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.", + "x-example": "", + "x-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": { - "method": "deleteFile", - "group": "files", - "weight": 537, + "method": "getExecution", + "group": "executions", + "weight": 492, "cookies": false, "type": "", - "demo": "storage\/delete-file.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "files.write", + "demo": "functions\/get-execution.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "execution.read", "platforms": [ "console", "client", @@ -8698,7 +9135,6 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/delete-file.md", "auth": { "Project": [] } @@ -8712,62 +9148,69 @@ ], "parameters": [ { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "name": "functionId", + "description": "Function ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" }, { - "name": "fileId", - "description": "File ID.", + "name": "executionId", + "description": "Execution ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" } ] } }, - "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/download": { - "get": { - "summary": "Get file for download", - "operationId": "storageGetFileDownload", + "\/graphql": { + "post": { + "summary": "GraphQL endpoint", + "operationId": "graphqlQuery", "tags": [ - "storage" + "graphql" ], - "description": "Get a file 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.", + "description": "Execute a GraphQL mutation.", "responses": { "200": { - "description": "File" + "description": "Any", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/any" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "getFileDownload", - "group": "files", - "weight": 539, + "method": "query", + "group": "graphql", + "weight": 160, "cookies": false, - "type": "location", - "demo": "storage\/get-file-download.md", - "rate-limit": 0, - "rate-time": 3600, + "type": "graphql", + "demo": "graphql\/query.md", + "rate-limit": 60, + "rate-time": 60, "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", + "scope": "graphql", "platforms": [ "console", - "client", "server", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-download.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/graphql\/post.md", "auth": { "Project": [] } @@ -8778,67 +9221,95 @@ "Session": [], "JWT": [] } + ] + } + }, + "\/graphql\/mutation": { + "post": { + "summary": "GraphQL endpoint", + "operationId": "graphqlMutation", + "tags": [ + "graphql" ], - "parameters": [ - { - "name": "bucketId", - "description": "Storage bucket ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - }, - { - "name": "fileId", - "description": "File ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - }, + "description": "Execute a GraphQL mutation.", + "responses": { + "200": { + "description": "Any", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/any" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "mutation", + "group": "graphql", + "weight": 159, + "cookies": false, + "type": "graphql", + "demo": "graphql\/mutation.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "url:{url},ip:{ip}", + "scope": "graphql", + "platforms": [ + "console", + "server", + "client", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/graphql\/post.md", + "auth": { + "Project": [] + } + }, + "security": [ { - "name": "token", - "description": "File token for accessing this file.", - "required": false, - "schema": { - "type": "string", - "x-example": "", - "default": "" - }, - "in": "query" + "Project": [], + "Session": [], + "JWT": [] } ] } }, - "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/preview": { + "\/locale": { "get": { - "summary": "Get file preview", - "operationId": "storageGetFilePreview", + "summary": "Get user locale", + "operationId": "localeGet", "tags": [ - "storage" + "locale" ], - "description": "Get a file preview image. Currently, this method supports preview for image files (jpg, png, and gif), other supported formats, like pdf, docs, slides, and spreadsheets, will return the file icon image. You can also pass query string arguments for cutting and resizing your preview image. Preview is supported only for image files smaller than 10MB.", + "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": "Image" + "description": "Locale", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/locale" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "getFilePreview", - "group": "files", - "weight": 538, + "method": "get", + "group": null, + "weight": 49, "cookies": false, - "type": "location", - "demo": "storage\/get-file-preview.md", + "type": "", + "demo": "locale\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", + "scope": "locale.read", "platforms": [ "console", "client", @@ -8847,7 +9318,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-preview.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-locale.md", "auth": { "Project": [] } @@ -8858,43 +9329,1942 @@ "Session": [], "JWT": [] } + ] + } + }, + "\/locale\/codes": { + "get": { + "summary": "List locale codes", + "operationId": "localeListCodes", + "tags": [ + "locale" ], - "parameters": [ - { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", - "required": true, - "schema": { + "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": { + "method": "listCodes", + "group": null, + "weight": 50, + "cookies": false, + "type": "", + "demo": "locale\/list-codes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-locale-codes.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "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": { + "method": "listContinents", + "group": null, + "weight": 54, + "cookies": false, + "type": "", + "demo": "locale\/list-continents.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-continents.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "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": { + "method": "listCountries", + "group": null, + "weight": 51, + "cookies": false, + "type": "", + "demo": "locale\/list-countries.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "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": { + "method": "listCountriesEU", + "group": null, + "weight": 52, + "cookies": false, + "type": "", + "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", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries-eu.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "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": { + "method": "listCountriesPhones", + "group": null, + "weight": 53, + "cookies": false, + "type": "", + "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", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries-phones.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "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": { + "method": "listCurrencies", + "group": null, + "weight": 55, + "cookies": false, + "type": "", + "demo": "locale\/list-currencies.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-currencies.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "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": { + "method": "listLanguages", + "group": null, + "weight": 56, + "cookies": false, + "type": "", + "demo": "locale\/list-languages.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-languages.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + } + }, + "\/messaging\/topics\/{topicId}\/subscribers": { + "post": { + "summary": "Create subscriber", + "operationId": "messagingCreateSubscriber", + "tags": [ + "messaging" + ], + "description": "Create a new subscriber.", + "responses": { + "201": { + "description": "Subscriber", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/subscriber" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createSubscriber", + "group": "subscribers", + "weight": 207, + "cookies": false, + "type": "", + "demo": "messaging\/create-subscriber.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "subscribers.write", + "platforms": [ + "server", + "client", + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-subscriber.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "JWT": [], + "Session": [] + } + ], + "parameters": [ + { + "name": "topicId", + "description": "Topic ID. The topic ID to subscribe to.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "subscriberId": { + "type": "string", + "description": "Subscriber ID. Choose a custom Subscriber ID or a new Subscriber ID.", + "x-example": "" + }, + "targetId": { + "type": "string", + "description": "Target ID. The target ID to link to the specified Topic ID.", + "x-example": "" + } + }, + "required": [ + "subscriberId", + "targetId" + ] + } + } + } + } + } + }, + "\/messaging\/topics\/{topicId}\/subscribers\/{subscriberId}": { + "delete": { + "summary": "Delete subscriber", + "operationId": "messagingDeleteSubscriber", + "tags": [ + "messaging" + ], + "description": "Delete a subscriber by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteSubscriber", + "group": "subscribers", + "weight": 211, + "cookies": false, + "type": "", + "demo": "messaging\/delete-subscriber.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "subscribers.write", + "platforms": [ + "server", + "client", + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-subscriber.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "JWT": [], + "Session": [] + } + ], + "parameters": [ + { + "name": "topicId", + "description": "Topic ID. The topic ID subscribed to.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "subscriberId", + "description": "Subscriber ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ] + } + }, + "\/storage\/buckets\/{bucketId}\/files": { + "get": { + "summary": "List files", + "operationId": "storageListFiles", + "tags": [ + "storage" + ], + "description": "Get a list of all the user files. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Files List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/fileList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listFiles", + "group": "files", + "weight": 603, + "cookies": false, + "type": "", + "demo": "storage\/list-files.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "files.read", + "platforms": [ + "console", + "client", + "server", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/list-files.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "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, signature, mimeType, sizeOriginal, chunksTotal, chunksUploaded", + "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", + "x-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", + "x-example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create file", + "operationId": "storageCreateFile", + "tags": [ + "storage" + ], + "description": "Create a new file. Before using this route, you should create a new bucket resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/storage#storageCreateBucket) API or directly from your Appwrite console.\n\nLarger files should be uploaded using multiple requests with the [content-range](https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTTP\/Headers\/Content-Range) header to send a partial request with a maximum supported chunk of `5MB`. The `content-range` header values should always be in bytes.\n\nWhen the first request is sent, the server will return the **File** object, and the subsequent part request must include the file's **id** in `x-appwrite-id` header to allow the server to know that the partial upload is for the existing file and not for a new one.\n\nIf you're creating a new file using one of the Appwrite SDKs, all the chunking logic will be managed by the SDK internally.\n", + "responses": { + "201": { + "description": "File", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/file" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createFile", + "group": "files", + "weight": 802, + "cookies": false, + "type": "upload", + "demo": "storage\/create-file.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId},chunkId:{chunkId}", + "scope": "files.write", + "platforms": [ + "console", + "client", + "server", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/create-file.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "multipart\/form-data": { + "schema": { + "type": "object", + "properties": { + "fileId": { + "type": "string", + "description": "File 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.", + "x-example": "", + "x-upload-id": true + }, + "file": { + "type": "string", + "description": "Binary file. Appwrite SDKs provide helpers to handle file input. [Learn about file input](https:\/\/appwrite.io\/docs\/products\/storage\/upload-download#input-file).", + "x-example": null, + "format": "binary" + }, + "permissions": { + "type": "array", + "description": "An array of permission strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + }, + "x-nullable": true + } + }, + "required": [ + "fileId", + "file" + ] + } + } + } + } + } + }, + "\/storage\/buckets\/{bucketId}\/files\/{fileId}": { + "get": { + "summary": "Get file", + "operationId": "storageGetFile", + "tags": [ + "storage" + ], + "description": "Get a file by its unique ID. This endpoint response returns a JSON object with the file metadata.", + "responses": { + "200": { + "description": "File", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/file" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getFile", + "group": "files", + "weight": 602, + "cookies": false, + "type": "", + "demo": "storage\/get-file.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "files.read", + "platforms": [ + "console", + "client", + "server", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update file", + "operationId": "storageUpdateFile", + "tags": [ + "storage" + ], + "description": "Update a file by its unique ID. Only users with write permissions have access to update this resource.", + "responses": { + "200": { + "description": "File", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/file" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateFile", + "group": "files", + "weight": 604, + "cookies": false, + "type": "", + "demo": "storage\/update-file.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "files.write", + "platforms": [ + "console", + "client", + "server", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/update-file.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Bucket unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "File name.", + "x-example": "" + }, + "permissions": { + "type": "array", + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + }, + "x-nullable": true + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete file", + "operationId": "storageDeleteFile", + "tags": [ + "storage" + ], + "description": "Delete a file by its unique ID. Only users with write permissions have access to delete this resource.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteFile", + "group": "files", + "weight": 605, + "cookies": false, + "type": "", + "demo": "storage\/delete-file.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "files.write", + "platforms": [ + "console", + "client", + "server", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/delete-file.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ] + } + }, + "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/download": { + "get": { + "summary": "Get file for download", + "operationId": "storageGetFileDownload", + "tags": [ + "storage" + ], + "description": "Get a file 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" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getFileDownload", + "group": "files", + "weight": 607, + "cookies": false, + "type": "location", + "demo": "storage\/get-file-download.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "files.read", + "platforms": [ + "console", + "client", + "server", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-download.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "schema": { + "type": "string", + "x-example": "", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/preview": { + "get": { + "summary": "Get file preview", + "operationId": "storageGetFilePreview", + "tags": [ + "storage" + ], + "description": "Get a file preview image. Currently, this method supports preview for image files (jpg, png, and gif), other supported formats, like pdf, docs, slides, and spreadsheets, will return the file icon image. You can also pass query string arguments for cutting and resizing your preview image. Preview is supported only for image files smaller than 10MB.", + "responses": { + "200": { + "description": "Image" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getFilePreview", + "group": "files", + "weight": 606, + "cookies": false, + "type": "location", + "demo": "storage\/get-file-preview.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "files.read", + "platforms": [ + "console", + "client", + "server", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-preview.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File ID", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "width", + "description": "Resize preview image width, Pass an integer between 0 to 4000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "height", + "description": "Resize preview image height, Pass an integer between 0 to 4000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "gravity", + "description": "Image crop gravity. Can be one of center,top-left,top,top-right,left,right,bottom-left,bottom,bottom-right", + "required": false, + "schema": { + "type": "string", + "x-example": "center", + "enum": [ + "center", + "top-left", + "top", + "top-right", + "left", + "right", + "bottom-left", + "bottom", + "bottom-right" + ], + "x-enum-name": "ImageGravity", + "x-enum-keys": [], + "default": "center" + }, + "in": "query" + }, + { + "name": "quality", + "description": "Preview image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "x-example": -1, + "default": -1 + }, + "in": "query" + }, + { + "name": "borderWidth", + "description": "Preview image border in pixels. Pass an integer between 0 to 100. Defaults to 0.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "borderColor", + "description": "Preview image border color. Use a valid HEX color, no # is needed for prefix.", + "required": false, + "schema": { + "type": "string", + "default": "" + }, + "in": "query" + }, + { + "name": "borderRadius", + "description": "Preview image border radius in pixels. Pass an integer between 0 to 4000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "opacity", + "description": "Preview image opacity. Only works with images having an alpha channel (like png). Pass a number between 0 to 1.", + "required": false, + "schema": { + "type": "number", + "format": "float", + "x-example": 0, + "default": 1 + }, + "in": "query" + }, + { + "name": "rotation", + "description": "Preview image rotation in degrees. Pass an integer between -360 and 360.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "x-example": -360, + "default": 0 + }, + "in": "query" + }, + { + "name": "background", + "description": "Preview image background color. Only works with transparent images (png). Use a valid HEX color, no # is needed for prefix.", + "required": false, + "schema": { + "type": "string", + "default": "" + }, + "in": "query" + }, + { + "name": "output", + "description": "Output format type (jpeg, jpg, png, gif and webp).", + "required": false, + "schema": { + "type": "string", + "x-example": "jpg", + "enum": [ + "jpg", + "jpeg", + "png", + "webp", + "heic", + "avif", + "gif" + ], + "x-enum-name": "ImageFormat", + "x-enum-keys": [], + "default": "" + }, + "in": "query" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "schema": { + "type": "string", + "x-example": "", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/view": { + "get": { + "summary": "Get file for view", + "operationId": "storageGetFileView", + "tags": [ + "storage" + ], + "description": "Get a file content by its unique ID. This endpoint is similar to the download method but returns with no 'Content-Disposition: attachment' header.", + "responses": { + "200": { + "description": "File" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getFileView", + "group": "files", + "weight": 608, + "cookies": false, + "type": "location", + "demo": "storage\/get-file-view.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "files.read", + "platforms": [ + "console", + "client", + "server", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-view.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "schema": { + "type": "string", + "x-example": "", + "default": "" + }, + "in": "query" + } + ] + } + }, + "\/tablesdb\/transactions": { + "get": { + "summary": "List transactions", + "operationId": "tablesDBListTransactions", + "tags": [ + "tablesDB" + ], + "description": "List transactions across all databases.", + "responses": { + "200": { + "description": "Transaction List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transactionList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listTransactions", + "group": "transactions", + "weight": 389, + "cookies": false, + "type": "", + "demo": "tablesdb\/list-transactions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "documents.read", + "rows.read" + ], + "platforms": [ + "console", + "server", + "client", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-transactions.md", + "auth": { + "Project": [] + } + }, + "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).", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create transaction", + "operationId": "tablesDBCreateTransaction", + "tags": [ + "tablesDB" + ], + "description": "Create a new transaction.", + "responses": { + "201": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createTransaction", + "group": "transactions", + "weight": 385, + "cookies": false, + "type": "", + "demo": "tablesdb\/create-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "documents.write", + "rows.write" + ], + "platforms": [ + "console", + "server", + "client", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-transaction.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ttl": { + "type": "integer", + "description": "Seconds before the transaction expires.", + "x-example": 60, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/tablesdb\/transactions\/{transactionId}": { + "get": { + "summary": "Get transaction", + "operationId": "tablesDBGetTransaction", + "tags": [ + "tablesDB" + ], + "description": "Get a transaction by its unique ID.", + "responses": { + "200": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getTransaction", + "group": "transactions", + "weight": 386, + "cookies": false, + "type": "", + "demo": "tablesdb\/get-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "documents.read", + "rows.read" + ], + "platforms": [ + "console", + "server", + "client", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-transaction.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update transaction", + "operationId": "tablesDBUpdateTransaction", + "tags": [ + "tablesDB" + ], + "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": { + "method": "updateTransaction", + "group": "transactions", + "weight": 387, + "cookies": false, + "type": "", + "demo": "tablesdb\/update-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "documents.write", + "rows.write" + ], + "platforms": [ + "console", + "server", + "client", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-transaction.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { "type": "string", - "x-example": "" + "x-example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "commit": { + "type": "boolean", + "description": "Commit transaction?", + "x-example": false + }, + "rollback": { + "type": "boolean", + "description": "Rollback transaction?", + "x-example": false + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete transaction", + "operationId": "tablesDBDeleteTransaction", + "tags": [ + "tablesDB" + ], + "description": "Delete a transaction by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteTransaction", + "group": "transactions", + "weight": 388, + "cookies": false, + "type": "", + "demo": "tablesdb\/delete-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "documents.write", + "rows.write" + ], + "platforms": [ + "console", + "server", + "client", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-transaction.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ] + } + }, + "\/tablesdb\/transactions\/{transactionId}\/operations": { + "post": { + "summary": "Create operations", + "operationId": "tablesDBCreateOperations", + "tags": [ + "tablesDB" + ], + "description": "Create multiple operations in a single transaction.", + "responses": { + "201": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createOperations", + "group": "transactions", + "weight": 390, + "cookies": false, + "type": "", + "demo": "tablesdb\/create-operations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "documents.write", + "rows.write" + ], + "platforms": [ + "console", + "server", + "client", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-operations.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "operations": { + "type": "array", + "description": "Array of staged operations.", + "x-example": "[\n\t {\n\t \"action\": \"create\",\n\t \"databaseId\": \"\",\n\t \"tableId\": \"\",\n\t \"rowId\": \"\",\n\t \"data\": {\n\t \"name\": \"Walter O'Brien\"\n\t }\n\t }\n\t]", + "items": { + "type": "object" + } + } + } + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows": { + "get": { + "summary": "List rows", + "operationId": "tablesDBListRows", + "tags": [ + "tablesDB" + ], + "description": "Get a list of all the user's rows in a given table. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Rows List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/rowList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listRows", + "group": "rows", + "weight": 381, + "cookies": false, + "type": "", + "demo": "tablesdb\/list-rows.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "rows.read", + "documents.read" + ], + "platforms": [ + "console", + "client", + "server", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-rows.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/products\/databases\/tables#create-table).", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] }, - "in": "path" + "in": "query" }, { - "name": "fileId", - "description": "File ID", - "required": true, + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", + "required": false, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, - "in": "path" + "in": "query" }, { - "name": "width", - "description": "Resize preview image width, Pass an integer between 0 to 4000.", + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", "required": false, "schema": { - "type": "integer", - "format": "int32", - "x-example": 0, - "default": 0 + "type": "boolean", + "x-example": false, + "default": true }, "in": "query" }, { - "name": "height", - "description": "Resize preview image height, Pass an integer between 0 to 4000.", + "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", @@ -8903,172 +11273,309 @@ "default": 0 }, "in": "query" - }, + } + ] + }, + "post": { + "summary": "Create row", + "operationId": "tablesDBCreateRow", + "tags": [ + "tablesDB" + ], + "description": "Create a new Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "responses": { + "201": { + "description": "Row", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/row" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createRow", + "group": "rows", + "weight": 373, + "cookies": false, + "type": "", + "demo": "tablesdb\/create-row.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": [ + "rows.write", + "documents.write" + ], + "platforms": [ + "console", + "client", + "server", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-row.md", + "methods": [ + { + "name": "createRow", + "namespace": "tablesDB", + "desc": "Create row", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "tableId", + "rowId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "tableId", + "rowId", + "data" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/row" + } + ], + "description": "Create a new Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "demo": "tablesdb\/create-row.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ { - "name": "gravity", - "description": "Image crop gravity. Can be one of center,top-left,top,top-right,left,right,bottom-left,bottom,bottom-right", - "required": false, + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, "schema": { "type": "string", - "x-example": "center", - "enum": [ - "center", - "top-left", - "top", - "top-right", - "left", - "right", - "bottom-left", - "bottom", - "bottom-right" - ], - "x-enum-name": "ImageGravity", - "x-enum-keys": [], - "default": "center" + "x-example": "" }, - "in": "query" + "in": "path" }, { - "name": "quality", - "description": "Preview image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", - "required": false, + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable). Make sure to define columns before creating rows.", + "required": true, "schema": { - "type": "integer", - "format": "int32", - "x-example": -1, - "default": -1 + "type": "string", + "x-example": "" }, - "in": "query" - }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "rowId": { + "type": "string", + "description": "Row 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.", + "x-example": "" + }, + "data": { + "type": "object", + "description": "Row data as JSON object.", + "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":30,\"isAdmin\":false}" + }, + "permissions": { + "type": "array", + "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).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + }, + "x-nullable": true + }, + "rows": { + "type": "array", + "description": "Array of rows data as JSON objects.", + "x-example": null, + "items": { + "type": "object" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "", + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}": { + "get": { + "summary": "Get row", + "operationId": "tablesDBGetRow", + "tags": [ + "tablesDB" + ], + "description": "Get a row by its unique ID. This endpoint response returns a JSON object with the row data.", + "responses": { + "200": { + "description": "Row", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/row" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getRow", + "group": "rows", + "weight": 374, + "cookies": false, + "type": "", + "demo": "tablesdb\/get-row.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "rows.read", + "documents.read" + ], + "platforms": [ + "console", + "client", + "server", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-row.md", + "auth": { + "Project": [] + } + }, + "security": [ { - "name": "borderWidth", - "description": "Preview image border in pixels. Pass an integer between 0 to 100. Defaults to 0.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "x-example": 0, - "default": 0 - }, - "in": "query" - }, + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ { - "name": "borderColor", - "description": "Preview image border color. Use a valid HEX color, no # is needed for prefix.", - "required": false, + "name": "databaseId", + "description": "Database ID.", + "required": true, "schema": { "type": "string", - "default": "" - }, - "in": "query" - }, - { - "name": "borderRadius", - "description": "Preview image border radius in pixels. Pass an integer between 0 to 4000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "x-example": 0, - "default": 0 - }, - "in": "query" - }, - { - "name": "opacity", - "description": "Preview image opacity. Only works with images having an alpha channel (like png). Pass a number between 0 to 1.", - "required": false, - "schema": { - "type": "number", - "format": "float", - "x-example": 0, - "default": 1 + "x-example": "" }, - "in": "query" + "in": "path" }, { - "name": "rotation", - "description": "Preview image rotation in degrees. Pass an integer between -360 and 360.", - "required": false, + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, "schema": { - "type": "integer", - "format": "int32", - "x-example": -360, - "default": 0 + "type": "string", + "x-example": "" }, - "in": "query" + "in": "path" }, { - "name": "background", - "description": "Preview image background color. Only works with transparent images (png). Use a valid HEX color, no # is needed for prefix.", - "required": false, + "name": "rowId", + "description": "Row ID.", + "required": true, "schema": { "type": "string", - "default": "" + "x-example": "" }, - "in": "query" + "in": "path" }, { - "name": "output", - "description": "Output format type (jpeg, jpg, png, gif and webp).", + "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": "string", - "x-example": "jpg", - "enum": [ - "jpg", - "jpeg", - "png", - "webp", - "heic", - "avif", - "gif" - ], - "x-enum-name": "ImageFormat", - "x-enum-keys": [], - "default": "" + "type": "array", + "items": { + "type": "string" + }, + "default": [] }, "in": "query" }, { - "name": "token", - "description": "File token for accessing this file.", + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", "required": false, "schema": { "type": "string", - "x-example": "", - "default": "" + "x-example": "" }, "in": "query" } ] - } - }, - "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/view": { - "get": { - "summary": "Get file for view", - "operationId": "storageGetFileView", + }, + "put": { + "summary": "Upsert a row", + "operationId": "tablesDBUpsertRow", "tags": [ - "storage" + "tablesDB" ], - "description": "Get a file content by its unique ID. This endpoint is similar to the download method but returns with no 'Content-Disposition: attachment' header.", + "description": "Create or update a Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", "responses": { - "200": { - "description": "File" + "201": { + "description": "Row", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/row" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "getFileView", - "group": "files", - "weight": 540, + "method": "upsertRow", + "group": "rows", + "weight": 377, "cookies": false, - "type": "location", - "demo": "storage\/get-file-view.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", + "type": "", + "demo": "tablesdb\/upsert-row.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": [ + "rows.write", + "documents.write" + ], "platforms": [ "console", "client", @@ -9077,7 +11584,39 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-view.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/upsert-row.md", + "methods": [ + { + "name": "upsertRow", + "namespace": "tablesDB", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "tableId", + "rowId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "tableId", + "rowId" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/row" + } + ], + "description": "Create or update a Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "demo": "tablesdb\/upsert-row.md", + "public": true + } + ], "auth": { "Project": [] } @@ -9091,54 +11630,82 @@ ], "parameters": [ { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" }, { - "name": "fileId", - "description": "File ID.", + "name": "tableId", + "description": "Table ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" }, { - "name": "token", - "description": "File token for accessing this file.", - "required": false, + "name": "rowId", + "description": "Row ID.", + "required": true, "schema": { "type": "string", - "x-example": "", - "default": "" + "x-example": "" }, - "in": "query" + "in": "path" } - ] - } - }, - "\/tablesdb\/transactions": { - "get": { - "summary": "List transactions", - "operationId": "tablesDBListTransactions", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "object", + "description": "Row data as JSON object. Include all required columns of the row to be created or updated.", + "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":33,\"isAdmin\":false}" + }, + "permissions": { + "type": "array", + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + }, + "x-nullable": true + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "", + "x-nullable": true + } + } + } + } + } + } + }, + "patch": { + "summary": "Update row", + "operationId": "tablesDBUpdateRow", "tags": [ "tablesDB" ], - "description": "List transactions across all databases.", + "description": "Update a row by its unique ID. Using the patch method you can pass only specific fields that will get updated.", "responses": { "200": { - "description": "Transaction List", + "description": "Row", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/transactionList" + "$ref": "#\/components\/schemas\/row" } } } @@ -9146,28 +11713,28 @@ }, "deprecated": false, "x-appwrite": { - "method": "listTransactions", - "group": "transactions", - "weight": 405, + "method": "updateRow", + "group": "rows", + "weight": 375, "cookies": false, "type": "", - "demo": "tablesdb\/list-transactions.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", + "demo": "tablesdb\/update-row.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", "scope": [ - "documents.read", - "rows.read" + "rows.write", + "documents.write" ], "platforms": [ "console", - "server", "client", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-transactions.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-row.md", "auth": { "Project": [] } @@ -9181,63 +11748,104 @@ ], "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, + "name": "databaseId", + "description": "Database ID.", + "required": true, "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] + "type": "string", + "x-example": "" }, - "in": "query" + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "object", + "description": "Row data as JSON object. Include only columns and value pairs to be updated.", + "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":33,\"isAdmin\":false}" + }, + "permissions": { + "type": "array", + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + }, + "x-nullable": true + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "", + "x-nullable": true + } + } + } + } + } + } }, - "post": { - "summary": "Create transaction", - "operationId": "tablesDBCreateTransaction", + "delete": { + "summary": "Delete row", + "operationId": "tablesDBDeleteRow", "tags": [ "tablesDB" ], - "description": "Create a new transaction.", + "description": "Delete a row by its unique ID.", "responses": { - "201": { - "description": "Transaction", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/transaction" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "createTransaction", - "group": "transactions", - "weight": 401, + "method": "deleteRow", + "group": "rows", + "weight": 379, "cookies": false, "type": "", - "demo": "tablesdb\/create-transaction.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", + "demo": "tablesdb\/delete-row.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", "scope": [ - "documents.write", - "rows.write" + "rows.write", + "documents.write" ], "platforms": [ "console", - "server", "client", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-transaction.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-row.md", "auth": { "Project": [] } @@ -9249,17 +11857,49 @@ "JWT": [] } ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "ttl": { - "type": "integer", - "description": "Seconds before the transaction expires.", - "x-example": 60, - "format": "int32" + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "", + "x-nullable": true } } } @@ -9268,21 +11908,21 @@ } } }, - "\/tablesdb\/transactions\/{transactionId}": { - "get": { - "summary": "Get transaction", - "operationId": "tablesDBGetTransaction", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}\/{column}\/decrement": { + "patch": { + "summary": "Decrement row column", + "operationId": "tablesDBDecrementRowColumn", "tags": [ "tablesDB" ], - "description": "Get a transaction by its unique ID.", + "description": "Decrement a specific column of a row by a given value.", "responses": { "200": { - "description": "Transaction", + "description": "Row", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/transaction" + "$ref": "#\/components\/schemas\/row" } } } @@ -9290,28 +11930,28 @@ }, "deprecated": false, "x-appwrite": { - "method": "getTransaction", - "group": "transactions", - "weight": 402, + "method": "decrementRowColumn", + "group": "rows", + "weight": 384, "cookies": false, "type": "", - "demo": "tablesdb\/get-transaction.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", + "demo": "tablesdb\/decrement-row-column.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", "scope": [ - "documents.read", - "rows.read" + "rows.write", + "documents.write" ], "platforms": [ - "console", - "server", "client", + "server", + "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-transaction.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/decrement-row-column.md", "auth": { "Project": [] } @@ -9325,31 +11965,92 @@ ], "parameters": [ { - "name": "transactionId", - "description": "Transaction ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "column", + "description": "Column key.", + "required": true, + "schema": { + "type": "string" }, "in": "path" } - ] - }, + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "value": { + "type": "number", + "description": "Value to increment the column by. The value must be a number.", + "x-example": null, + "format": "float" + }, + "min": { + "type": "number", + "description": "Minimum value for the column. If the current value is lesser than this value, an exception will be thrown.", + "x-example": null, + "format": "float", + "x-nullable": true + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "", + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}\/{column}\/increment": { "patch": { - "summary": "Update transaction", - "operationId": "tablesDBUpdateTransaction", + "summary": "Increment row column", + "operationId": "tablesDBIncrementRowColumn", "tags": [ "tablesDB" ], - "description": "Update a transaction, to either commit or roll back its operations.", + "description": "Increment a specific column of a row by a given value.", "responses": { "200": { - "description": "Transaction", + "description": "Row", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/transaction" + "$ref": "#\/components\/schemas\/row" } } } @@ -9357,28 +12058,28 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateTransaction", - "group": "transactions", - "weight": 403, + "method": "incrementRowColumn", + "group": "rows", + "weight": 383, "cookies": false, "type": "", - "demo": "tablesdb\/update-transaction.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", + "demo": "tablesdb\/increment-row-column.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", "scope": [ - "documents.write", - "rows.write" + "rows.write", + "documents.write" ], "platforms": [ - "console", - "server", "client", + "server", + "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-transaction.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/increment-row-column.md", "auth": { "Project": [] } @@ -9392,12 +12093,41 @@ ], "parameters": [ { - "name": "transactionId", - "description": "Transaction ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "column", + "description": "Column key.", + "required": true, + "schema": { + "type": "string" }, "in": "path" } @@ -9408,58 +12138,73 @@ "schema": { "type": "object", "properties": { - "commit": { - "type": "boolean", - "description": "Commit transaction?", - "x-example": false + "value": { + "type": "number", + "description": "Value to increment the column by. The value must be a number.", + "x-example": null, + "format": "float" }, - "rollback": { - "type": "boolean", - "description": "Rollback transaction?", - "x-example": false + "max": { + "type": "number", + "description": "Maximum value for the column. If the current value is greater than this value, an error will be thrown.", + "x-example": null, + "format": "float", + "x-nullable": true + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "", + "x-nullable": true } } } } } } - }, - "delete": { - "summary": "Delete transaction", - "operationId": "tablesDBDeleteTransaction", + } + }, + "\/teams": { + "get": { + "summary": "List teams", + "operationId": "teamsList", "tags": [ - "tablesDB" + "teams" ], - "description": "Delete a transaction by its unique ID.", + "description": "Get a list of all the teams in which the current user is a member. You can use the parameters to filter your results.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Teams List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/teamList" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteTransaction", - "group": "transactions", - "weight": 404, + "method": "list", + "group": "teams", + "weight": 579, "cookies": false, "type": "", - "demo": "tablesdb\/delete-transaction.md", + "demo": "teams\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "documents.write", - "rows.write" - ], + "scope": "teams.read", "platforms": [ "console", - "server", "client", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-transaction.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/list-teams.md", "auth": { "Project": [] } @@ -9473,33 +12218,56 @@ ], "parameters": [ { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, + "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, total, billingPlan", + "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", - "x-example": "" + "x-example": "", + "default": "" }, - "in": "path" + "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", + "x-example": false, + "default": true + }, + "in": "query" } ] - } - }, - "\/tablesdb\/transactions\/{transactionId}\/operations": { + }, "post": { - "summary": "Create operations", - "operationId": "tablesDBCreateOperations", + "summary": "Create team", + "operationId": "teamsCreate", "tags": [ - "tablesDB" + "teams" ], - "description": "Create multiple operations in a single transaction.", + "description": "Create a new team. The user who creates the team will automatically be assigned as the owner of the team. Only the users with the owner role can invite new members, add new owners and delete or update the team.", "responses": { "201": { - "description": "Transaction", + "description": "Team", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/transaction" + "$ref": "#\/components\/schemas\/team" } } } @@ -9507,28 +12275,25 @@ }, "deprecated": false, "x-appwrite": { - "method": "createOperations", - "group": "transactions", - "weight": 406, + "method": "create", + "group": "teams", + "weight": 577, "cookies": false, "type": "", - "demo": "tablesdb\/create-operations.md", + "demo": "teams\/create.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "documents.write", - "rows.write" - ], + "scope": "teams.write", "platforms": [ "console", - "server", "client", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-operations.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team.md", "auth": { "Project": [] } @@ -9540,54 +12305,56 @@ "JWT": [] } ], - "parameters": [ - { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - } - ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "operations": { + "teamId": { + "type": "string", + "description": "Team 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.", + "x-example": "" + }, + "name": { + "type": "string", + "description": "Team name. Max length: 128 chars.", + "x-example": "" + }, + "roles": { "type": "array", - "description": "Array of staged operations.", - "x-example": "[\n\t {\n\t \"action\": \"create\",\n\t \"databaseId\": \"\",\n\t \"tableId\": \"\",\n\t \"rowId\": \"\",\n\t \"data\": {\n\t \"name\": \"Walter O'Brien\"\n\t }\n\t }\n\t]", + "description": "Array of strings. Use this param to set the roles in the team for the user who created it. The default role is **owner**. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 32 characters long.", + "x-example": null, "items": { - "type": "object" + "type": "string" } } - } + }, + "required": [ + "teamId", + "name" + ] } } } } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows": { + "\/teams\/{teamId}": { "get": { - "summary": "List rows", - "operationId": "tablesDBListRows", + "summary": "Get team", + "operationId": "teamsGet", "tags": [ - "tablesDB" + "teams" ], - "description": "Get a list of all the user's rows in a given table. You can use the query params to filter your results.", + "description": "Get a team by its ID. All team members have read access for this resource.", "responses": { "200": { - "description": "Rows List", + "description": "Team", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/rowList" + "$ref": "#\/components\/schemas\/team" } } } @@ -9595,19 +12362,16 @@ }, "deprecated": false, "x-appwrite": { - "method": "listRows", - "group": "rows", - "weight": 397, + "method": "get", + "group": "teams", + "weight": 578, "cookies": false, "type": "", - "demo": "tablesdb\/list-rows.md", + "demo": "teams\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "rows.read", - "documents.read" - ], + "scope": "teams.read", "platforms": [ "console", "client", @@ -9616,7 +12380,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-rows.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team.md", "auth": { "Project": [] } @@ -9630,75 +12394,31 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/products\/databases\/tables#create-table).", + "name": "teamId", + "description": "Team ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", - "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", - "x-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", - "x-example": false, - "default": true - }, - "in": "query" } ] }, - "post": { - "summary": "Create row", - "operationId": "tablesDBCreateRow", + "put": { + "summary": "Update name", + "operationId": "teamsUpdateName", "tags": [ - "tablesDB" + "teams" ], - "description": "Create a new Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "description": "Update the team's name by its unique ID.", "responses": { - "201": { - "description": "Row", + "200": { + "description": "Team", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/row" + "$ref": "#\/components\/schemas\/team" } } } @@ -9706,19 +12426,16 @@ }, "deprecated": false, "x-appwrite": { - "method": "createRow", - "group": "rows", - "weight": 389, + "method": "updateName", + "group": "teams", + "weight": 581, "cookies": false, "type": "", - "demo": "tablesdb\/create-row.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": [ - "rows.write", - "documents.write" - ], + "demo": "teams\/update-name.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", "platforms": [ "console", "client", @@ -9727,40 +12444,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-row.md", - "methods": [ - { - "name": "createRow", - "namespace": "tablesDB", - "desc": "Create row", - "auth": { - "Project": [] - }, - "parameters": [ - "databaseId", - "tableId", - "rowId", - "data", - "permissions", - "transactionId" - ], - "required": [ - "databaseId", - "tableId", - "rowId", - "data" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/row" - } - ], - "description": "Create a new Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", - "demo": "tablesdb\/create-row.md", - "public": true - } - ], + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-name.md", "auth": { "Project": [] } @@ -9774,22 +12458,12 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable). Make sure to define columns before creating rows.", + "name": "teamId", + "description": "Team ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" } @@ -9800,61 +12474,93 @@ "schema": { "type": "object", "properties": { - "rowId": { - "type": "string", - "description": "Row 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.", - "x-example": "" - }, - "data": { - "type": "object", - "description": "Row data as JSON object.", - "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":30,\"isAdmin\":false}" - }, - "permissions": { - "type": "array", - "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).", - "x-example": "[\"read(\"any\")\"]", - "items": { - "type": "string" - }, - "x-nullable": true - }, - "rows": { - "type": "array", - "description": "Array of rows data as JSON objects.", - "x-example": null, - "items": { - "type": "object" - } - }, - "transactionId": { + "name": { "type": "string", - "description": "Transaction ID for staging the operation.", - "x-example": "", - "x-nullable": true + "description": "New team name. Max length: 128 chars.", + "x-example": "" } - } + }, + "required": [ + "name" + ] } } } } + }, + "delete": { + "summary": "Delete team", + "operationId": "teamsDelete", + "tags": [ + "teams" + ], + "description": "Delete a team using its ID. Only team members with the owner role can delete the team.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "delete", + "group": "teams", + "weight": 580, + "cookies": false, + "type": "", + "demo": "teams\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}": { + "\/teams\/{teamId}\/memberships": { "get": { - "summary": "Get row", - "operationId": "tablesDBGetRow", + "summary": "List team memberships", + "operationId": "teamsListMemberships", "tags": [ - "tablesDB" + "teams" ], - "description": "Get a row by its unique ID. This endpoint response returns a JSON object with the row data.", + "description": "Use this endpoint to list a team's members using the team's ID. All team members have read access to this endpoint. Hide sensitive attributes from the response by toggling membership privacy in the Console.", "responses": { "200": { - "description": "Row", + "description": "Memberships List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/row" + "$ref": "#\/components\/schemas\/membershipList" } } } @@ -9862,19 +12568,16 @@ }, "deprecated": false, "x-appwrite": { - "method": "getRow", - "group": "rows", - "weight": 390, + "method": "listMemberships", + "group": "memberships", + "weight": 586, "cookies": false, "type": "", - "demo": "tablesdb\/get-row.md", + "demo": "teams\/list-memberships.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "rows.read", - "documents.read" - ], + "scope": "teams.read", "platforms": [ "console", "client", @@ -9883,7 +12586,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-row.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/list-team-members.md", "auth": { "Project": [] } @@ -9897,38 +12600,18 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - }, - { - "name": "rowId", - "description": "Row ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" }, { "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "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, teamId, invited, joined, confirm, roles", "required": false, "schema": { "type": "array", @@ -9940,31 +12623,43 @@ "in": "query" }, { - "name": "transactionId", - "description": "Transaction ID to read uncommitted changes within the transaction.", + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", "required": false, "schema": { "type": "string", - "x-example": "" + "x-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", + "x-example": false, + "default": true }, "in": "query" } ] }, - "put": { - "summary": "Upsert a row", - "operationId": "tablesDBUpsertRow", + "post": { + "summary": "Create team membership", + "operationId": "teamsCreateMembership", "tags": [ - "tablesDB" + "teams" ], - "description": "Create or update a Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "description": "Invite a new member to join your team. Provide an ID for existing users, or invite unregistered users using an email or phone number. If initiated from a Client SDK, Appwrite will send an email or sms with a link to join the team to the invited user, and an account will be created for them if one doesn't exist. If initiated from a Server SDK, the new member will be added automatically to the team.\n\nYou only need to provide one of a user ID, email, or phone number. Appwrite will prioritize accepting the user ID > email > phone number if you provide more than one of these parameters.\n\nUse the `url` parameter to redirect the user from the invitation email to your app. After the user is redirected, use the [Update Team Membership Status](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/teams#updateMembershipStatus) endpoint to allow the user to accept the invitation to the team. \n\nPlease note that to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) Appwrite will accept the only redirect URLs under the domains you have added as a platform on the Appwrite Console.\n", "responses": { "201": { - "description": "Row", + "description": "Membership", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/row" + "$ref": "#\/components\/schemas\/membership" } } } @@ -9972,19 +12667,16 @@ }, "deprecated": false, "x-appwrite": { - "method": "upsertRow", - "group": "rows", - "weight": 393, + "method": "createMembership", + "group": "memberships", + "weight": 584, "cookies": false, "type": "", - "demo": "tablesdb\/upsert-row.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": [ - "rows.write", - "documents.write" - ], + "demo": "teams\/create-membership.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", "platforms": [ "console", "client", @@ -9993,39 +12685,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/upsert-row.md", - "methods": [ - { - "name": "upsertRow", - "namespace": "tablesDB", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "databaseId", - "tableId", - "rowId", - "data", - "permissions", - "transactionId" - ], - "required": [ - "databaseId", - "tableId", - "rowId" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/row" - } - ], - "description": "Create or update a Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", - "demo": "tablesdb\/upsert-row.md", - "public": true - } - ], + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team-membership.md", "auth": { "Project": [] } @@ -10039,32 +12699,12 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - }, - { - "name": "rowId", - "description": "Row ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" } @@ -10075,46 +12715,141 @@ "schema": { "type": "object", "properties": { - "data": { - "type": "object", - "description": "Row data as JSON object. Include all required columns of the row to be created or updated.", - "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":33,\"isAdmin\":false}" + "email": { + "type": "string", + "description": "Email of the new team member.", + "x-example": "email@example.com", + "format": "email" }, - "permissions": { + "userId": { + "type": "string", + "description": "ID of the user to be added to a team.", + "x-example": "" + }, + "phone": { + "type": "string", + "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "x-example": "+12065550100", + "format": "phone" + }, + "roles": { "type": "array", - "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "x-example": "[\"read(\"any\")\"]", + "description": "Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 81 characters long.", + "x-example": null, "items": { "type": "string" - }, - "x-nullable": true + } }, - "transactionId": { + "url": { "type": "string", - "description": "Transaction ID for staging the operation.", - "x-example": "", - "x-nullable": true + "description": "URL to redirect the user back to your app from the invitation email. This parameter is not required when an API key is supplied. 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.", + "x-example": "https:\/\/example.com", + "format": "url" + }, + "name": { + "type": "string", + "description": "Name of the new team member. Max length: 128 chars.", + "x-example": "" } + }, + "required": [ + "roles" + ] + } + } + } + } + } + }, + "\/teams\/{teamId}\/memberships\/{membershipId}": { + "get": { + "summary": "Get team membership", + "operationId": "teamsGetMembership", + "tags": [ + "teams" + ], + "description": "Get a team member by the membership unique id. All team members have read access for this resource. Hide sensitive attributes from the response by toggling membership privacy in the Console.", + "responses": { + "200": { + "description": "Membership", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membership" } } } } - } + }, + "deprecated": false, + "x-appwrite": { + "method": "getMembership", + "group": "memberships", + "weight": 585, + "cookies": false, + "type": "", + "demo": "teams\/get-membership.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console", + "client", + "server", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-member.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "membershipId", + "description": "Membership ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ] }, "patch": { - "summary": "Update row", - "operationId": "tablesDBUpdateRow", + "summary": "Update team membership", + "operationId": "teamsUpdateMembership", "tags": [ - "tablesDB" + "teams" ], - "description": "Update a row by its unique ID. Using the patch method you can pass only specific fields that will get updated.", + "description": "Modify the roles of a team member. Only team members with the owner role have access to this endpoint. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions).\n", "responses": { "200": { - "description": "Row", + "description": "Membership", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/row" + "$ref": "#\/components\/schemas\/membership" } } } @@ -10122,19 +12857,16 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateRow", - "group": "rows", - "weight": 391, + "method": "updateMembership", + "group": "memberships", + "weight": 587, "cookies": false, "type": "", - "demo": "tablesdb\/update-row.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": [ - "rows.write", - "documents.write" - ], + "demo": "teams\/update-membership.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", "platforms": [ "console", "client", @@ -10143,7 +12875,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-row.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership.md", "auth": { "Project": [] } @@ -10157,32 +12889,22 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" }, { - "name": "rowId", - "description": "Row ID.", + "name": "membershipId", + "description": "Membership ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" } @@ -10193,39 +12915,30 @@ "schema": { "type": "object", "properties": { - "data": { - "type": "object", - "description": "Row data as JSON object. Include only columns and value pairs to be updated.", - "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":33,\"isAdmin\":false}" - }, - "permissions": { + "roles": { "type": "array", - "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "x-example": "[\"read(\"any\")\"]", + "description": "An array of strings. Use this param to set the user's roles in the team. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 81 characters long.", + "x-example": null, "items": { "type": "string" - }, - "x-nullable": true - }, - "transactionId": { - "type": "string", - "description": "Transaction ID for staging the operation.", - "x-example": "", - "x-nullable": true + } } - } + }, + "required": [ + "roles" + ] } } } } }, "delete": { - "summary": "Delete row", - "operationId": "tablesDBDeleteRow", + "summary": "Delete team membership", + "operationId": "teamsDeleteMembership", "tags": [ - "tablesDB" + "teams" ], - "description": "Delete a row by its unique ID.", + "description": "This endpoint allows a user to leave a team or for a team owner to delete the membership of any other team member. You can also use this endpoint to delete a user membership even if it is not accepted.", "responses": { "204": { "description": "No content" @@ -10233,19 +12946,16 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteRow", - "group": "rows", - "weight": 395, + "method": "deleteMembership", + "group": "memberships", + "weight": 803, "cookies": false, "type": "", - "demo": "tablesdb\/delete-row.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": [ - "rows.write", - "documents.write" - ], + "demo": "teams\/delete-membership.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", "platforms": [ "console", "client", @@ -10254,7 +12964,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-row.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team-membership.md", "auth": { "Project": [] } @@ -10268,70 +12978,43 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "name": "teamId", + "description": "Team ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" }, { - "name": "rowId", - "description": "Row ID.", + "name": "membershipId", + "description": "Membership ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "transactionId": { - "type": "string", - "description": "Transaction ID for staging the operation.", - "x-example": "", - "x-nullable": true - } - } - } - } - } - } + ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}\/{column}\/decrement": { + "\/teams\/{teamId}\/memberships\/{membershipId}\/status": { "patch": { - "summary": "Decrement row column", - "operationId": "tablesDBDecrementRowColumn", + "summary": "Update team membership status", + "operationId": "teamsUpdateMembershipStatus", "tags": [ - "tablesDB" + "teams" ], - "description": "Decrement a specific column of a row by a given value.", + "description": "Use this endpoint to allow a user to accept an invitation to join a team after being redirected back to your app from the invitation email received by the user.\n\nIf the request is successful, a session for the user is automatically created.\n", "responses": { "200": { - "description": "Row", + "description": "Membership", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/row" + "$ref": "#\/components\/schemas\/membership" } } } @@ -10339,28 +13022,24 @@ }, "deprecated": false, "x-appwrite": { - "method": "decrementRowColumn", - "group": "rows", - "weight": 400, + "method": "updateMembershipStatus", + "group": "memberships", + "weight": 589, "cookies": false, "type": "", - "demo": "tablesdb\/decrement-row-column.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": [ - "rows.write", - "documents.write" - ], + "demo": "teams\/update-membership-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", "platforms": [ - "client", - "server", "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/decrement-row-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership-status.md", "auth": { "Project": [] } @@ -10374,41 +13053,22 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" }, { - "name": "rowId", - "description": "Row ID.", + "name": "membershipId", + "description": "Membership ID.", "required": true, "schema": { "type": "string", - "x-example": "" - }, - "in": "path" - }, - { - "name": "column", - "description": "Column key.", - "required": true, - "schema": { - "type": "string" + "x-example": "" }, "in": "path" } @@ -10419,47 +13079,42 @@ "schema": { "type": "object", "properties": { - "value": { - "type": "number", - "description": "Value to increment the column by. The value must be a number.", - "x-example": null, - "format": "float" - }, - "min": { - "type": "number", - "description": "Minimum value for the column. If the current value is lesser than this value, an exception will be thrown.", - "x-example": null, - "format": "float", - "x-nullable": true + "userId": { + "type": "string", + "description": "User ID.", + "x-example": "" }, - "transactionId": { + "secret": { "type": "string", - "description": "Transaction ID for staging the operation.", - "x-example": "", - "x-nullable": true + "description": "Secret key.", + "x-example": "" } - } + }, + "required": [ + "userId", + "secret" + ] } } } } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}\/{column}\/increment": { - "patch": { - "summary": "Increment row column", - "operationId": "tablesDBIncrementRowColumn", + "\/teams\/{teamId}\/prefs": { + "get": { + "summary": "Get team preferences", + "operationId": "teamsGetPrefs", "tags": [ - "tablesDB" + "teams" ], - "description": "Increment a specific column of a row by a given value.", + "description": "Get the team's shared preferences by its unique ID. If a preference doesn't need to be shared by all team members, prefer storing them in [user preferences](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#getPrefs).", "responses": { "200": { - "description": "Row", + "description": "Preferences", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/row" + "$ref": "#\/components\/schemas\/preferences" } } } @@ -10467,28 +13122,24 @@ }, "deprecated": false, "x-appwrite": { - "method": "incrementRowColumn", - "group": "rows", - "weight": 399, + "method": "getPrefs", + "group": "teams", + "weight": 582, "cookies": false, "type": "", - "demo": "tablesdb\/increment-row-column.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": [ - "rows.write", - "documents.write" - ], + "demo": "teams\/get-prefs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", "platforms": [ - "client", - "server", "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/increment-row-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-prefs.md", "auth": { "Project": [] } @@ -10502,41 +13153,75 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" - }, + } + ] + }, + "put": { + "summary": "Update team preferences", + "operationId": "teamsUpdatePrefs", + "tags": [ + "teams" + ], + "description": "Update the team's preferences by its unique ID. The object you pass is stored as is and replaces any previous value. The maximum allowed prefs size is 64kB and throws an error if exceeded.", + "responses": { + "200": { + "description": "Preferences", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/preferences" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updatePrefs", + "group": "teams", + "weight": 583, + "cookies": false, + "type": "", + "demo": "teams\/update-prefs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-prefs.md", + "auth": { + "Project": [] + } + }, + "security": [ { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - }, + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ { - "name": "rowId", - "description": "Row ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "schema": { "type": "string", - "x-example": "" - }, - "in": "path" - }, - { - "name": "column", - "description": "Column key.", - "required": true, - "schema": { - "type": "string" + "x-example": "" }, "in": "path" } @@ -10547,47 +13232,36 @@ "schema": { "type": "object", "properties": { - "value": { - "type": "number", - "description": "Value to increment the column by. The value must be a number.", - "x-example": null, - "format": "float" - }, - "max": { - "type": "number", - "description": "Maximum value for the column. If the current value is greater than this value, an error will be thrown.", - "x-example": null, - "format": "float", - "x-nullable": true - }, - "transactionId": { - "type": "string", - "description": "Transaction ID for staging the operation.", - "x-example": "", - "x-nullable": true + "prefs": { + "type": "object", + "description": "Prefs key-value JSON object.", + "x-example": "{}" } - } + }, + "required": [ + "prefs" + ] } } } } } }, - "\/teams": { + "\/vectordb\/transactions": { "get": { - "summary": "List teams", - "operationId": "teamsList", + "summary": "List transactions", + "operationId": "vectorDBListTransactions", "tags": [ - "teams" + "vectorDB" ], - "description": "Get a list of all the teams in which the current user is a member. You can use the parameters to filter your results.", + "description": false, "responses": { "200": { - "description": "Teams List", + "description": "Transaction List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/teamList" + "$ref": "#\/components\/schemas\/transactionList" } } } @@ -10595,25 +13269,24 @@ }, "deprecated": false, "x-appwrite": { - "method": "list", - "group": "teams", - "weight": 107, + "method": "listTransactions", + "group": "transactions", + "weight": 459, "cookies": false, "type": "", - "demo": "teams\/list.md", + "demo": "vectordb\/list-transactions.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "documents.read", "platforms": [ "console", - "client", "server", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/list-teams.md", "auth": { "Project": [] } @@ -10628,7 +13301,7 @@ "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, total, billingPlan", + "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", @@ -10638,45 +13311,23 @@ "default": [] }, "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "x-example": "", - "default": "" - }, - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "x-example": false, - "default": true - }, - "in": "query" } ] }, "post": { - "summary": "Create team", - "operationId": "teamsCreate", + "summary": "Create transaction", + "operationId": "vectorDBCreateTransaction", "tags": [ - "teams" + "vectorDB" ], - "description": "Create a new team. The user who creates the team will automatically be assigned as the owner of the team. Only the users with the owner role can invite new members, add new owners and delete or update the team.", + "description": false, "responses": { "201": { - "description": "Team", + "description": "Transaction", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/team" + "$ref": "#\/components\/schemas\/transaction" } } } @@ -10684,25 +13335,24 @@ }, "deprecated": false, "x-appwrite": { - "method": "create", - "group": "teams", - "weight": 106, + "method": "createTransaction", + "group": "transactions", + "weight": 455, "cookies": false, "type": "", - "demo": "teams\/create.md", + "demo": "vectordb\/create-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": "documents.write", "platforms": [ "console", - "client", "server", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team.md", "auth": { "Project": [] } @@ -10720,50 +13370,34 @@ "schema": { "type": "object", "properties": { - "teamId": { - "type": "string", - "description": "Team 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.", - "x-example": "" - }, - "name": { - "type": "string", - "description": "Team name. Max length: 128 chars.", - "x-example": "" - }, - "roles": { - "type": "array", - "description": "Array of strings. Use this param to set the roles in the team for the user who created it. The default role is **owner**. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 32 characters long.", - "x-example": null, - "items": { - "type": "string" - } + "ttl": { + "type": "integer", + "description": "Seconds before the transaction expires.", + "x-example": 60, + "format": "int32" } - }, - "required": [ - "teamId", - "name" - ] + } } } } } } }, - "\/teams\/{teamId}": { - "get": { - "summary": "Get team", - "operationId": "teamsGet", + "\/vectordb\/transactions\/{transactionId}": { + "get": { + "summary": "Get transaction", + "operationId": "vectorDBGetTransaction", "tags": [ - "teams" + "vectorDB" ], - "description": "Get a team by its ID. All team members have read access for this resource.", + "description": false, "responses": { "200": { - "description": "Team", + "description": "Transaction", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/team" + "$ref": "#\/components\/schemas\/transaction" } } } @@ -10771,25 +13405,24 @@ }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": "teams", - "weight": 108, + "method": "getTransaction", + "group": "transactions", + "weight": 456, "cookies": false, "type": "", - "demo": "teams\/get.md", + "demo": "vectordb\/get-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "documents.read", "platforms": [ "console", - "client", "server", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team.md", "auth": { "Project": [] } @@ -10803,31 +13436,31 @@ ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" } ] }, - "put": { - "summary": "Update name", - "operationId": "teamsUpdateName", + "patch": { + "summary": "Update transaction", + "operationId": "vectorDBUpdateTransaction", "tags": [ - "teams" + "vectorDB" ], - "description": "Update the team's name by its unique ID.", + "description": false, "responses": { "200": { - "description": "Team", + "description": "Transaction", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/team" + "$ref": "#\/components\/schemas\/transaction" } } } @@ -10835,25 +13468,24 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateName", - "group": "teams", - "weight": 110, + "method": "updateTransaction", + "group": "transactions", + "weight": 457, "cookies": false, "type": "", - "demo": "teams\/update-name.md", + "demo": "vectordb\/update-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": "documents.write", "platforms": [ "console", - "client", "server", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-name.md", "auth": { "Project": [] } @@ -10867,12 +13499,12 @@ ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" } @@ -10883,27 +13515,29 @@ "schema": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "New team name. Max length: 128 chars.", - "x-example": "" + "commit": { + "type": "boolean", + "description": "Commit transaction?", + "x-example": false + }, + "rollback": { + "type": "boolean", + "description": "Rollback transaction?", + "x-example": false } - }, - "required": [ - "name" - ] + } } } } } }, "delete": { - "summary": "Delete team", - "operationId": "teamsDelete", + "summary": "Delete transaction", + "operationId": "vectorDBDeleteTransaction", "tags": [ - "teams" + "vectorDB" ], - "description": "Delete a team using its ID. Only team members with the owner role can delete the team.", + "description": false, "responses": { "204": { "description": "No content" @@ -10911,25 +13545,24 @@ }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": "teams", - "weight": 112, + "method": "deleteTransaction", + "group": "transactions", + "weight": 458, "cookies": false, "type": "", - "demo": "teams\/delete.md", + "demo": "vectordb\/delete-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": "documents.write", "platforms": [ "console", - "client", "server", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team.md", "auth": { "Project": [] } @@ -10943,132 +13576,33 @@ ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" } ] } }, - "\/teams\/{teamId}\/memberships": { - "get": { - "summary": "List team memberships", - "operationId": "teamsListMemberships", - "tags": [ - "teams" - ], - "description": "Use this endpoint to list a team's members using the team's ID. All team members have read access to this endpoint. Hide sensitive attributes from the response by toggling membership privacy in the Console.", - "responses": { - "200": { - "description": "Memberships List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/membershipList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "listMemberships", - "group": "memberships", - "weight": 114, - "cookies": false, - "type": "", - "demo": "teams\/list-memberships.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", - "platforms": [ - "console", - "client", - "server", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/list-team-members.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: userId, teamId, invited, joined, confirm, roles", - "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", - "x-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", - "x-example": false, - "default": true - }, - "in": "query" - } - ] - }, + "\/vectordb\/transactions\/{transactionId}\/operations": { "post": { - "summary": "Create team membership", - "operationId": "teamsCreateMembership", + "summary": "Create operations", + "operationId": "vectorDBCreateOperations", "tags": [ - "teams" + "vectorDB" ], - "description": "Invite a new member to join your team. Provide an ID for existing users, or invite unregistered users using an email or phone number. If initiated from a Client SDK, Appwrite will send an email or sms with a link to join the team to the invited user, and an account will be created for them if one doesn't exist. If initiated from a Server SDK, the new member will be added automatically to the team.\n\nYou only need to provide one of a user ID, email, or phone number. Appwrite will prioritize accepting the user ID > email > phone number if you provide more than one of these parameters.\n\nUse the `url` parameter to redirect the user from the invitation email to your app. After the user is redirected, use the [Update Team Membership Status](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/teams#updateMembershipStatus) endpoint to allow the user to accept the invitation to the team. \n\nPlease note that to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) Appwrite will accept the only redirect URLs under the domains you have added as a platform on the Appwrite Console.\n", + "description": false, "responses": { "201": { - "description": "Membership", + "description": "Transaction", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/membership" + "$ref": "#\/components\/schemas\/transaction" } } } @@ -11076,25 +13610,24 @@ }, "deprecated": false, "x-appwrite": { - "method": "createMembership", - "group": "memberships", - "weight": 113, + "method": "createOperations", + "group": "transactions", + "weight": 460, "cookies": false, "type": "", - "demo": "teams\/create-membership.md", - "rate-limit": 10, + "demo": "vectordb\/create-operations.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": "documents.write", "platforms": [ "console", - "client", "server", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team-membership.md", "auth": { "Project": [] } @@ -11108,12 +13641,12 @@ ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" } @@ -11124,67 +13657,36 @@ "schema": { "type": "object", "properties": { - "email": { - "type": "string", - "description": "Email of the new team member.", - "x-example": "email@example.com", - "format": "email" - }, - "userId": { - "type": "string", - "description": "ID of the user to be added to a team.", - "x-example": "" - }, - "phone": { - "type": "string", - "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "x-example": "+12065550100", - "format": "phone" - }, - "roles": { + "operations": { "type": "array", - "description": "Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 32 characters long.", - "x-example": null, + "description": "Array of staged operations.", + "x-example": "[\n\t {\n\t \"action\": \"create\",\n\t \"databaseId\": \"\",\n\t \"collectionId\": \"\",\n\t \"documentId\": \"\",\n\t \"data\": {\n\t \"name\": \"Walter O'Brien\"\n\t }\n\t }\n\t]", "items": { - "type": "string" + "type": "object" } - }, - "url": { - "type": "string", - "description": "URL to redirect the user back to your app from the invitation email. This parameter is not required when an API key is supplied. 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.", - "x-example": "https:\/\/example.com", - "format": "url" - }, - "name": { - "type": "string", - "description": "Name of the new team member. Max length: 128 chars.", - "x-example": "" } - }, - "required": [ - "roles" - ] + } } } } } } }, - "\/teams\/{teamId}\/memberships\/{membershipId}": { + "\/vectordb\/{databaseId}\/collections\/{collectionId}\/documents": { "get": { - "summary": "Get team membership", - "operationId": "teamsGetMembership", + "summary": "List documents", + "operationId": "vectorDBListDocuments", "tags": [ - "teams" + "vectorDB" ], - "description": "Get a team member by the membership unique id. All team members have read access for this resource. Hide sensitive attributes from the response by toggling membership privacy in the Console.", + "description": false, "responses": { "200": { - "description": "Membership", + "description": "Documents List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/membership" + "$ref": "#\/components\/schemas\/documentList" } } } @@ -11192,16 +13694,16 @@ }, "deprecated": false, "x-appwrite": { - "method": "getMembership", - "group": "memberships", - "weight": 115, + "method": "listDocuments", + "group": "documents", + "weight": 449, "cookies": false, "type": "", - "demo": "teams\/get-membership.md", + "demo": "vectordb\/list-documents.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "documents.read", "platforms": [ "console", "client", @@ -11210,7 +13712,6 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-member.md", "auth": { "Project": [] } @@ -11224,41 +13725,87 @@ ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" }, { - "name": "membershipId", - "description": "Membership ID.", + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "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", + "x-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", + "x-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", + "x-example": 0, + "default": 0 + }, + "in": "query" } ] }, - "patch": { - "summary": "Update membership", - "operationId": "teamsUpdateMembership", + "post": { + "summary": "Create document", + "operationId": "vectorDBCreateDocument", "tags": [ - "teams" + "vectorDB" ], - "description": "Modify the roles of a team member. Only team members with the owner role have access to this endpoint. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions).\n", + "description": false, "responses": { - "200": { - "description": "Membership", + "201": { + "description": "Document", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/membership" + "$ref": "#\/components\/schemas\/document" } } } @@ -11266,16 +13813,16 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateMembership", - "group": "memberships", - "weight": 116, + "method": "createDocument", + "group": "documents", + "weight": 445, "cookies": false, "type": "", - "demo": "teams\/update-membership.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "demo": "vectordb\/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", @@ -11284,7 +13831,38 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership.md", + "methods": [ + { + "name": "createDocument", + "namespace": "vectorDB", + "desc": "Create document", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions" + ], + "required": [ + "databaseId", + "collectionId", + "documentId", + "data" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/document" + } + ], + "description": "", + "demo": "vectordb\/create-document.md", + "public": true + } + ], "auth": { "Project": [] } @@ -11298,22 +13876,22 @@ ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" }, { - "name": "membershipId", - "description": "Membership ID.", + "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", - "x-example": "" + "x-example": "" }, "in": "path" } @@ -11324,47 +13902,76 @@ "schema": { "type": "object", "properties": { - "roles": { + "documentId": { + "type": "string", + "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "" + }, + "data": { + "type": "object", + "description": "Document data as JSON object.", + "x-example": "{\"embeddings\": [0.12, -0.55, 0.88, 1.02], \"metadata\": {\"key\":\"value\"} }" + }, + "permissions": { "type": "array", - "description": "An array of strings. Use this param to set the user's roles in the team. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 32 characters long.", - "x-example": null, + "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).", + "x-example": "[\"read(\"any\")\"]", "items": { "type": "string" } + }, + "documents": { + "type": "array", + "description": "Array of documents data as JSON objects.", + "x-example": null, + "items": { + "type": "object" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "" } - }, - "required": [ - "roles" - ] + } } } } } - }, - "delete": { - "summary": "Delete team membership", - "operationId": "teamsDeleteMembership", + } + }, + "\/vectordb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { + "get": { + "summary": "Get document", + "operationId": "vectorDBGetDocument", "tags": [ - "teams" + "vectorDB" ], - "description": "This endpoint allows a user to leave a team or for a team owner to delete the membership of any other team member. You can also use this endpoint to delete a user membership even if it is not accepted.", + "description": false, "responses": { - "204": { - "description": "No content" + "200": { + "description": "Document", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/document" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteMembership", - "group": null, - "weight": 555, + "method": "getDocument", + "group": "documents", + "weight": 448, "cookies": false, "type": "", - "demo": "teams\/delete-membership.md", + "demo": "vectordb\/get-document.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": "documents.read", "platforms": [ "console", "client", @@ -11373,7 +13980,6 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team-membership.md", "auth": { "Project": [] } @@ -11387,43 +13993,74 @@ ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" }, { - "name": "membershipId", - "description": "Membership ID.", + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" }, "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "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", + "x-example": "" + }, + "in": "query" } ] - } - }, - "\/teams\/{teamId}\/memberships\/{membershipId}\/status": { - "patch": { - "summary": "Update team membership status", - "operationId": "teamsUpdateMembershipStatus", + }, + "put": { + "summary": "Upsert a document", + "operationId": "vectorDBUpsertDocument", "tags": [ - "teams" + "vectorDB" ], - "description": "Use this endpoint to allow a user to accept an invitation to join a team after being redirected back to your app from the invitation email received by the user.\n\nIf the request is successful, a session for the user is automatically created.\n", + "description": false, "responses": { - "200": { - "description": "Membership", + "201": { + "description": "Document", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/membership" + "$ref": "#\/components\/schemas\/document" } } } @@ -11431,24 +14068,56 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateMembershipStatus", - "group": "memberships", - "weight": 117, + "method": "upsertDocument", + "group": "documents", + "weight": 447, "cookies": false, "type": "", - "demo": "teams\/update-membership-status.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "demo": "vectordb\/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", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership-status.md", + "methods": [ + { + "name": "upsertDocument", + "namespace": "vectorDB", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documentId" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/document" + } + ], + "description": "", + "demo": "vectordb\/upsert-document.md", + "public": true + } + ], "auth": { "Project": [] } @@ -11462,22 +14131,32 @@ ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" }, { - "name": "membershipId", - "description": "Membership ID.", + "name": "collectionId", + "description": "Collection ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" }, "in": "path" } @@ -11488,42 +14167,44 @@ "schema": { "type": "object", "properties": { - "userId": { - "type": "string", - "description": "User ID.", - "x-example": "" + "data": { + "type": "object", + "description": "Document data as JSON object. Include all required fields of the document to be created or updated.", + "x-example": "{}" }, - "secret": { + "permissions": { + "type": "array", + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } + }, + "transactionId": { "type": "string", - "description": "Secret key.", - "x-example": "" + "description": "Transaction ID for staging the operation.", + "x-example": "" } - }, - "required": [ - "userId", - "secret" - ] + } } } } } - } - }, - "\/teams\/{teamId}\/prefs": { - "get": { - "summary": "Get team preferences", - "operationId": "teamsGetPrefs", + }, + "patch": { + "summary": "Update document", + "operationId": "vectorDBUpdateDocument", "tags": [ - "teams" + "vectorDB" ], - "description": "Get the team's shared preferences by its unique ID. If a preference doesn't need to be shared by all team members, prefer storing them in [user preferences](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#getPrefs).", + "description": false, "responses": { "200": { - "description": "Preferences", + "description": "Document", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/preferences" + "$ref": "#\/components\/schemas\/document" } } } @@ -11531,24 +14212,24 @@ }, "deprecated": false, "x-appwrite": { - "method": "getPrefs", - "group": "teams", - "weight": 109, + "method": "updateDocument", + "group": "documents", + "weight": 446, "cookies": false, "type": "", - "demo": "teams\/get-prefs.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "demo": "vectordb\/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", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-prefs.md", "auth": { "Project": [] } @@ -11562,56 +14243,98 @@ ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" }, "in": "path" } - ] - }, - "put": { - "summary": "Update preferences", - "operationId": "teamsUpdatePrefs", - "tags": [ - "teams" ], - "description": "Update the team's preferences by its unique ID. The object you pass is stored as is and replaces any previous value. The maximum allowed prefs size is 64kB and throws an error if exceeded.", - "responses": { - "200": { - "description": "Preferences", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/preferences" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "object", + "description": "Document data as JSON object. Include only fields and value pairs to be updated.", + "x-example": "{}" + }, + "permissions": { + "type": "array", + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "" + } } } } } + } + }, + "delete": { + "summary": "Delete document", + "operationId": "vectorDBDeleteDocument", + "tags": [ + "vectorDB" + ], + "description": false, + "responses": { + "204": { + "description": "No content" + } }, "deprecated": false, "x-appwrite": { - "method": "updatePrefs", - "group": "teams", - "weight": 111, + "method": "deleteDocument", + "group": "documents", + "weight": 450, "cookies": false, "type": "", - "demo": "teams\/update-prefs.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "demo": "vectordb\/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", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-prefs.md", "auth": { "Project": [] } @@ -11625,12 +14348,32 @@ ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" }, "in": "path" } @@ -11641,15 +14384,12 @@ "schema": { "type": "object", "properties": { - "prefs": { - "type": "object", - "description": "Prefs key-value JSON object.", - "x-example": "{}" + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "" } - }, - "required": [ - "prefs" - ] + } } } } @@ -12236,8 +14976,8 @@ }, "$sequence": { "type": "integer", - "description": "Row automatically incrementing ID.", - "x-example": 1, + "description": "Row sequence ID.", + "x-example": "1", "format": "int32", "readOnly": true }, @@ -12286,7 +15026,7 @@ ], "example": { "$id": "5e5ea5c16897e", - "$sequence": 1, + "$sequence": "1", "$tableId": "5e5ea5c15117e", "$databaseId": "5e5ea5c15117e", "$createdAt": "2020-10-15T06:38:00.000+00:00", @@ -12307,8 +15047,8 @@ }, "$sequence": { "type": "integer", - "description": "Document automatically incrementing ID.", - "x-example": 1, + "description": "Document sequence ID.", + "x-example": "1", "format": "int32", "readOnly": true }, @@ -12357,7 +15097,7 @@ ], "example": { "$id": "5e5ea5c16897e", - "$sequence": 1, + "$sequence": "1", "$collectionId": "5e5ea5c15117e", "$databaseId": "5e5ea5c15117e", "$createdAt": "2020-10-15T06:38:00.000+00:00", diff --git a/specs/latest/open-api3-latest-console.json b/specs/latest/open-api3-latest-console.json index cc574de8..42a3c756 100644 --- a/specs/latest/open-api3-latest-console.json +++ b/specs/latest/open-api3-latest-console.json @@ -227,7 +227,7 @@ "x-appwrite": { "method": "listBillingAddresses", "group": null, - "weight": 769, + "weight": 788, "cookies": false, "type": "", "demo": "account\/list-billing-addresses.md", @@ -289,7 +289,7 @@ "x-appwrite": { "method": "createBillingAddress", "group": null, - "weight": 767, + "weight": 786, "cookies": false, "type": "", "demo": "account\/create-billing-address.md", @@ -384,7 +384,7 @@ "x-appwrite": { "method": "getBillingAddress", "group": null, - "weight": 768, + "weight": 787, "cookies": false, "type": "", "demo": "account\/get-billing-address.md", @@ -443,7 +443,7 @@ "x-appwrite": { "method": "updateBillingAddress", "group": null, - "weight": 770, + "weight": 789, "cookies": false, "type": "", "demo": "account\/update-billing-address.md", @@ -541,7 +541,7 @@ "x-appwrite": { "method": "deleteBillingAddress", "group": null, - "weight": 771, + "weight": 790, "cookies": false, "type": "", "demo": "account\/delete-billing-address.md", @@ -602,7 +602,7 @@ "x-appwrite": { "method": "getCoupon", "group": null, - "weight": 773, + "weight": 792, "cookies": false, "type": "", "demo": "account\/get-coupon.md", @@ -877,7 +877,7 @@ "x-appwrite": { "method": "listInvoices", "group": null, - "weight": 772, + "weight": 791, "cookies": false, "type": "", "demo": "account\/list-invoices.md", @@ -993,7 +993,7 @@ "tags": [ "account" ], - "description": "Get a list of all API keys from the current account. ", + "description": "Get a list of all API keys from the current account.", "responses": { "200": { "description": "API Keys List", @@ -1010,7 +1010,7 @@ "x-appwrite": { "method": "listKeys", "group": "keys", - "weight": 755, + "weight": 774, "cookies": false, "type": "", "demo": "account\/list-keys.md", @@ -1023,29 +1023,6 @@ ], "packaging": false, "public": true, - "methods": [ - { - "name": "listKeys", - "namespace": "account", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "total" - ], - "required": [], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/keyList" - } - ], - "description": "", - "demo": "account\/list-keys.md", - "public": true - } - ], "auth": { "Project": [] } @@ -1092,7 +1069,7 @@ "x-appwrite": { "method": "createKey", "group": "keys", - "weight": 756, + "weight": 775, "cookies": false, "type": "", "demo": "account\/create-key.md", @@ -1105,34 +1082,6 @@ ], "packaging": false, "public": true, - "methods": [ - { - "name": "createKey", - "namespace": "account", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "name", - "scopes", - "expire" - ], - "required": [ - "name", - "scopes" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/key" - } - ], - "description": "", - "demo": "account\/create-key.md", - "public": true - } - ], "auth": { "Project": [] } @@ -1209,7 +1158,7 @@ "x-appwrite": { "method": "getKey", "group": "keys", - "weight": 759, + "weight": 778, "cookies": false, "type": "", "demo": "account\/get-key.md", @@ -1222,31 +1171,6 @@ ], "packaging": false, "public": true, - "methods": [ - { - "name": "getKey", - "namespace": "account", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "keyId" - ], - "required": [ - "keyId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/key" - } - ], - "description": "", - "demo": "account\/get-key.md", - "public": true - } - ], "auth": { "Project": [] } @@ -1292,7 +1216,7 @@ "x-appwrite": { "method": "updateKey", "group": "keys", - "weight": 758, + "weight": 777, "cookies": false, "type": "", "demo": "account\/update-key.md", @@ -1305,36 +1229,6 @@ ], "packaging": false, "public": true, - "methods": [ - { - "name": "updateKey", - "namespace": "account", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "keyId", - "name", - "scopes", - "expire" - ], - "required": [ - "keyId", - "name", - "scopes" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/key" - } - ], - "description": "", - "demo": "account\/update-key.md", - "public": true - } - ], "auth": { "Project": [] } @@ -1414,7 +1308,7 @@ "x-appwrite": { "method": "deleteKey", "group": "keys", - "weight": 757, + "weight": 776, "cookies": false, "type": "", "demo": "account\/delete-key.md", @@ -1427,30 +1321,6 @@ ], "packaging": false, "public": true, - "methods": [ - { - "name": "deleteKey", - "namespace": "account", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "keyId" - ], - "required": [ - "keyId" - ], - "responses": [ - { - "code": 204 - } - ], - "description": "", - "demo": "account\/delete-key.md", - "public": true - } - ], "auth": { "Project": [] } @@ -1576,7 +1446,7 @@ "x-appwrite": { "method": "updateMFA", "group": "mfa", - "weight": 239, + "weight": 223, "cookies": false, "type": "", "demo": "account\/update-mfa.md", @@ -1647,7 +1517,7 @@ "x-appwrite": { "method": "createMfaAuthenticator", "group": "mfa", - "weight": 241, + "weight": 225, "cookies": false, "type": "", "demo": "account\/create-mfa-authenticator.md", @@ -1770,7 +1640,7 @@ "x-appwrite": { "method": "updateMfaAuthenticator", "group": "mfa", - "weight": 242, + "weight": 226, "cookies": false, "type": "", "demo": "account\/update-mfa-authenticator.md", @@ -1909,7 +1779,7 @@ "x-appwrite": { "method": "deleteMfaAuthenticator", "group": "mfa", - "weight": 243, + "weight": 227, "cookies": false, "type": "", "demo": "account\/delete-mfa-authenticator.md", @@ -2032,7 +1902,7 @@ "x-appwrite": { "method": "createMfaChallenge", "group": "mfa", - "weight": 247, + "weight": 231, "cookies": false, "type": "", "demo": "account\/create-mfa-challenge.md", @@ -2165,7 +2035,7 @@ "x-appwrite": { "method": "updateMfaChallenge", "group": "mfa", - "weight": 248, + "weight": 232, "cookies": false, "type": "", "demo": "account\/update-mfa-challenge.md", @@ -2302,7 +2172,7 @@ "x-appwrite": { "method": "listMfaFactors", "group": "mfa", - "weight": 240, + "weight": 224, "cookies": false, "type": "", "demo": "account\/list-mfa-factors.md", @@ -2402,7 +2272,7 @@ "x-appwrite": { "method": "getMfaRecoveryCodes", "group": "mfa", - "weight": 246, + "weight": 230, "cookies": false, "type": "", "demo": "account\/get-mfa-recovery-codes.md", @@ -2500,7 +2370,7 @@ "x-appwrite": { "method": "createMfaRecoveryCodes", "group": "mfa", - "weight": 244, + "weight": 228, "cookies": false, "type": "", "demo": "account\/create-mfa-recovery-codes.md", @@ -2598,7 +2468,7 @@ "x-appwrite": { "method": "updateMfaRecoveryCodes", "group": "mfa", - "weight": 245, + "weight": 229, "cookies": false, "type": "", "demo": "account\/update-mfa-recovery-codes.md", @@ -2846,7 +2716,7 @@ "x-appwrite": { "method": "listPaymentMethods", "group": null, - "weight": 762, + "weight": 781, "cookies": false, "type": "", "demo": "account\/list-payment-methods.md", @@ -2908,7 +2778,7 @@ "x-appwrite": { "method": "createPaymentMethod", "group": null, - "weight": 760, + "weight": 779, "cookies": false, "type": "", "demo": "account\/create-payment-method.md", @@ -2957,7 +2827,7 @@ "x-appwrite": { "method": "getPaymentMethod", "group": null, - "weight": 761, + "weight": 780, "cookies": false, "type": "", "demo": "account\/get-payment-method.md", @@ -3016,7 +2886,7 @@ "x-appwrite": { "method": "updatePaymentMethod", "group": null, - "weight": 763, + "weight": 782, "cookies": false, "type": "", "demo": "account\/update-payment-method.md", @@ -3100,7 +2970,7 @@ "x-appwrite": { "method": "deletePaymentMethod", "group": null, - "weight": 766, + "weight": 785, "cookies": false, "type": "", "demo": "account\/delete-payment-method.md", @@ -3161,7 +3031,7 @@ "x-appwrite": { "method": "updatePaymentMethodProvider", "group": null, - "weight": 764, + "weight": 783, "cookies": false, "type": "", "demo": "account\/update-payment-method-provider.md", @@ -3253,7 +3123,7 @@ "x-appwrite": { "method": "updatePaymentMethodMandateOptions", "group": null, - "weight": 765, + "weight": 784, "cookies": false, "type": "", "demo": "account\/update-payment-method-mandate-options.md", @@ -5507,7 +5377,7 @@ "x-appwrite": { "method": "listEvents", "group": null, - "weight": 779, + "weight": 800, "cookies": false, "type": "", "demo": "activities\/list-events.md", @@ -5570,7 +5440,7 @@ "x-appwrite": { "method": "getEvent", "group": "events", - "weight": 780, + "weight": 801, "cookies": false, "type": "", "demo": "activities\/get-event.md", @@ -5626,7 +5496,7 @@ "x-appwrite": { "method": "getBrowser", "group": null, - "weight": 250, + "weight": 234, "cookies": false, "type": "location", "demo": "avatars\/get-browser.md", @@ -5754,7 +5624,7 @@ "x-appwrite": { "method": "getCreditCard", "group": null, - "weight": 249, + "weight": 233, "cookies": false, "type": "location", "demo": "avatars\/get-credit-card.md", @@ -5888,7 +5758,7 @@ "x-appwrite": { "method": "getFavicon", "group": null, - "weight": 253, + "weight": 237, "cookies": false, "type": "location", "demo": "avatars\/get-favicon.md", @@ -5948,7 +5818,7 @@ "x-appwrite": { "method": "getFlag", "group": null, - "weight": 251, + "weight": 235, "cookies": false, "type": "location", "demo": "avatars\/get-flag.md", @@ -6438,7 +6308,7 @@ "x-appwrite": { "method": "getImage", "group": null, - "weight": 252, + "weight": 236, "cookies": false, "type": "location", "demo": "avatars\/get-image.md", @@ -6522,7 +6392,7 @@ "x-appwrite": { "method": "getInitials", "group": null, - "weight": 255, + "weight": 239, "cookies": false, "type": "location", "demo": "avatars\/get-initials.md", @@ -6616,7 +6486,7 @@ "x-appwrite": { "method": "getQR", "group": null, - "weight": 254, + "weight": 238, "cookies": false, "type": "location", "demo": "avatars\/get-qr.md", @@ -6710,7 +6580,7 @@ "x-appwrite": { "method": "getScreenshot", "group": null, - "weight": 256, + "weight": 240, "cookies": false, "type": "location", "demo": "avatars\/get-screenshot.md", @@ -7463,7 +7333,7 @@ "x-appwrite": { "method": "listArchives", "group": null, - "weight": 749, + "weight": 768, "cookies": false, "type": "", "demo": "backups\/list-archives.md", @@ -7527,7 +7397,7 @@ "x-appwrite": { "method": "createArchive", "group": null, - "weight": 750, + "weight": 769, "cookies": false, "type": "", "demo": "backups\/create-archive.md", @@ -7566,6 +7436,9 @@ "type": "string", "enum": [ "databases", + "tablesdb", + "documentsdb", + "vectordb", "functions", "storage" ], @@ -7613,7 +7486,7 @@ "x-appwrite": { "method": "getArchive", "group": null, - "weight": 748, + "weight": 767, "cookies": false, "type": "", "demo": "backups\/get-archive.md", @@ -7667,7 +7540,7 @@ "x-appwrite": { "method": "deleteArchive", "group": null, - "weight": 751, + "weight": 770, "cookies": false, "type": "", "demo": "backups\/delete-archive.md", @@ -7730,7 +7603,7 @@ "x-appwrite": { "method": "listPolicies", "group": null, - "weight": 744, + "weight": 763, "cookies": false, "type": "", "demo": "backups\/list-policies.md", @@ -7794,7 +7667,7 @@ "x-appwrite": { "method": "createPolicy", "group": null, - "weight": 745, + "weight": 764, "cookies": false, "type": "", "demo": "backups\/create-policy.md", @@ -7843,6 +7716,9 @@ "type": "string", "enum": [ "databases", + "tablesdb", + "documentsdb", + "vectordb", "functions", "storage" ], @@ -7909,7 +7785,7 @@ "x-appwrite": { "method": "getPolicy", "group": null, - "weight": 743, + "weight": 762, "cookies": false, "type": "", "demo": "backups\/get-policy.md", @@ -7970,7 +7846,7 @@ "x-appwrite": { "method": "updatePolicy", "group": null, - "weight": 746, + "weight": 765, "cookies": false, "type": "", "demo": "backups\/update-policy.md", @@ -8059,7 +7935,7 @@ "x-appwrite": { "method": "deletePolicy", "group": null, - "weight": 747, + "weight": 766, "cookies": false, "type": "", "demo": "backups\/delete-policy.md", @@ -8122,7 +7998,7 @@ "x-appwrite": { "method": "createRestoration", "group": null, - "weight": 754, + "weight": 773, "cookies": false, "type": "", "demo": "backups\/create-restoration.md", @@ -8166,6 +8042,9 @@ "type": "string", "enum": [ "databases", + "tablesdb", + "documentsdb", + "vectordb", "functions", "storage" ], @@ -8218,7 +8097,7 @@ "x-appwrite": { "method": "listRestorations", "group": null, - "weight": 753, + "weight": 772, "cookies": false, "type": "", "demo": "backups\/list-restorations.md", @@ -8284,7 +8163,7 @@ "x-appwrite": { "method": "getRestoration", "group": null, - "weight": 752, + "weight": 771, "cookies": false, "type": "", "demo": "backups\/get-restoration.md", @@ -8340,7 +8219,7 @@ "x-appwrite": { "method": "chat", "group": "console", - "weight": 505, + "weight": 559, "cookies": false, "type": "", "demo": "assistant\/chat.md", @@ -8408,7 +8287,7 @@ "x-appwrite": { "method": "getCampaign", "group": null, - "weight": 623, + "weight": 638, "cookies": false, "type": "", "demo": "console\/get-campaign.md", @@ -8469,7 +8348,7 @@ "x-appwrite": { "method": "getCoupon", "group": null, - "weight": 620, + "weight": 635, "cookies": false, "type": "", "demo": "console\/get-coupon.md", @@ -8530,7 +8409,7 @@ "x-appwrite": { "method": "getPlans", "group": null, - "weight": 618, + "weight": 633, "cookies": false, "type": "", "demo": "console\/get-plans.md", @@ -8598,7 +8477,7 @@ "x-appwrite": { "method": "getPlan", "group": null, - "weight": 619, + "weight": 634, "cookies": false, "type": "", "demo": "console\/get-plan.md", @@ -8659,7 +8538,7 @@ "x-appwrite": { "method": "getProgram", "group": null, - "weight": 621, + "weight": 636, "cookies": false, "type": "", "demo": "console\/get-program.md", @@ -8720,7 +8599,7 @@ "x-appwrite": { "method": "createProgramMembership", "group": null, - "weight": 622, + "weight": 637, "cookies": false, "type": "", "demo": "console\/create-program-membership.md", @@ -8781,7 +8660,7 @@ "x-appwrite": { "method": "listRegions", "group": null, - "weight": 617, + "weight": 632, "cookies": false, "type": "", "demo": "console\/list-regions.md", @@ -8823,7 +8702,7 @@ "x-appwrite": { "method": "getResource", "group": null, - "weight": 506, + "weight": 560, "cookies": false, "type": "", "demo": "console\/get-resource.md", @@ -8898,7 +8777,7 @@ "x-appwrite": { "method": "createSource", "group": null, - "weight": 624, + "weight": 639, "cookies": false, "type": "", "demo": "console\/create-source.md", @@ -8989,7 +8868,7 @@ "x-appwrite": { "method": "suggestColumns", "group": null, - "weight": 625, + "weight": 640, "cookies": false, "type": "", "demo": "console\/suggest-columns.md", @@ -9094,7 +8973,7 @@ "x-appwrite": { "method": "suggestIndexes", "group": null, - "weight": 626, + "weight": 641, "cookies": false, "type": "", "demo": "console\/suggest-indexes.md", @@ -9189,7 +9068,7 @@ "x-appwrite": { "method": "variables", "group": "console", - "weight": 504, + "weight": 558, "cookies": false, "type": "", "demo": "console\/variables.md", @@ -9238,7 +9117,7 @@ "x-appwrite": { "method": "list", "group": "databases", - "weight": 264, + "weight": 248, "cookies": false, "type": "", "demo": "databases\/list.md", @@ -9357,7 +9236,7 @@ "x-appwrite": { "method": "create", "group": "databases", - "weight": 260, + "weight": 244, "cookies": false, "type": "", "demo": "databases\/create.md", @@ -9474,7 +9353,7 @@ "x-appwrite": { "method": "listTransactions", "group": "transactions", - "weight": 332, + "weight": 316, "cookies": false, "type": "", "demo": "databases\/list-transactions.md", @@ -9541,7 +9420,7 @@ "x-appwrite": { "method": "createTransaction", "group": "transactions", - "weight": 328, + "weight": 312, "cookies": false, "type": "", "demo": "databases\/create-transaction.md", @@ -9612,7 +9491,7 @@ "x-appwrite": { "method": "getTransaction", "group": "transactions", - "weight": 329, + "weight": 313, "cookies": false, "type": "", "demo": "databases\/get-transaction.md", @@ -9676,7 +9555,7 @@ "x-appwrite": { "method": "updateTransaction", "group": "transactions", - "weight": 330, + "weight": 314, "cookies": false, "type": "", "demo": "databases\/update-transaction.md", @@ -9754,7 +9633,7 @@ "x-appwrite": { "method": "deleteTransaction", "group": "transactions", - "weight": 331, + "weight": 315, "cookies": false, "type": "", "demo": "databases\/delete-transaction.md", @@ -9820,7 +9699,7 @@ "x-appwrite": { "method": "createOperations", "group": "transactions", - "weight": 333, + "weight": 317, "cookies": false, "type": "", "demo": "databases\/create-operations.md", @@ -9905,7 +9784,7 @@ "x-appwrite": { "method": "listUsage", "group": null, - "weight": 267, + "weight": 251, "cookies": false, "type": "", "demo": "databases\/list-usage.md", @@ -10009,7 +9888,7 @@ "x-appwrite": { "method": "get", "group": "databases", - "weight": 261, + "weight": 245, "cookies": false, "type": "", "demo": "databases\/get.md", @@ -10103,7 +9982,7 @@ "x-appwrite": { "method": "update", "group": "databases", - "weight": 262, + "weight": 246, "cookies": false, "type": "", "demo": "databases\/update.md", @@ -10213,7 +10092,7 @@ "x-appwrite": { "method": "delete", "group": "databases", - "weight": 263, + "weight": 247, "cookies": false, "type": "", "demo": "databases\/delete.md", @@ -10308,7 +10187,7 @@ "x-appwrite": { "method": "listCollections", "group": "collections", - "weight": 272, + "weight": 256, "cookies": false, "type": "", "demo": "databases\/list-collections.md", @@ -10408,7 +10287,7 @@ "x-appwrite": { "method": "createCollection", "group": "collections", - "weight": 268, + "weight": 252, "cookies": false, "type": "", "demo": "databases\/create-collection.md", @@ -10535,7 +10414,7 @@ "x-appwrite": { "method": "getCollection", "group": "collections", - "weight": 269, + "weight": 253, "cookies": false, "type": "", "demo": "databases\/get-collection.md", @@ -10610,7 +10489,7 @@ "x-appwrite": { "method": "updateCollection", "group": "collections", - "weight": 270, + "weight": 254, "cookies": false, "type": "", "demo": "databases\/update-collection.md", @@ -10713,7 +10592,7 @@ "x-appwrite": { "method": "deleteCollection", "group": "collections", - "weight": 271, + "weight": 255, "cookies": false, "type": "", "demo": "databases\/delete-collection.md", @@ -10790,7 +10669,7 @@ "x-appwrite": { "method": "listAttributes", "group": "attributes", - "weight": 289, + "weight": 273, "cookies": false, "type": "", "demo": "databases\/list-attributes.md", @@ -10891,7 +10770,7 @@ "x-appwrite": { "method": "createBooleanAttribute", "group": "attributes", - "weight": 290, + "weight": 274, "cookies": false, "type": "", "demo": "databases\/create-boolean-attribute.md", @@ -10933,7 +10812,7 @@ }, { "name": "collectionId", - "description": "Collection ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "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", @@ -11004,7 +10883,7 @@ "x-appwrite": { "method": "updateBooleanAttribute", "group": "attributes", - "weight": 291, + "weight": 275, "cookies": false, "type": "", "demo": "databases\/update-boolean-attribute.md", @@ -11122,7 +11001,7 @@ "x-appwrite": { "method": "createDatetimeAttribute", "group": "attributes", - "weight": 292, + "weight": 276, "cookies": false, "type": "", "demo": "databases\/create-datetime-attribute.md", @@ -11235,7 +11114,7 @@ "x-appwrite": { "method": "updateDatetimeAttribute", "group": "attributes", - "weight": 293, + "weight": 277, "cookies": false, "type": "", "demo": "databases\/update-datetime-attribute.md", @@ -11353,7 +11232,7 @@ "x-appwrite": { "method": "createEmailAttribute", "group": "attributes", - "weight": 294, + "weight": 278, "cookies": false, "type": "", "demo": "databases\/create-email-attribute.md", @@ -11467,7 +11346,7 @@ "x-appwrite": { "method": "updateEmailAttribute", "group": "attributes", - "weight": 295, + "weight": 279, "cookies": false, "type": "", "demo": "databases\/update-email-attribute.md", @@ -11586,7 +11465,7 @@ "x-appwrite": { "method": "createEnumAttribute", "group": "attributes", - "weight": 296, + "weight": 280, "cookies": false, "type": "", "demo": "databases\/create-enum-attribute.md", @@ -11708,7 +11587,7 @@ "x-appwrite": { "method": "updateEnumAttribute", "group": "attributes", - "weight": 297, + "weight": 281, "cookies": false, "type": "", "demo": "databases\/update-enum-attribute.md", @@ -11835,7 +11714,7 @@ "x-appwrite": { "method": "createFloatAttribute", "group": "attributes", - "weight": 298, + "weight": 282, "cookies": false, "type": "", "demo": "databases\/create-float-attribute.md", @@ -11963,7 +11842,7 @@ "x-appwrite": { "method": "updateFloatAttribute", "group": "attributes", - "weight": 299, + "weight": 283, "cookies": false, "type": "", "demo": "databases\/update-float-attribute.md", @@ -12096,7 +11975,7 @@ "x-appwrite": { "method": "createIntegerAttribute", "group": "attributes", - "weight": 300, + "weight": 284, "cookies": false, "type": "", "demo": "databases\/create-integer-attribute.md", @@ -12224,7 +12103,7 @@ "x-appwrite": { "method": "updateIntegerAttribute", "group": "attributes", - "weight": 301, + "weight": 285, "cookies": false, "type": "", "demo": "databases\/update-integer-attribute.md", @@ -12357,7 +12236,7 @@ "x-appwrite": { "method": "createIpAttribute", "group": "attributes", - "weight": 302, + "weight": 286, "cookies": false, "type": "", "demo": "databases\/create-ip-attribute.md", @@ -12470,7 +12349,7 @@ "x-appwrite": { "method": "updateIpAttribute", "group": "attributes", - "weight": 303, + "weight": 287, "cookies": false, "type": "", "demo": "databases\/update-ip-attribute.md", @@ -12588,7 +12467,7 @@ "x-appwrite": { "method": "createLineAttribute", "group": "attributes", - "weight": 304, + "weight": 288, "cookies": false, "type": "", "demo": "databases\/create-line-attribute.md", @@ -12703,7 +12582,7 @@ "x-appwrite": { "method": "updateLineAttribute", "group": "attributes", - "weight": 305, + "weight": 289, "cookies": false, "type": "", "demo": "databases\/update-line-attribute.md", @@ -12827,7 +12706,7 @@ "x-appwrite": { "method": "createLongtextAttribute", "group": "attributes", - "weight": 322, + "weight": 306, "cookies": false, "type": "", "demo": "databases\/create-longtext-attribute.md", @@ -12941,7 +12820,7 @@ "x-appwrite": { "method": "updateLongtextAttribute", "group": "attributes", - "weight": 323, + "weight": 307, "cookies": false, "type": "", "demo": "databases\/update-longtext-attribute.md", @@ -13055,7 +12934,7 @@ "x-appwrite": { "method": "createMediumtextAttribute", "group": "attributes", - "weight": 320, + "weight": 304, "cookies": false, "type": "", "demo": "databases\/create-mediumtext-attribute.md", @@ -13169,7 +13048,7 @@ "x-appwrite": { "method": "updateMediumtextAttribute", "group": "attributes", - "weight": 321, + "weight": 305, "cookies": false, "type": "", "demo": "databases\/update-mediumtext-attribute.md", @@ -13283,7 +13162,7 @@ "x-appwrite": { "method": "createPointAttribute", "group": "attributes", - "weight": 306, + "weight": 290, "cookies": false, "type": "", "demo": "databases\/create-point-attribute.md", @@ -13398,7 +13277,7 @@ "x-appwrite": { "method": "updatePointAttribute", "group": "attributes", - "weight": 307, + "weight": 291, "cookies": false, "type": "", "demo": "databases\/update-point-attribute.md", @@ -13522,7 +13401,7 @@ "x-appwrite": { "method": "createPolygonAttribute", "group": "attributes", - "weight": 308, + "weight": 292, "cookies": false, "type": "", "demo": "databases\/create-polygon-attribute.md", @@ -13637,7 +13516,7 @@ "x-appwrite": { "method": "updatePolygonAttribute", "group": "attributes", - "weight": 309, + "weight": 293, "cookies": false, "type": "", "demo": "databases\/update-polygon-attribute.md", @@ -13761,7 +13640,7 @@ "x-appwrite": { "method": "createRelationshipAttribute", "group": "attributes", - "weight": 310, + "weight": 294, "cookies": false, "type": "", "demo": "databases\/create-relationship-attribute.md", @@ -13876,146 +13755,21 @@ } } }, - "\/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": { - "method": "createStringAttribute", - "group": "attributes", - "weight": 312, - "cookies": false, - "type": "", - "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, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-string-attribute.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createStringColumn" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "x-example": null - }, - "size": { - "type": "integer", - "description": "Attribute size for text attributes, in number of characters.", - "x-example": 1, - "format": "int32" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "x-example": false - }, - "default": { - "type": "string", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "x-example": "", - "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "x-example": false - }, - "encrypt": { - "type": "boolean", - "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.", - "x-example": false - } - }, - "required": [ - "key", - "size", - "required" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/string\/{key}": { + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/relationship\/{key}": { "patch": { - "summary": "Update string attribute", - "operationId": "databasesUpdateStringAttribute", + "summary": "Update relationship attribute", + "operationId": "databasesUpdateRelationshipAttribute", "tags": [ "databases" ], - "description": "Update a string attribute. Changing the `default` value will not update already existing documents.\n", + "description": "Update relationship attribute. [Learn more about relationship attributes](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-attributes).\n", "responses": { "200": { - "description": "AttributeString", + "description": "AttributeRelationship", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/attributeString" + "$ref": "#\/components\/schemas\/attributeRelationship" } } } @@ -14023,12 +13777,12 @@ }, "deprecated": true, "x-appwrite": { - "method": "updateStringAttribute", + "method": "updateRelationshipAttribute", "group": "attributes", - "weight": 313, + "weight": 295, "cookies": false, "type": "", - "demo": "databases\/update-string-attribute.md", + "demo": "databases\/update-relationship-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -14039,10 +13793,10 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-string-attribute.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-relationship-attribute.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.updateStringColumn" + "replaceWith": "tablesDB.updateRelationshipColumn" }, "auth": { "Project": [] @@ -14067,7 +13821,7 @@ }, { "name": "collectionId", - "description": "Collection ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "description": "Collection ID.", "required": true, "schema": { "type": "string", @@ -14091,23 +13845,17 @@ "schema": { "type": "object", "properties": { - "required": { - "type": "boolean", - "description": "Is attribute required?", - "x-example": false - }, - "default": { + "onDelete": { "type": "string", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "x-example": "", - "x-nullable": true - }, - "size": { - "type": "integer", - "description": "Maximum size of the string attribute.", - "x-example": 1, - "format": "int32", - "x-nullable": true + "description": "Constraints option", + "x-example": "cascade", + "enum": [ + "cascade", + "restrict", + "setNull" + ], + "x-enum-name": "RelationMutate", + "x-enum-keys": [] }, "newKey": { "type": "string", @@ -14115,45 +13863,41 @@ "x-example": null, "x-nullable": true } - }, - "required": [ - "required", - "default" - ] + } } } } } } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/text": { + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/string": { "post": { - "summary": "Create text attribute", - "operationId": "databasesCreateTextAttribute", + "summary": "Create string attribute", + "operationId": "databasesCreateStringAttribute", "tags": [ "databases" ], - "description": "Create a text attribute.\n", + "description": "Create a string attribute.\n", "responses": { "202": { - "description": "AttributeText", + "description": "AttributeString", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/attributeText" + "$ref": "#\/components\/schemas\/attributeString" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "createTextAttribute", + "method": "createStringAttribute", "group": "attributes", - "weight": 318, + "weight": 296, "cookies": false, "type": "", - "demo": "databases\/create-text-attribute.md", + "demo": "databases\/create-string-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -14164,7 +13908,11 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-text-attribute.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-string-attribute.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createStringColumn" + }, "auth": { "Project": [] } @@ -14188,7 +13936,7 @@ }, { "name": "collectionId", - "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "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", @@ -14208,6 +13956,12 @@ "description": "Attribute Key.", "x-example": null }, + "size": { + "type": "integer", + "description": "Attribute size for text attributes, in number of characters.", + "x-example": 1, + "format": "int32" + }, "required": { "type": "boolean", "description": "Is attribute required?", @@ -14232,6 +13986,7 @@ }, "required": [ "key", + "size", "required" ] } @@ -14240,34 +13995,34 @@ } } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/text\/{key}": { + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/string\/{key}": { "patch": { - "summary": "Update text attribute", - "operationId": "databasesUpdateTextAttribute", + "summary": "Update string attribute", + "operationId": "databasesUpdateStringAttribute", "tags": [ "databases" ], - "description": "Update a text attribute. Changing the `default` value will not update already existing documents.\n", + "description": "Update a string attribute. Changing the `default` value will not update already existing documents.\n", "responses": { "200": { - "description": "AttributeText", + "description": "AttributeString", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/attributeText" + "$ref": "#\/components\/schemas\/attributeString" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "updateTextAttribute", + "method": "updateStringAttribute", "group": "attributes", - "weight": 319, + "weight": 297, "cookies": false, "type": "", - "demo": "databases\/update-text-attribute.md", + "demo": "databases\/update-string-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -14278,7 +14033,11 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-text-attribute.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-string-attribute.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateStringColumn" + }, "auth": { "Project": [] } @@ -14302,7 +14061,7 @@ }, { "name": "collectionId", - "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "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", @@ -14337,6 +14096,13 @@ "x-example": "", "x-nullable": true }, + "size": { + "type": "integer", + "description": "Maximum size of the string attribute.", + "x-example": 1, + "format": "int32", + "x-nullable": true + }, "newKey": { "type": "string", "description": "New Attribute Key.", @@ -14354,34 +14120,34 @@ } } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/url": { + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/text": { "post": { - "summary": "Create URL attribute", - "operationId": "databasesCreateUrlAttribute", + "summary": "Create text attribute", + "operationId": "databasesCreateTextAttribute", "tags": [ "databases" ], - "description": "Create a URL attribute.\n", + "description": "Create a text attribute.\n", "responses": { "202": { - "description": "AttributeURL", + "description": "AttributeText", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/attributeUrl" + "$ref": "#\/components\/schemas\/attributeText" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createUrlAttribute", + "method": "createTextAttribute", "group": "attributes", - "weight": 314, + "weight": 302, "cookies": false, "type": "", - "demo": "databases\/create-url-attribute.md", + "demo": "databases\/create-text-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -14392,11 +14158,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-url-attribute.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createUrlColumn" - }, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-text-attribute.md", "auth": { "Project": [] } @@ -14420,7 +14182,7 @@ }, { "name": "collectionId", - "description": "Collection ID.", + "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", @@ -14448,14 +14210,18 @@ "default": { "type": "string", "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "x-example": "https:\/\/example.com", - "format": "url", + "x-example": "", "x-nullable": true }, "array": { "type": "boolean", "description": "Is attribute an array?", "x-example": false + }, + "encrypt": { + "type": "boolean", + "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.", + "x-example": false } }, "required": [ @@ -14468,34 +14234,34 @@ } } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/url\/{key}": { + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/text\/{key}": { "patch": { - "summary": "Update URL attribute", - "operationId": "databasesUpdateUrlAttribute", + "summary": "Update text attribute", + "operationId": "databasesUpdateTextAttribute", "tags": [ "databases" ], - "description": "Update an url attribute. Changing the `default` value will not update already existing documents.\n", + "description": "Update a text attribute. Changing the `default` value will not update already existing documents.\n", "responses": { "200": { - "description": "AttributeURL", + "description": "AttributeText", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/attributeUrl" + "$ref": "#\/components\/schemas\/attributeText" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateUrlAttribute", + "method": "updateTextAttribute", "group": "attributes", - "weight": 315, + "weight": 303, "cookies": false, "type": "", - "demo": "databases\/update-url-attribute.md", + "demo": "databases\/update-text-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -14506,11 +14272,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-url-attribute.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateUrlColumn" - }, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-text-attribute.md", "auth": { "Project": [] } @@ -14534,7 +14296,7 @@ }, { "name": "collectionId", - "description": "Collection ID.", + "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", @@ -14566,8 +14328,7 @@ "default": { "type": "string", "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "x-example": "https:\/\/example.com", - "format": "url", + "x-example": "", "x-nullable": true }, "newKey": { @@ -14587,34 +14348,34 @@ } } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/varchar": { + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/url": { "post": { - "summary": "Create varchar attribute", - "operationId": "databasesCreateVarcharAttribute", + "summary": "Create URL attribute", + "operationId": "databasesCreateUrlAttribute", "tags": [ "databases" ], - "description": "Create a varchar attribute.\n", + "description": "Create a URL attribute.\n", "responses": { "202": { - "description": "AttributeVarchar", + "description": "AttributeURL", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/attributeVarchar" + "$ref": "#\/components\/schemas\/attributeUrl" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "createVarcharAttribute", + "method": "createUrlAttribute", "group": "attributes", - "weight": 316, + "weight": 298, "cookies": false, "type": "", - "demo": "databases\/create-varchar-attribute.md", + "demo": "databases\/create-url-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -14625,7 +14386,11 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-varchar-attribute.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-url-attribute.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createUrlColumn" + }, "auth": { "Project": [] } @@ -14649,7 +14414,7 @@ }, { "name": "collectionId", - "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "description": "Collection ID.", "required": true, "schema": { "type": "string", @@ -14669,12 +14434,6 @@ "description": "Attribute Key.", "x-example": null }, - "size": { - "type": "integer", - "description": "Attribute size for varchar attributes, in number of characters. Maximum size is 16381.", - "x-example": 1, - "format": "int32" - }, "required": { "type": "boolean", "description": "Is attribute required?", @@ -14683,23 +14442,18 @@ "default": { "type": "string", "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "x-example": "", + "x-example": "https:\/\/example.com", + "format": "url", "x-nullable": true }, "array": { "type": "boolean", "description": "Is attribute an array?", "x-example": false - }, - "encrypt": { - "type": "boolean", - "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.", - "x-example": false } }, "required": [ "key", - "size", "required" ] } @@ -14708,34 +14462,34 @@ } } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/varchar\/{key}": { + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/url\/{key}": { "patch": { - "summary": "Update varchar attribute", - "operationId": "databasesUpdateVarcharAttribute", + "summary": "Update URL attribute", + "operationId": "databasesUpdateUrlAttribute", "tags": [ "databases" ], - "description": "Update a varchar attribute. Changing the `default` value will not update already existing documents.\n", + "description": "Update an url attribute. Changing the `default` value will not update already existing documents.\n", "responses": { "200": { - "description": "AttributeVarchar", + "description": "AttributeURL", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/attributeVarchar" + "$ref": "#\/components\/schemas\/attributeUrl" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "updateVarcharAttribute", + "method": "updateUrlAttribute", "group": "attributes", - "weight": 317, + "weight": 299, "cookies": false, "type": "", - "demo": "databases\/update-varchar-attribute.md", + "demo": "databases\/update-url-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -14746,7 +14500,11 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-varchar-attribute.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-url-attribute.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateUrlColumn" + }, "auth": { "Project": [] } @@ -14770,7 +14528,7 @@ }, { "name": "collectionId", - "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "description": "Collection ID.", "required": true, "schema": { "type": "string", @@ -14802,14 +14560,8 @@ "default": { "type": "string", "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "x-example": "", - "x-nullable": true - }, - "size": { - "type": "integer", - "description": "Maximum size of the varchar attribute.", - "x-example": 1, - "format": "int32", + "x-example": "https:\/\/example.com", + "format": "url", "x-nullable": true }, "newKey": { @@ -14829,142 +14581,34 @@ } } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/{key}": { - "get": { - "summary": "Get attribute", - "operationId": "databasesGetAttribute", + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/varchar": { + "post": { + "summary": "Create varchar attribute", + "operationId": "databasesCreateVarcharAttribute", "tags": [ "databases" ], - "description": "Get attribute by ID.", + "description": "Create a varchar attribute.\n", "responses": { - "200": { - "description": "AttributeBoolean, or AttributeInteger, or AttributeFloat, or AttributeEmail, or AttributeEnum, or AttributeURL, or AttributeIP, or AttributeDatetime, or AttributeRelationship, or AttributeString", + "202": { + "description": "AttributeVarchar", "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" - } - ] + "$ref": "#\/components\/schemas\/attributeVarchar" } } } } }, - "deprecated": true, - "x-appwrite": { - "method": "getAttribute", - "group": "attributes", - "weight": 287, - "cookies": false, - "type": "", - "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, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get-attribute.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.getColumn" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", - "required": true, - "schema": { - "type": "string" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete attribute", - "operationId": "databasesDeleteAttribute", - "tags": [ - "databases" - ], - "description": "Deletes an attribute.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "deleteAttribute", + "method": "createVarcharAttribute", "group": "attributes", - "weight": 288, + "weight": 300, "cookies": false, "type": "", - "demo": "databases\/delete-attribute.md", + "demo": "databases\/create-varchar-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -14975,11 +14619,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/delete-attribute.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.deleteColumn" - }, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-varchar-attribute.md", "auth": { "Project": [] } @@ -15003,54 +14643,93 @@ }, { "name": "collectionId", - "description": "Collection ID.", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", "required": true, "schema": { "type": "string", "x-example": "" }, "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", - "required": true, - "schema": { - "type": "string" - }, - "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "x-example": null + }, + "size": { + "type": "integer", + "description": "Attribute size for varchar attributes, in number of characters. Maximum size is 16381.", + "x-example": 1, + "format": "int32" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "x-example": false + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "x-example": "", + "x-nullable": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "x-example": false + }, + "encrypt": { + "type": "boolean", + "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.", + "x-example": false + } + }, + "required": [ + "key", + "size", + "required" + ] + } + } + } + } } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/{key}\/relationship": { + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/varchar\/{key}": { "patch": { - "summary": "Update relationship attribute", - "operationId": "databasesUpdateRelationshipAttribute", + "summary": "Update varchar attribute", + "operationId": "databasesUpdateVarcharAttribute", "tags": [ "databases" ], - "description": "Update relationship attribute. [Learn more about relationship attributes](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-attributes).\n", + "description": "Update a varchar attribute. Changing the `default` value will not update already existing documents.\n", "responses": { "200": { - "description": "AttributeRelationship", + "description": "AttributeVarchar", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/attributeRelationship" + "$ref": "#\/components\/schemas\/attributeVarchar" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateRelationshipAttribute", + "method": "updateVarcharAttribute", "group": "attributes", - "weight": 311, + "weight": 301, "cookies": false, "type": "", - "demo": "databases\/update-relationship-attribute.md", + "demo": "databases\/update-varchar-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -15061,11 +14740,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-relationship-attribute.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateRelationshipColumn" - }, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-varchar-attribute.md", "auth": { "Project": [] } @@ -15089,7 +14764,7 @@ }, { "name": "collectionId", - "description": "Collection ID.", + "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", @@ -15113,17 +14788,22 @@ "schema": { "type": "object", "properties": { - "onDelete": { + "required": { + "type": "boolean", + "description": "Is attribute required?", + "x-example": false + }, + "default": { "type": "string", - "description": "Constraints option", - "x-example": "cascade", - "enum": [ - "cascade", - "restrict", - "setNull" - ], - "x-enum-name": "RelationMutate", - "x-enum-keys": [], + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "x-example": "", + "x-nullable": true + }, + "size": { + "type": "integer", + "description": "Maximum size of the varchar attribute.", + "x-example": 1, + "format": "int32", "x-nullable": true }, "newKey": { @@ -15132,13 +14812,211 @@ "x-example": null, "x-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" + } + ] + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "method": "getAttribute", + "group": "attributes", + "weight": 271, + "cookies": false, + "type": "", + "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get-attribute.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.getColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete attribute", + "operationId": "databasesDeleteAttribute", + "tags": [ + "databases" + ], + "description": "Deletes an attribute.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": true, + "x-appwrite": { + "method": "deleteAttribute", + "group": "attributes", + "weight": 272, + "cookies": false, + "type": "", + "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/delete-attribute.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.deleteColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string" + }, + "in": "path" + } + ] + } + }, "\/databases\/{databaseId}\/collections\/{collectionId}\/documents": { "get": { "summary": "List documents", @@ -15163,7 +15041,7 @@ "x-appwrite": { "method": "listDocuments", "group": "documents", - "weight": 283, + "weight": 267, "cookies": false, "type": "", "demo": "databases\/list-documents.md", @@ -15249,6 +15127,18 @@ "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", + "x-example": 0, + "default": 0 + }, + "in": "query" } ] }, @@ -15275,7 +15165,7 @@ "x-appwrite": { "method": "createDocument", "group": "documents", - "weight": 275, + "weight": 259, "cookies": false, "type": "", "demo": "databases\/create-document.md", @@ -15343,6 +15233,7 @@ "databaseId", "collectionId", "documents", + "transactionId", "transactionId" ], "required": [ @@ -15466,7 +15357,7 @@ "x-appwrite": { "method": "upsertDocuments", "group": "documents", - "weight": 280, + "weight": 264, "cookies": false, "type": "", "demo": "databases\/upsert-documents.md", @@ -15476,6 +15367,8 @@ "scope": "documents.write", "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, @@ -15526,7 +15419,8 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ @@ -15603,7 +15497,7 @@ "x-appwrite": { "method": "updateDocuments", "group": "documents", - "weight": 278, + "weight": 262, "cookies": false, "type": "", "demo": "databases\/update-documents.md", @@ -15708,7 +15602,7 @@ "x-appwrite": { "method": "deleteDocuments", "group": "documents", - "weight": 282, + "weight": 266, "cookies": false, "type": "", "demo": "databases\/delete-documents.md", @@ -15810,7 +15704,7 @@ "x-appwrite": { "method": "getDocument", "group": "documents", - "weight": 276, + "weight": 260, "cookies": false, "type": "", "demo": "databases\/get-document.md", @@ -15921,7 +15815,7 @@ "x-appwrite": { "method": "upsertDocument", "group": "documents", - "weight": 279, + "weight": 263, "cookies": false, "type": "", "demo": "databases\/upsert-document.md", @@ -16076,7 +15970,7 @@ "x-appwrite": { "method": "updateDocument", "group": "documents", - "weight": 277, + "weight": 261, "cookies": false, "type": "", "demo": "databases\/update-document.md", @@ -16188,7 +16082,7 @@ "x-appwrite": { "method": "deleteDocument", "group": "documents", - "weight": 281, + "weight": 265, "cookies": false, "type": "", "demo": "databases\/delete-document.md", @@ -16295,7 +16189,7 @@ "x-appwrite": { "method": "listDocumentLogs", "group": "logs", - "weight": 284, + "weight": 268, "cookies": false, "type": "", "demo": "databases\/list-document-logs.md", @@ -16393,7 +16287,7 @@ "x-appwrite": { "method": "decrementDocumentAttribute", "group": "documents", - "weight": 286, + "weight": 270, "cookies": false, "type": "", "demo": "databases\/decrement-document-attribute.md", @@ -16522,7 +16416,7 @@ "x-appwrite": { "method": "incrementDocumentAttribute", "group": "documents", - "weight": 285, + "weight": 269, "cookies": false, "type": "", "demo": "databases\/increment-document-attribute.md", @@ -16651,7 +16545,7 @@ "x-appwrite": { "method": "listIndexes", "group": "indexes", - "weight": 327, + "weight": 311, "cookies": false, "type": "", "demo": "databases\/list-indexes.md", @@ -16750,7 +16644,7 @@ "x-appwrite": { "method": "createIndex", "group": "indexes", - "weight": 324, + "weight": 308, "cookies": false, "type": "", "demo": "databases\/create-index.md", @@ -16891,7 +16785,7 @@ "x-appwrite": { "method": "getIndex", "group": "indexes", - "weight": 325, + "weight": 309, "cookies": false, "type": "", "demo": "databases\/get-index.md", @@ -16968,7 +16862,7 @@ "x-appwrite": { "method": "deleteIndex", "group": "indexes", - "weight": 326, + "weight": 310, "cookies": false, "type": "", "demo": "databases\/delete-index.md", @@ -17054,7 +16948,7 @@ "x-appwrite": { "method": "listCollectionLogs", "group": "collections", - "weight": 273, + "weight": 257, "cookies": false, "type": "", "demo": "databases\/list-collection-logs.md", @@ -17142,7 +17036,7 @@ "x-appwrite": { "method": "getCollectionUsage", "group": null, - "weight": 274, + "weight": 258, "cookies": false, "type": "", "demo": "databases\/get-collection-usage.md", @@ -17239,7 +17133,7 @@ "x-appwrite": { "method": "listLogs", "group": "logs", - "weight": 265, + "weight": 249, "cookies": false, "type": "", "demo": "databases\/list-logs.md", @@ -17347,7 +17241,7 @@ "x-appwrite": { "method": "getUsage", "group": null, - "weight": 266, + "weight": 250, "cookies": false, "type": "", "demo": "databases\/get-usage.md", @@ -17440,21 +17334,21 @@ ] } }, - "\/domains": { + "\/documentsdb": { "get": { - "summary": "List domains", - "operationId": "domainsList", + "summary": "List databases", + "operationId": "documentsDBList", "tags": [ - "domains" + "documentsDB" ], - "description": " List all domains registered for this project. This endpoint supports pagination.", + "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": "Domains list", + "description": "Databases List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/domainsList" + "$ref": "#\/components\/schemas\/databaseList" } } } @@ -17463,33 +17357,36 @@ "deprecated": false, "x-appwrite": { "method": "list", - "group": null, - "weight": 632, + "group": "documentsdb", + "weight": 395, "cookies": false, "type": "", - "demo": "domains\/list.md", + "demo": "documentsdb\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.read", + "scope": "databases.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/list.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "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 domain name, teamInternalId, expiration, etc.", + "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", @@ -17510,23 +17407,34 @@ "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", + "x-example": false, + "default": true + }, + "in": "query" } ] }, "post": { - "summary": "Create a new domain.", - "operationId": "domainsCreate", + "summary": "Create database", + "operationId": "documentsDBCreate", "tags": [ - "domains" + "documentsDB" ], - "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.", + "description": "Create a new Database.\n", "responses": { "201": { - "description": "Domain", + "description": "Database", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/domain" + "$ref": "#\/components\/schemas\/database" } } } @@ -17535,27 +17443,30 @@ "deprecated": false, "x-appwrite": { "method": "create", - "group": null, - "weight": 627, + "group": "documentsdb", + "weight": 391, "cookies": false, "type": "", - "demo": "domains\/create.md", + "demo": "documentsdb\/create.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/create.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "requestBody": { @@ -17564,20 +17475,25 @@ "schema": { "type": "object", "properties": { - "teamId": { + "databaseId": { "type": "string", - "description": "Team unique ID.", - "x-example": "" + "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.", + "x-example": "" }, - "domain": { + "name": { "type": "string", - "description": "Domain name (e.g. \"example.com\").", - "x-example": null + "description": "Database name. Max length: 128 chars.", + "x-example": "" + }, + "enabled": { + "type": "boolean", + "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.", + "x-example": false } }, "required": [ - "teamId", - "domain" + "databaseId", + "name" ] } } @@ -17585,21 +17501,21 @@ } } }, - "\/domains\/price": { + "\/documentsdb\/transactions": { "get": { - "summary": "Get domain price", - "operationId": "domainsGetPrice", + "summary": "List transactions", + "operationId": "documentsDBListTransactions", "tags": [ - "domains" + "documentsDB" ], - "description": " Get the registration price for a domain name.", + "description": false, "responses": { "200": { - "description": "DomainPrice", + "description": "Transaction List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/domainPrice" + "$ref": "#\/components\/schemas\/transactionList" } } } @@ -17607,18 +17523,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "getPrice", - "group": null, - "weight": 630, + "method": "listTransactions", + "group": "transactions", + "weight": 425, "cookies": false, "type": "", - "demo": "domains\/get-price.md", - "rate-limit": 50, + "demo": "documentsdb\/list-transactions.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.read", + "scope": "documents.read", "platforms": [ - "console" + "console", + "server", + "client", + "server" ], "packaging": false, "public": true, @@ -17628,67 +17547,41 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "domain", - "description": "Domain name to get price for.", - "required": true, - "schema": { - "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.", + "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": "string", - "x-example": "new", - "enum": [ - "new", - "transfer", - "renewal", - "trade" - ], - "x-enum-name": null, - "x-enum-keys": [], - "default": "new" + "type": "array", + "items": { + "type": "string" + }, + "default": [] }, "in": "query" } ] - } - }, - "\/domains\/purchases": { + }, "post": { - "summary": "Create a domain purchase", - "operationId": "domainsCreatePurchase", + "summary": "Create transaction", + "operationId": "documentsDBCreateTransaction", "tags": [ - "domains" + "documentsDB" ], - "description": " Create a domain purchase with registrant information.", + "description": false, "responses": { "201": { - "description": "Domain", + "description": "Transaction", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/domain" + "$ref": "#\/components\/schemas\/transaction" } } } @@ -17696,18 +17589,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "createPurchase", - "group": null, - "weight": 672, + "method": "createTransaction", + "group": "transactions", + "weight": 421, "cookies": false, "type": "", - "demo": "domains\/create-purchase.md", + "demo": "documentsdb\/create-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "documents.write", "platforms": [ - "console" + "console", + "server", + "client", + "server" ], "packaging": false, "public": true, @@ -17717,7 +17613,9 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [], + "JWT": [] } ], "requestBody": { @@ -17726,96 +17624,34 @@ "schema": { "type": "object", "properties": { - "domain": { - "type": "string", - "description": "Fully qualified domain name to purchase (for example, example.com).", - "x-example": null - }, - "teamId": { - "type": "string", - "description": "Team ID that will own the domain.", - "x-example": "" - }, - "firstName": { - "type": "string", - "description": "Registrant first name used for domain registration.", - "x-example": "" - }, - "lastName": { - "type": "string", - "description": "Registrant last name used for domain registration.", - "x-example": "" - }, - "email": { - "type": "string", - "description": "Registrant email address for registration and notices.", - "x-example": "email@example.com", - "format": "email" - }, - "phone": { - "type": "string", - "description": "Registrant phone number in E.164 format (for example, +15555551234).", - "x-example": "+12065550100", - "format": "phone" - }, - "billingAddressId": { - "type": "string", - "description": "Billing address ID used for registration contact details.", - "x-example": "" - }, - "addressLine3": { - "type": "string", - "description": "Additional address line for the registrant (line 3).", - "x-example": "" - }, - "companyName": { - "type": "string", - "description": "Company or organization name for the registrant.", - "x-example": "" - }, - "periodYears": { + "ttl": { "type": "integer", - "description": "Registration term in years (1-10).", - "x-example": 1, + "description": "Seconds before the transaction expires.", + "x-example": 60, "format": "int32" - }, - "paymentMethodId": { - "type": "string", - "description": "Payment method ID to authorize and capture the purchase.", - "x-example": "" } - }, - "required": [ - "domain", - "teamId", - "firstName", - "lastName", - "email", - "phone", - "billingAddressId", - "paymentMethodId" - ] + } } } } } } }, - "\/domains\/suggestions": { + "\/documentsdb\/transactions\/{transactionId}": { "get": { - "summary": "List domain suggestions", - "operationId": "domainsListSuggestions", + "summary": "Get transaction", + "operationId": "documentsDBGetTransaction", "tags": [ - "domains" + "documentsDB" ], - "description": " List domain suggestions.", + "description": false, "responses": { "200": { - "description": "Domain suggestions list", + "description": "Transaction", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/domainSuggestionsList" + "$ref": "#\/components\/schemas\/transaction" } } } @@ -17823,18 +17659,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "listSuggestions", - "group": null, - "weight": 671, + "method": "getTransaction", + "group": "transactions", + "weight": 422, "cookies": false, "type": "", - "demo": "domains\/list-suggestions.md", - "rate-limit": 50, + "demo": "documentsdb\/get-transaction.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.read", + "scope": "documents.read", "platforms": [ - "console" + "console", + "server", + "client", + "server" ], "packaging": false, "public": true, @@ -17844,97 +17683,38 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "query", - "description": "Query to find available domains and suggestions. Max length: 256 chars.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "schema": { "type": "string", - "x-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", - "x-example": "premium", - "enum": [ - "premium", - "suggestion" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "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" + "x-example": "" }, - "in": "query" + "in": "path" } ] - } - }, - "\/domains\/{domainId}": { - "get": { - "summary": "Get a single domain by its unique ID.", - "operationId": "domainsGet", + }, + "patch": { + "summary": "Update transaction", + "operationId": "documentsDBUpdateTransaction", "tags": [ - "domains" + "documentsDB" ], - "description": " Get a domain by its unique ID.", + "description": false, "responses": { "200": { - "description": "Domain", + "description": "Transaction", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/domain" + "$ref": "#\/components\/schemas\/transaction" } } } @@ -17942,18 +17722,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": null, - "weight": 629, + "method": "updateTransaction", + "group": "transactions", + "weight": 423, "cookies": false, "type": "", - "demo": "domains\/get.md", + "demo": "documentsdb\/update-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.read", + "scope": "documents.write", "platforms": [ - "console" + "console", + "server", + "client", + "server" ], "packaging": false, "public": true, @@ -17963,29 +17746,52 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "commit": { + "type": "boolean", + "description": "Commit transaction?", + "x-example": false + }, + "rollback": { + "type": "boolean", + "description": "Rollback transaction?", + "x-example": false + } + } + } + } + } + } }, "delete": { - "summary": "Delete a domain by its unique ID.", - "operationId": "domainsDelete", + "summary": "Delete transaction", + "operationId": "documentsDBDeleteTransaction", "tags": [ - "domains" + "documentsDB" ], - "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.", + "description": false, "responses": { "204": { "description": "No content" @@ -17993,18 +17799,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": null, - "weight": 628, + "method": "deleteTransaction", + "group": "transactions", + "weight": 424, "cookies": false, "type": "", - "demo": "domains\/delete.md", + "demo": "documentsdb\/delete-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "documents.write", "platforms": [ - "console" + "console", + "server", + "client", + "server" ], "packaging": false, "public": true, @@ -18014,38 +17823,40 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" } ] } }, - "\/domains\/{domainId}\/nameservers": { - "patch": { - "summary": "Verify which NS records are used and update the domain accordingly.", - "operationId": "domainsUpdateNameservers", + "\/documentsdb\/usage": { + "get": { + "summary": "Get DocumentsDB usage stats", + "operationId": "documentsDBListUsage", "tags": [ - "domains" + "documentsDB" ], - "description": " Verify which NS records are used and update the domain accordingly. This will check the domain's\n nameservers and update the domain's status based on whether the nameservers match the expected\n Appwrite nameservers.", + "description": "List usage metrics and statistics for all databases in the project. You can view the total number of databases, collections, documents, and storage usage. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.", "responses": { "200": { - "description": "Domain", + "description": "UsageDatabases", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/domain" + "$ref": "#\/components\/schemas\/usageDatabases" } } } @@ -18053,21 +17864,45 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateNameservers", + "method": "listUsage", "group": null, - "weight": 633, + "weight": 397, "cookies": false, "type": "", - "demo": "domains\/update-nameservers.md", + "demo": "documentsdb\/list-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "collections.read", "platforms": [ "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/list-usage.md", + "methods": [ + { + "name": "listUsage", + "namespace": "documentsDB", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "range" + ], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/usageDatabases" + } + ], + "description": "List usage metrics and statistics for all databases in the project. You can view the total number of databases, collections, documents, and storage usage. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.", + "demo": "documentsdb\/list-usage.md", + "public": true + } + ], "auth": { "Project": [] } @@ -18079,33 +17914,45 @@ ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, + "name": "range", + "description": "Date range.", + "required": false, "schema": { "type": "string", - "x-example": "" - }, - "in": "path" + "x-example": "24h", + "enum": [ + "24h", + "30d", + "90d" + ], + "x-enum-name": "UsageRange", + "x-enum-keys": [ + "Twenty Four Hours", + "Thirty Days", + "Ninety Days" + ], + "default": "30d" + }, + "in": "query" } ] } }, - "\/domains\/{domainId}\/presets\/google-workspace": { + "\/documentsdb\/{databaseId}": { "get": { - "summary": "Get Google Workspace preset (Records)", - "operationId": "domainsGetPresetGoogleWorkspace", + "summary": "Get database", + "operationId": "documentsDBGet", "tags": [ - "domains" + "documentsDB" ], - "description": " List Google Workspace DNS records.", + "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", "responses": { - "201": { - "description": "DNS records list", + "200": { + "description": "Database", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dnsRecordsList" + "$ref": "#\/components\/schemas\/database" } } } @@ -18113,57 +17960,60 @@ }, "deprecated": false, "x-appwrite": { - "method": "getPresetGoogleWorkspace", - "group": null, - "weight": 660, + "method": "get", + "group": "documentsdb", + "weight": 392, "cookies": false, "type": "", - "demo": "domains\/get-preset-google-workspace.md", + "demo": "documentsdb\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "databases.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/get.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" } ] }, - "post": { - "summary": "Create Google Workspace preset (Records)", - "operationId": "domainsCreatePresetGoogleWorkspace", + "put": { + "summary": "Update database", + "operationId": "documentsDBUpdate", "tags": [ - "domains" + "documentsDB" ], - "description": " Add Google Workspace DNS records to the domain. This will create the required MX records \n for Google Workspace email hosting.", + "description": "Update a database by its unique ID.", "responses": { - "201": { - "description": "DNS records list", + "200": { + "description": "Database", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dnsRecordsList" + "$ref": "#\/components\/schemas\/database" } } } @@ -18171,117 +18021,140 @@ }, "deprecated": false, "x-appwrite": { - "method": "createPresetGoogleWorkspace", - "group": null, - "weight": 659, + "method": "update", + "group": "documentsdb", + "weight": 393, "cookies": false, "type": "", - "demo": "domains\/create-preset-google-workspace.md", + "demo": "documentsdb\/update.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/update.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-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" - } + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Database name. Max length: 128 chars.", + "x-example": "" + }, + "enabled": { + "type": "boolean", + "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.", + "x-example": false + } + }, + "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": { - "method": "getPresetICloud", - "group": null, - "weight": 670, + "method": "delete", + "group": "documentsdb", + "weight": 394, "cookies": false, "type": "", - "demo": "domains\/get-preset-i-cloud.md", + "demo": "documentsdb\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/delete.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" } ] - }, - "post": { - "summary": "Create iCloud preset (Records)", - "operationId": "domainsCreatePresetICloud", + } + }, + "\/documentsdb\/{databaseId}\/collections": { + "get": { + "summary": "List collections", + "operationId": "documentsDBListCollections", "tags": [ - "domains" + "documentsDB" ], - "description": " Add iCloud DNS records to the domain. This will create the required MX and SPF records\n for using iCloud email services with your domain.", + "description": "Get a list of all collections that belong to the provided databaseId. You can use the search parameter to filter your results.", "responses": { - "201": { - "description": "DNS records list", + "200": { + "description": "Collections List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dnsRecordsList" + "$ref": "#\/components\/schemas\/collectionList" } } } @@ -18289,59 +18162,95 @@ }, "deprecated": false, "x-appwrite": { - "method": "createPresetICloud", - "group": null, - "weight": 669, + "method": "listCollections", + "group": "collections", + "weight": 402, "cookies": false, "type": "", - "demo": "domains\/create-preset-i-cloud.md", + "demo": "documentsdb\/list-collections.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "collections.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/list-collections.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: 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", + "x-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", + "x-example": false, + "default": true + }, + "in": "query" } ] - } - }, - "\/domains\/{domainId}\/presets\/mailgun": { - "get": { - "summary": "Get Mailgun preset (Records)", - "operationId": "domainsGetPresetMailgun", + }, + "post": { + "summary": "Create collection", + "operationId": "documentsDBCreateCollection", "tags": [ - "domains" + "documentsDB" ], - "description": " List Mailgun DNS records.", + "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": "DNS records list", + "description": "Collection", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dnsRecordsList" + "$ref": "#\/components\/schemas\/collection" } } } @@ -18349,57 +18258,122 @@ }, "deprecated": false, "x-appwrite": { - "method": "getPresetMailgun", - "group": null, - "weight": 662, + "method": "createCollection", + "group": "collections", + "weight": 398, "cookies": false, "type": "", - "demo": "domains\/get-preset-mailgun.md", + "demo": "documentsdb\/create-collection.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "collections.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/create-collection.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" } - ] - }, - "post": { - "summary": "Create Mailgun preset (Records)", - "operationId": "domainsCreatePresetMailgun", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "collectionId": { + "type": "string", + "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.", + "x-example": "" + }, + "name": { + "type": "string", + "description": "Collection name. Max length: 128 chars.", + "x-example": "" + }, + "permissions": { + "type": "array", + "description": "An array of permissions strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + }, + "x-nullable": true + }, + "documentSecurity": { + "type": "boolean", + "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).", + "x-example": false + }, + "enabled": { + "type": "boolean", + "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.", + "x-example": false + }, + "attributes": { + "type": "array", + "description": "Array of attribute definitions to create. Each attribute should contain: key (string), type (string: string, integer, float, boolean, datetime, relationship), size (integer, required for string type), required (boolean, optional), default (mixed, optional), array (boolean, optional), and type-specific options.", + "x-example": null, + "items": { + "type": "object" + } + }, + "indexes": { + "type": "array", + "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).", + "x-example": null, + "items": { + "type": "object" + } + } + }, + "required": [ + "collectionId", + "name" + ] + } + } + } + } + } + }, + "\/documentsdb\/{databaseId}\/collections\/{collectionId}": { + "get": { + "summary": "Get collection", + "operationId": "documentsDBGetCollection", "tags": [ - "domains" + "documentsDB" ], - "description": " Add Mailgun DNS records to the domain. This endpoint will create the required DNS records \n for Mailgun in the specified domain.", + "description": "Get a collection by its unique ID. This endpoint response returns a JSON object with the collection metadata.", "responses": { - "201": { - "description": "DNS records list", + "200": { + "description": "Collection", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dnsRecordsList" + "$ref": "#\/components\/schemas\/collection" } } } @@ -18407,59 +18381,70 @@ }, "deprecated": false, "x-appwrite": { - "method": "createPresetMailgun", - "group": null, - "weight": 661, + "method": "getCollection", + "group": "collections", + "weight": 399, "cookies": false, "type": "", - "demo": "domains\/create-preset-mailgun.md", + "demo": "documentsdb\/get-collection.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "collections.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/get-collection.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" }, "in": "path" } ] - } - }, - "\/domains\/{domainId}\/presets\/outlook": { - "get": { - "summary": "Get Outlook preset (Records)", - "operationId": "domainsGetPresetOutlook", + }, + "put": { + "summary": "Update collection", + "operationId": "documentsDBUpdateCollection", "tags": [ - "domains" + "documentsDB" ], - "description": " List Outlook DNS records.", + "description": "Update a collection by its unique ID.", "responses": { - "201": { - "description": "DNS records list", + "200": { + "description": "Collection", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dnsRecordsList" + "$ref": "#\/components\/schemas\/collection" } } } @@ -18467,117 +18452,173 @@ }, "deprecated": false, "x-appwrite": { - "method": "getPresetOutlook", - "group": null, - "weight": 668, + "method": "updateCollection", + "group": "collections", + "weight": 400, "cookies": false, "type": "", - "demo": "domains\/get-preset-outlook.md", + "demo": "documentsdb\/update-collection.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "collections.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/update-collection.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Collection name. Max length: 128 chars.", + "x-example": "" + }, + "permissions": { + "type": "array", + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } + }, + "documentSecurity": { + "type": "boolean", + "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).", + "x-example": false + }, + "enabled": { + "type": "boolean", + "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.", + "x-example": false + } + }, + "required": [ + "name" + ] + } + } + } + } }, - "post": { - "summary": "Create Outlook preset (Records)", - "operationId": "domainsCreatePresetOutlook", + "delete": { + "summary": "Delete collection", + "operationId": "documentsDBDeleteCollection", "tags": [ - "domains" + "documentsDB" ], - "description": " Add Outlook DNS records to the domain. This will create the required MX records\n for setting up Outlook email hosting for your domain.", + "description": "Delete a collection by its unique ID. Only users with write permissions have access to delete this resource.", "responses": { - "201": { - "description": "DNS records list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecordsList" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "createPresetOutlook", - "group": null, - "weight": 667, + "method": "deleteCollection", + "group": "collections", + "weight": 401, "cookies": false, "type": "", - "demo": "domains\/create-preset-outlook.md", + "demo": "documentsdb\/delete-collection.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "collections.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/delete-collection.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" }, "in": "path" } ] } }, - "\/domains\/{domainId}\/presets\/proton-mail": { + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents": { "get": { - "summary": "Get ProtonMail preset (Records)", - "operationId": "domainsGetPresetProtonMail", + "summary": "List documents", + "operationId": "documentsDBListDocuments", "tags": [ - "domains" + "documentsDB" ], - "description": " List ProtonMail DNS records.", + "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": { - "201": { - "description": "DNS records list", + "200": { + "description": "Documents List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dnsRecordsList" + "$ref": "#\/components\/schemas\/documentList" } } } @@ -18585,57 +18626,119 @@ }, "deprecated": false, "x-appwrite": { - "method": "getPresetProtonMail", - "group": null, - "weight": 666, + "method": "listDocuments", + "group": "documents", + "weight": 417, "cookies": false, "type": "", - "demo": "domains\/get-preset-proton-mail.md", + "demo": "documentsdb\/list-documents.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "documents.read", "platforms": [ - "console" + "console", + "client", + "server", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/list-documents.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "x-example": "" }, "in": "path" + }, + { + "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", + "x-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", + "x-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", + "x-example": 0, + "default": 0 + }, + "in": "query" } ] }, "post": { - "summary": "Create ProtonMail preset (Records)", - "operationId": "domainsCreatePresetProtonMail", + "summary": "Create document", + "operationId": "documentsDBCreateDocument", "tags": [ - "domains" + "documentsDB" ], - "description": " Add ProtonMail DNS records to the domain. This will create the required MX records\n for using ProtonMail with your custom domain.", + "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": "DNS records list", + "description": "Document", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dnsRecordsList" + "$ref": "#\/components\/schemas\/document" } } } @@ -18643,59 +18746,174 @@ }, "deprecated": false, "x-appwrite": { - "method": "createPresetProtonMail", - "group": null, - "weight": 665, + "method": "createDocument", + "group": "documents", + "weight": 409, "cookies": false, "type": "", - "demo": "domains\/create-preset-proton-mail.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "demo": "documentsdb\/create-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", "platforms": [ - "console" + "console", + "client", + "server", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/create-document.md", + "methods": [ + { + "name": "createDocument", + "namespace": "documentsDB", + "desc": "Create document", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions" + ], + "required": [ + "databaseId", + "collectionId", + "documentId", + "data" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/document" + } + ], + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "demo": "documentsdb\/create-document.md", + "public": true + }, + { + "name": "createDocuments", + "namespace": "documentsDB", + "desc": "Create documents", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documents" + ], + "required": [ + "databaseId", + "collectionId", + "documents" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/documentList" + } + ], + "description": "Create new Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "demo": "documentsdb\/create-documents.md", + "public": true + } + ], "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection). Make sure to define attributes before creating documents.", + "required": true, + "schema": { + "type": "string", + "x-example": "" }, "in": "path" } - ] - } - }, - "\/domains\/{domainId}\/presets\/zoho": { - "get": { - "summary": "Get Zoho preset (Records)", - "operationId": "domainsGetPresetZoho", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "documentId": { + "type": "string", + "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "" + }, + "data": { + "type": "object", + "description": "Document data as JSON object.", + "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":30,\"isAdmin\":false}" + }, + "permissions": { + "type": "array", + "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).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } + }, + "documents": { + "type": "array", + "description": "Array of documents data as JSON objects.", + "x-example": null, + "items": { + "type": "object" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "" + } + } + } + } + } + } + }, + "put": { + "summary": "Upsert documents", + "operationId": "documentsDBUpsertDocuments", "tags": [ - "domains" + "documentsDB" ], - "description": " List Zoho DNS records.", + "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": "DNS records list", + "description": "Documents List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dnsRecordsList" + "$ref": "#\/components\/schemas\/documentList" } } } @@ -18703,57 +18921,127 @@ }, "deprecated": false, "x-appwrite": { - "method": "getPresetZoho", - "group": null, - "weight": 664, + "method": "upsertDocuments", + "group": "documents", + "weight": 414, "cookies": false, "type": "", - "demo": "domains\/get-preset-zoho.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "demo": "documentsdb\/upsert-documents.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/upsert-documents.md", + "methods": [ + { + "name": "upsertDocuments", + "namespace": "documentsDB", + "desc": "", + "auth": { + "Project": [] + }, + "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": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "documents": { + "type": "array", + "description": "Array of document data as JSON objects. May contain partial documents.", + "x-example": null, + "items": { + "type": "object" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "" + } + }, + "required": [ + "documents" + ] + } + } + } + } }, - "post": { - "summary": "Create Zoho Mail preset (Records)", - "operationId": "domainsCreatePresetZoho", + "patch": { + "summary": "Update documents", + "operationId": "documentsDBUpdateDocuments", "tags": [ - "domains" + "documentsDB" ], - "description": " Add Zoho Mail DNS records to the domain. This will create the required MX records\n for setting up Zoho Mail on your domain.", + "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": { - "201": { - "description": "DNS records list", + "200": { + "description": "Documents List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dnsRecordsList" + "$ref": "#\/components\/schemas\/documentList" } } } @@ -18761,59 +19049,99 @@ }, "deprecated": false, "x-appwrite": { - "method": "createPresetZoho", - "group": null, - "weight": 663, + "method": "updateDocuments", + "group": "documents", + "weight": 412, "cookies": false, "type": "", - "demo": "domains\/create-preset-zoho.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "demo": "documentsdb\/update-documents.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/update-documents.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" }, "in": "path" } - ] - } - }, - "\/domains\/{domainId}\/records": { - "get": { - "summary": "List DNS records for a given domain.", - "operationId": "domainsListRecords", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "object", + "description": "Document data as JSON object. Include only attribute and value pairs to be updated.", + "x-example": "{}" + }, + "queries": { + "type": "array", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "x-example": null, + "items": { + "type": "string" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "" + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete documents", + "operationId": "documentsDBDeleteDocuments", "tags": [ - "domains" + "documentsDB" ], - "description": " List DNS records for a given domain. You can use this endpoint to list all the DNS records\n associated with your domain.", + "description": "Bulk delete documents using queries, if no queries are passed then all documents are deleted.", "responses": { "200": { - "description": "DNS records list", + "description": "Documents List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dnsRecordsList" + "$ref": "#\/components\/schemas\/documentList" } } } @@ -18821,72 +19149,96 @@ }, "deprecated": false, "x-appwrite": { - "method": "listRecords", - "group": null, - "weight": 658, + "method": "deleteDocuments", + "group": "documents", + "weight": 416, "cookies": false, "type": "", - "demo": "domains\/list-records.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.read", + "demo": "documentsdb\/delete-documents.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/delete-documents.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "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, + "name": "databaseId", + "description": "Database ID.", + "required": true, "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] + "type": "string", + "x-example": "" }, - "in": "query" + "in": "path" }, { - "name": "domainId", - "description": "Domain unique ID.", + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "queries": { + "type": "array", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "x-example": null, + "items": { + "type": "string" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "" + } + } + } + } + } + } } }, - "\/domains\/{domainId}\/records\/a": { - "post": { - "summary": "Create a new A record for the given domain.", - "operationId": "domainsCreateRecordA", + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { + "get": { + "summary": "Get document", + "operationId": "documentsDBGetDocument", "tags": [ - "domains" + "documentsDB" ], - "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.", + "description": "Get a document by its unique ID. This endpoint response returns a JSON object with the document data.", "responses": { - "201": { - "description": "DNSRecord", + "200": { + "description": "Document", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" + "$ref": "#\/components\/schemas\/document" } } } @@ -18894,96 +19246,106 @@ }, "deprecated": false, "x-appwrite": { - "method": "createRecordA", - "group": null, - "weight": 636, + "method": "getDocument", + "group": "documents", + "weight": 410, "cookies": false, "type": "", - "demo": "domains\/create-record-a.md", + "demo": "documentsdb\/get-document.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "documents.read", "platforms": [ - "console" + "console", + "client", + "server", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/get-document.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "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", + "x-example": "" + }, + "in": "query" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Record name (subdomain).", - "x-example": "" - }, - "value": { - "type": "string", - "description": "IPv4 address for this A record.", - "x-example": null - }, - "ttl": { - "type": "integer", - "description": "Time to live, in seconds. Must be greater than 0.", - "x-example": 1, - "format": "int32" - }, - "comment": { - "type": "string", - "description": "A comment explaining what this record is for.", - "x-example": "" - } - }, - "required": [ - "name", - "value", - "ttl" - ] - } - } - } - } - } - }, - "\/domains\/{domainId}\/records\/a\/{recordId}": { + ] + }, "put": { - "summary": "Update an existing A record for the given domain.", - "operationId": "domainsUpdateRecordA", + "summary": "Upsert a document", + "operationId": "documentsDBUpsertDocument", "tags": [ - "domains" + "documentsDB" ], - "description": " Update an existing A record for the given domain. This endpoint allows you to modify \n the properties of an A record including its name (subdomain), IPv4 address, TTL, \n and optional comment.", + "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": { - "200": { - "description": "DNSRecord", + "201": { + "description": "Document", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" + "$ref": "#\/components\/schemas\/document" } } } @@ -18991,48 +19353,96 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateRecordA", - "group": null, - "weight": 637, + "method": "upsertDocument", + "group": "documents", + "weight": 413, "cookies": false, "type": "", - "demo": "domains\/update-record-a.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "demo": "documentsdb\/upsert-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", "platforms": [ - "console" + "console", + "client", + "server", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/upsert-document.md", + "methods": [ + { + "name": "upsertDocument", + "namespace": "documentsDB", + "desc": "", + "auth": { + "Project": [] + }, + "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": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" }, { - "name": "recordId", - "description": "DNS record unique ID.", + "name": "collectionId", + "description": "Collection ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" }, "in": "path" } @@ -19043,54 +19453,44 @@ "schema": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "Record name (subdomain).", - "x-example": "" - }, - "value": { - "type": "string", - "description": "IPv4 address for this A record.", - "x-example": null + "data": { + "type": "object", + "description": "Document data as JSON object. Include all required fields of the document to be created or updated.", + "x-example": "{}" }, - "ttl": { - "type": "integer", - "description": "Time to live, in seconds. Must be greater than 0.", - "x-example": 1, - "format": "int32" + "permissions": { + "type": "array", + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } }, - "comment": { + "transactionId": { "type": "string", - "description": "A comment explaining what this record is for.", - "x-example": "" + "description": "Transaction ID for staging the operation.", + "x-example": "" } - }, - "required": [ - "name", - "value", - "ttl" - ] + } } } } } - } - }, - "\/domains\/{domainId}\/records\/aaaa": { - "post": { - "summary": "Create a new AAAA record for the given domain.", - "operationId": "domainsCreateRecordAAAA", + }, + "patch": { + "summary": "Update document", + "operationId": "documentsDBUpdateDocument", "tags": [ - "domains" + "documentsDB" ], - "description": " Create a new AAAA record for the given domain. This endpoint allows you to add a new IPv6 DNS record \n to your domain. The record will be used to point a hostname to an IPv6 address.", + "description": "Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.", "responses": { - "201": { - "description": "DNSRecord", + "200": { + "description": "Document", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" + "$ref": "#\/components\/schemas\/document" } } } @@ -19098,38 +19498,64 @@ }, "deprecated": false, "x-appwrite": { - "method": "createRecordAAAA", - "group": null, - "weight": 638, + "method": "updateDocument", + "group": "documents", + "weight": 411, "cookies": false, "type": "", - "demo": "domains\/create-record-aaaa.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "demo": "documentsdb\/update-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", "platforms": [ - "console" + "console", + "client", + "server", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/update-document.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" }, "in": "path" } @@ -19140,103 +19566,102 @@ "schema": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "Record name (subdomain).", - "x-example": "" - }, - "value": { - "type": "string", - "description": "IPv6 address for this AAAA record.", - "x-example": null + "data": { + "type": "object", + "description": "Document data as JSON object. Include only fields and value pairs to be updated.", + "x-example": "{}" }, - "ttl": { - "type": "integer", - "description": "Time to live, in seconds. Must be greater than 0.", - "x-example": 1, - "format": "int32" + "permissions": { + "type": "array", + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } }, - "comment": { + "transactionId": { "type": "string", - "description": "A comment explaining what this record is for.", - "x-example": "" + "description": "Transaction ID for staging the operation.", + "x-example": "" } - }, - "required": [ - "name", - "value", - "ttl" - ] + } } } } } - } - }, - "\/domains\/{domainId}\/records\/aaaa\/{recordId}": { - "put": { - "summary": "Update an existing AAAA record for the given domain.", - "operationId": "domainsUpdateRecordAAAA", + }, + "delete": { + "summary": "Delete document", + "operationId": "documentsDBDeleteDocument", "tags": [ - "domains" + "documentsDB" ], - "description": " Update an existing AAAA record for the given domain. This endpoint allows you to modify\n the properties of an existing AAAA record, including its name (subdomain), IPv6 address,\n TTL, and optional comment.", + "description": "Delete a document by its unique ID.", "responses": { - "200": { - "description": "DNSRecord", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateRecordAAAA", - "group": null, - "weight": 639, + "method": "deleteDocument", + "group": "documents", + "weight": 415, "cookies": false, "type": "", - "demo": "domains\/update-record-aaaa.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "demo": "documentsdb\/delete-document.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", "platforms": [ - "console" + "console", + "client", + "server", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/delete-document.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" }, { - "name": "recordId", - "description": "DNS record unique ID.", + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" }, "in": "path" } @@ -19247,54 +19672,33 @@ "schema": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "Record name (subdomain).", - "x-example": "" - }, - "value": { - "type": "string", - "description": "IPv6 address for this AAAA record.", - "x-example": null - }, - "ttl": { - "type": "integer", - "description": "Time to live, in seconds. Must be greater than 0.", - "x-example": 1, - "format": "int32" - }, - "comment": { + "transactionId": { "type": "string", - "description": "A comment for this record.", - "x-example": "" + "description": "Transaction ID for staging the operation.", + "x-example": "" } - }, - "required": [ - "name", - "value", - "ttl" - ] + } } } } } } }, - "\/domains\/{domainId}\/records\/alias": { - "post": { - "summary": "Create a new ALIAS record for the given domain.", - "operationId": "domainsCreateRecordAlias", + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/logs": { + "get": { + "summary": "List document logs", + "operationId": "documentsDBListDocumentLogs", "tags": [ - "domains" + "documentsDB" ], - "description": " Create a new ALIAS record for the given domain. This record type can be used to point your domain \n to another domain name that will serve as an alias. This is particularly useful when you want to \n map your domain to a target domain that may change its IP address.", + "description": "Get the document activity logs list by its unique ID.", "responses": { - "201": { - "description": "DNSRecord", + "200": { + "description": "Logs List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" + "$ref": "#\/components\/schemas\/logList" } } } @@ -19302,21 +19706,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "createRecordAlias", - "group": null, - "weight": 640, + "method": "listDocumentLogs", + "group": "logs", + "weight": 418, "cookies": false, "type": "", - "demo": "domains\/create-record-alias.md", + "demo": "documentsdb\/list-document-logs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "documents.read", "platforms": [ "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/get-document-logs.md", "auth": { "Project": [] } @@ -19328,70 +19733,66 @@ ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" }, "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Only supported methods are limit and offset", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" } + ] + } + }, + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/decrement": { + "patch": { + "summary": "Decrement document attribute", + "operationId": "documentsDBDecrementDocumentAttribute", + "tags": [ + "documentsDB" ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Record name.", - "x-example": "" - }, - "value": { - "type": "string", - "description": "Target domain for this ALIAS record.", - "x-example": "" - }, - "ttl": { - "type": "integer", - "description": "Time to live, in seconds. Must be greater than 0.", - "x-example": 1, - "format": "int32" - }, - "comment": { - "type": "string", - "description": "A comment for this record.", - "x-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\n the properties of an existing ALIAS record including its name, target domain, TTL, and comment.\n \n The ALIAS record type is similar to a CNAME record but can be used at the zone apex (root domain).\n It provides a way to map one domain name to another.", + "description": "Decrement a specific column of a row by a given value.", "responses": { "200": { - "description": "DNSRecord", + "description": "Document", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" + "$ref": "#\/components\/schemas\/document" } } } @@ -19399,48 +19800,73 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateRecordAlias", - "group": null, - "weight": 641, + "method": "decrementDocumentAttribute", + "group": "documents", + "weight": 420, "cookies": false, "type": "", - "demo": "domains\/update-record-alias.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "demo": "documentsdb\/decrement-document-attribute.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", "platforms": [ - "console" + "client", + "server", + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/decrement-document-attribute.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "JWT": [], + "Key": [] } ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" }, { - "name": "recordId", - "description": "DNS record unique ID.", + "name": "collectionId", + "description": "Collection ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "attribute", + "description": "Attribute key.", + "required": true, + "schema": { + "type": "string" }, "in": "path" } @@ -19451,54 +19877,45 @@ "schema": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "Record name.", - "x-example": "" - }, "value": { - "type": "string", - "description": "Target domain for this ALIAS record.", - "x-example": "" + "type": "number", + "description": "Value to decrement the attribute by. The value must be a number.", + "x-example": null, + "format": "float" }, - "ttl": { - "type": "integer", - "description": "Time to live, in seconds. Must be greater than 0.", - "x-example": 1, - "format": "int32" + "min": { + "type": "number", + "description": "Minimum value for the attribute. If the current value is lesser than this value, an exception will be thrown.", + "x-example": null, + "format": "float" }, - "comment": { + "transactionId": { "type": "string", - "description": "A comment for this record.", - "x-example": "" + "description": "Transaction ID for staging the operation.", + "x-example": "" } - }, - "required": [ - "name", - "value", - "ttl" - ] + } } } } } } }, - "\/domains\/{domainId}\/records\/caa": { - "post": { - "summary": "Create a new CAA record for the given domain.", - "operationId": "domainsCreateRecordCAA", + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/increment": { + "patch": { + "summary": "Increment document attribute", + "operationId": "documentsDBIncrementDocumentAttribute", "tags": [ - "domains" + "documentsDB" ], - "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.", + "description": "Increment a specific column of a row by a given value.", "responses": { - "201": { - "description": "DNSRecord", + "200": { + "description": "Document", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" + "$ref": "#\/components\/schemas\/document" } } } @@ -19506,38 +19923,73 @@ }, "deprecated": false, "x-appwrite": { - "method": "createRecordCAA", - "group": null, - "weight": 642, + "method": "incrementDocumentAttribute", + "group": "documents", + "weight": 419, "cookies": false, "type": "", - "demo": "domains\/create-record-caa.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "demo": "documentsdb\/increment-document-attribute.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", "platforms": [ - "console" + "client", + "server", + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/increment-document-attribute.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "JWT": [], + "Key": [] } ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "attribute", + "description": "Attribute key.", + "required": true, + "schema": { + "type": "string" }, "in": "path" } @@ -19548,54 +20000,45 @@ "schema": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "Record name.", - "x-example": null - }, "value": { - "type": "string", - "description": "CAA value (e.g. issuer domain).", - "x-example": null + "type": "number", + "description": "Value to increment the attribute by. The value must be a number.", + "x-example": null, + "format": "float" }, - "ttl": { - "type": "integer", - "description": "Time to live, in seconds. Must be greater than 0.", - "x-example": 1, - "format": "int32" + "max": { + "type": "number", + "description": "Maximum value for the attribute. If the current value is greater than this value, an error will be thrown.", + "x-example": null, + "format": "float" }, - "comment": { + "transactionId": { "type": "string", - "description": "A comment for this record.", - "x-example": "" + "description": "Transaction ID for staging the operation.", + "x-example": "" } - }, - "required": [ - "name", - "value", - "ttl" - ] + } } } } } } }, - "\/domains\/{domainId}\/records\/caa\/{recordId}": { - "put": { - "summary": "Update an existing CAA record for the given domain.", - "operationId": "domainsUpdateRecordCAA", + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/indexes": { + "get": { + "summary": "List indexes", + "operationId": "documentsDBListIndexes", "tags": [ - "domains" + "documentsDB" ], - "description": " Update an existing CAA record for the given domain. A CAA (Certification Authority Authorization) \n record is used to specify which certificate authorities (CAs) are authorized to issue certificates \n for a domain.", + "description": "List indexes in the collection.", "responses": { "200": { - "description": "DNSRecord", + "description": "Indexes List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" + "$ref": "#\/components\/schemas\/indexList" } } } @@ -19603,106 +20046,94 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateRecordCAA", - "group": null, - "weight": 643, + "method": "listIndexes", + "group": "indexes", + "weight": 408, "cookies": false, "type": "", - "demo": "domains\/update-record-caa.md", + "demo": "documentsdb\/list-indexes.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "collections.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/list-indexes.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" }, { - "name": "recordId", - "description": "DNS record unique ID.", + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: 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", + "x-example": false, + "default": true + }, + "in": "query" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Record name.", - "x-example": null - }, - "value": { - "type": "string", - "description": "CAA value (e.g. issuer domain).", - "x-example": null - }, - "ttl": { - "type": "integer", - "description": "Time to live, in seconds. Must be greater than 0.", - "x-example": 1, - "format": "int32" - }, - "comment": { - "type": "string", - "description": "A comment for this record.", - "x-example": "" - } - }, - "required": [ - "name", - "value", - "ttl" - ] - } - } - } - } - } - }, - "\/domains\/{domainId}\/records\/cname": { + ] + }, "post": { - "summary": "Create a new CNAME record for the given domain.", - "operationId": "domainsCreateRecordCNAME", + "summary": "Create index", + "operationId": "documentsDBCreateIndex", "tags": [ - "domains" + "documentsDB" ], - "description": " Create a new CNAME record for the given domain.\n \n A CNAME record maps a subdomain to another domain name, allowing you to create aliases \n for your domain. For example, you can create a CNAME record to point 'blog.example.com' \n to 'example.wordpress.com'.", + "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": { - "201": { - "description": "DNSRecord", + "202": { + "description": "Index", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" + "$ref": "#\/components\/schemas\/index" } } } @@ -19710,38 +20141,51 @@ }, "deprecated": false, "x-appwrite": { - "method": "createRecordCNAME", - "group": null, - "weight": 644, + "method": "createIndex", + "group": "indexes", + "weight": 405, "cookies": false, "type": "", - "demo": "domains\/create-record-cname.md", + "demo": "documentsdb\/create-index.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "collections.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/create-index.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "x-example": "" }, "in": "path" } @@ -19752,32 +20196,59 @@ "schema": { "type": "object", "properties": { - "name": { + "key": { "type": "string", - "description": "Record name (subdomain).", - "x-example": "" + "description": "Index Key.", + "x-example": null }, - "value": { + "type": { "type": "string", - "description": "Canonical target for this CNAME record.", - "x-example": "" + "description": "Index type.", + "x-example": "key", + "enum": [ + "key", + "fulltext", + "unique", + "spatial" + ], + "x-enum-name": "IndexType", + "x-enum-keys": [] }, - "ttl": { - "type": "integer", - "description": "Time to live, in seconds. Must be greater than 0.", - "x-example": 1, - "format": "int32" + "attributes": { + "type": "array", + "description": "Array of attributes to index. Maximum of 100 attributes are allowed, each 32 characters long.", + "x-example": null, + "items": { + "type": "string" + } }, - "comment": { - "type": "string", - "description": "A comment for this record.", - "x-example": "" + "orders": { + "type": "array", + "description": "Array of index orders. Maximum of 100 orders are allowed.", + "x-example": null, + "items": { + "type": "string", + "enum": [ + "asc", + "desc" + ], + "x-enum-name": "OrderBy", + "x-enum-keys": [] + } + }, + "lengths": { + "type": "array", + "description": "Length of index. Maximum of 100", + "x-example": null, + "items": { + "type": "integer" + } } }, "required": [ - "name", - "value", - "ttl" + "key", + "type", + "attributes" ] } } @@ -19785,21 +20256,21 @@ } } }, - "\/domains\/{domainId}\/records\/cname\/{recordId}": { - "put": { - "summary": "Update an existing CNAME record for the given domain.", - "operationId": "domainsUpdateRecordCNAME", + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/indexes\/{key}": { + "get": { + "summary": "Get index", + "operationId": "documentsDBGetIndex", "tags": [ - "domains" + "documentsDB" ], - "description": " Update an existing CNAME record for the given domain.", + "description": "Get index by ID.", "responses": { "200": { - "description": "DNSRecord", + "description": "Index", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" + "$ref": "#\/components\/schemas\/index" } } } @@ -19807,106 +20278,154 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateRecordCNAME", - "group": null, - "weight": 645, + "method": "getIndex", + "group": "indexes", + "weight": 406, "cookies": false, "type": "", - "demo": "domains\/update-record-cname.md", + "demo": "documentsdb\/get-index.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "collections.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/get-index.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" }, { - "name": "recordId", - "description": "DNS record unique ID.", + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" + }, + "in": "path" + }, + { + "name": "key", + "description": "Index Key.", + "required": true, + "schema": { + "type": "string" }, "in": "path" } + ] + }, + "delete": { + "summary": "Delete index", + "operationId": "documentsDBDeleteIndex", + "tags": [ + "documentsDB" ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Record name (subdomain).", - "x-example": "" - }, - "value": { - "type": "string", - "description": "Canonical target for this CNAME record.", - "x-example": "" - }, - "ttl": { - "type": "integer", - "description": "Time to live, in seconds. Must be greater than 0.", - "x-example": 1, - "format": "int32" - }, - "comment": { - "type": "string", - "description": "A comment for this record.", - "x-example": "" - } - }, - "required": [ - "name", - "value", - "ttl" - ] - } - } + "description": "Delete an index.", + "responses": { + "204": { + "description": "No content" } - } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteIndex", + "group": "indexes", + "weight": 407, + "cookies": false, + "type": "", + "demo": "documentsdb\/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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/delete-index.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "key", + "description": "Index Key.", + "required": true, + "schema": { + "type": "string" + }, + "in": "path" + } + ] } }, - "\/domains\/{domainId}\/records\/https": { - "post": { - "summary": "Create a new HTTPS record for the given domain.", - "operationId": "domainsCreateRecordHTTPS", + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/logs": { + "get": { + "summary": "List collection logs", + "operationId": "documentsDBListCollectionLogs", "tags": [ - "domains" + "documentsDB" ], - "description": " Create a new HTTPS record for the given domain. This record is used to configure HTTPS \n settings for your domain, enabling secure communication over SSL\/TLS.", + "description": "Get the collection activity logs list by its unique ID.", "responses": { - "201": { - "description": "DNSRecord", + "200": { + "description": "Logs List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" + "$ref": "#\/components\/schemas\/logList" } } } @@ -19914,21 +20433,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "createRecordHTTPS", - "group": null, - "weight": 646, + "method": "listCollectionLogs", + "group": "collections", + "weight": 403, "cookies": false, "type": "", - "demo": "domains\/create-record-https.md", + "demo": "documentsdb\/list-collection-logs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "collections.read", "platforms": [ "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/get-collection-logs.md", "auth": { "Project": [] } @@ -19940,70 +20460,56 @@ ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Only supported methods are limit and offset", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Record name (subdomain).", - "x-example": "" - }, - "value": { - "type": "string", - "description": "Target for the HTTPS record.", - "x-example": "" - }, - "ttl": { - "type": "integer", - "description": "Time to live, in seconds. Must be greater than 0.", - "x-example": 1, - "format": "int32" - }, - "comment": { - "type": "string", - "description": "A comment for this record.", - "x-example": "" - } - }, - "required": [ - "name", - "value", - "ttl" - ] - } - } - } - } + ] } }, - "\/domains\/{domainId}\/records\/https\/{recordId}": { - "put": { - "summary": "Update an existing HTTPS record for the given domain.", - "operationId": "domainsUpdateRecordHTTPS", + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/usage": { + "get": { + "summary": "Get collection usage stats", + "operationId": "documentsDBGetCollectionUsage", "tags": [ - "domains" + "documentsDB" ], - "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.", + "description": "Get usage metrics and statistics for a collection. Returning the total number of documents. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.", "responses": { "200": { - "description": "DNSRecord", + "description": "UsageCollection", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" + "$ref": "#\/components\/schemas\/usageCollection" } } } @@ -20011,21 +20517,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateRecordHTTPS", + "method": "getCollectionUsage", "group": null, - "weight": 647, + "weight": 404, "cookies": false, "type": "", - "demo": "domains\/update-record-https.md", + "demo": "documentsdb\/get-collection-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "collections.read", "platforms": [ "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/get-collection-usage.md", "auth": { "Project": [] } @@ -20037,80 +20544,65 @@ ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" }, { - "name": "recordId", - "description": "DNS record unique ID.", + "name": "range", + "description": "Date range.", + "required": false, + "schema": { + "type": "string", + "x-example": "24h", + "enum": [ + "24h", + "30d", + "90d" + ], + "x-enum-name": "UsageRange", + "x-enum-keys": [ + "Twenty Four Hours", + "Thirty Days", + "Ninety Days" + ], + "default": "30d" + }, + "in": "query" + }, + { + "name": "collectionId", + "description": "Collection ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Record name (subdomain).", - "x-example": "" - }, - "value": { - "type": "string", - "description": "Target for the HTTPS record.", - "x-example": "" - }, - "ttl": { - "type": "integer", - "description": "Time to live, in seconds. Must be greater than 0.", - "x-example": 1, - "format": "int32" - }, - "comment": { - "type": "string", - "description": "A comment for this record.", - "x-example": "" - } - }, - "required": [ - "name", - "value", - "ttl" - ] - } - } - } - } + ] } }, - "\/domains\/{domainId}\/records\/mx": { - "post": { - "summary": "Create a new MX record for the given domain.", - "operationId": "domainsCreateRecordMX", + "\/documentsdb\/{databaseId}\/usage": { + "get": { + "summary": "Get DocumentsDB usage stats", + "operationId": "documentsDBGetUsage", "tags": [ - "domains" + "documentsDB" ], - "description": " Create a new MX record for the given domain. MX records are used to define the mail servers responsible \n for accepting email messages for the domain. Multiple MX records can be created with different priorities.\n The priority parameter determines the order in which mail servers are used, with lower values indicating \n higher priority.", + "description": "Get usage metrics and statistics for a database. You can view the total number of collections, documents, and storage usage. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.", "responses": { - "201": { - "description": "DNSRecord", + "200": { + "description": "UsageDocumentsDB", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" + "$ref": "#\/components\/schemas\/usageDocumentsDB" } } } @@ -20118,21 +20610,48 @@ }, "deprecated": false, "x-appwrite": { - "method": "createRecordMX", + "method": "getUsage", "group": null, - "weight": 648, + "weight": 396, "cookies": false, "type": "", - "demo": "domains\/create-record-mx.md", + "demo": "documentsdb\/get-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "collections.read", "platforms": [ "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/get-database-usage.md", + "methods": [ + { + "name": "getUsage", + "namespace": "documentsDB", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "range" + ], + "required": [ + "databaseId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/usageDocumentsDB" + } + ], + "description": "Get usage metrics and statistics for a database. You can view the total number of collections, documents, and storage usage. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.", + "demo": "documentsdb\/get-usage.md", + "public": true + } + ], "auth": { "Project": [] } @@ -20144,77 +20663,55 @@ ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" + }, + { + "name": "range", + "description": "Date range.", + "required": false, + "schema": { + "type": "string", + "x-example": "24h", + "enum": [ + "24h", + "30d", + "90d" + ], + "x-enum-name": "UsageRange", + "x-enum-keys": [ + "Twenty Four Hours", + "Thirty Days", + "Ninety Days" + ], + "default": "30d" + }, + "in": "query" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Record name (subdomain).", - "x-example": "" - }, - "value": { - "type": "string", - "description": "Mail server domain for this MX record.", - "x-example": "" - }, - "ttl": { - "type": "integer", - "description": "Time to live, in seconds. Must be greater than 0.", - "x-example": 1, - "format": "int32" - }, - "priority": { - "type": "integer", - "description": "MX priority.", - "x-example": null, - "format": "int32" - }, - "comment": { - "type": "string", - "description": "A comment for this record.", - "x-example": "" - } - }, - "required": [ - "name", - "value", - "ttl", - "priority" - ] - } - } - } - } + ] } }, - "\/domains\/{domainId}\/records\/mx\/{recordId}": { - "put": { - "summary": "Update an existing MX record for the given domain.", - "operationId": "domainsUpdateRecordMX", + "\/domains": { + "get": { + "summary": "List domains", + "operationId": "domainsList", "tags": [ "domains" ], - "description": " Update an existing MX record for the given domain.", + "description": " List all domains registered for this project. This endpoint supports pagination.", "responses": { "200": { - "description": "DNSRecord", + "description": "Domains list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" + "$ref": "#\/components\/schemas\/domainsList" } } } @@ -20222,16 +20719,16 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateRecordMX", + "method": "list", "group": null, - "weight": 649, + "weight": 647, "cookies": false, "type": "", - "demo": "domains\/update-record-mx.md", + "demo": "domains\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "domains.read", "platforms": [ "console" ], @@ -20248,87 +20745,45 @@ ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, + "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": "string", - "x-example": "" + "type": "array", + "items": { + "type": "string" + }, + "default": [] }, - "in": "path" + "in": "query" }, { - "name": "recordId", - "description": "DNS record unique ID.", - "required": true, + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, "schema": { "type": "string", - "x-example": "" + "x-example": "", + "default": "" }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Record name (subdomain).", - "x-example": "" - }, - "value": { - "type": "string", - "description": "Mail server domain for this MX record.", - "x-example": "" - }, - "ttl": { - "type": "integer", - "description": "Time to live, in seconds. Must be greater than 0.", - "x-example": 1, - "format": "int32" - }, - "priority": { - "type": "integer", - "description": "MX priority.", - "x-example": null, - "format": "int32" - }, - "comment": { - "type": "string", - "description": "A comment for this record.", - "x-example": "" - } - }, - "required": [ - "name", - "value", - "ttl", - "priority" - ] - } - } + "in": "query" } - } - } - }, - "\/domains\/{domainId}\/records\/ns": { + ] + }, "post": { - "summary": "Create a new NS record for the given domain.", - "operationId": "domainsCreateRecordNS", + "summary": "Create a new domain.", + "operationId": "domainsCreate", "tags": [ "domains" ], - "description": " Create a new NS record for the given domain. NS records specify the nameservers that are used \n to resolve the domain name to IP addresses. Each domain can have multiple NS records.", + "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": "DNSRecord", + "description": "Domain", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" + "$ref": "#\/components\/schemas\/domain" } } } @@ -20336,12 +20791,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "createRecordNS", + "method": "create", "group": null, - "weight": 650, + "weight": 642, "cookies": false, "type": "", - "demo": "domains\/create-record-ns.md", + "demo": "domains\/create.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -20360,50 +20815,26 @@ "Project": [] } ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - } - ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "Record name (subdomain).", - "x-example": "" - }, - "value": { + "teamId": { "type": "string", - "description": "Nameserver target for this NS record.", - "x-example": "" - }, - "ttl": { - "type": "integer", - "description": "Time to live, in seconds. Must be greater than 0.", - "x-example": 1, - "format": "int32" + "description": "Team unique ID.", + "x-example": "" }, - "comment": { + "domain": { "type": "string", - "description": "A comment for this record.", - "x-example": "" + "description": "Domain name (e.g. \"example.com\").", + "x-example": null } }, "required": [ - "name", - "value", - "ttl" + "teamId", + "domain" ] } } @@ -20411,21 +20842,21 @@ } } }, - "\/domains\/{domainId}\/records\/ns\/{recordId}": { - "put": { - "summary": "Update an existing NS record for the given domain.", - "operationId": "domainsUpdateRecordNS", + "\/domains\/price": { + "get": { + "summary": "Get domain price", + "operationId": "domainsGetPrice", "tags": [ "domains" ], - "description": " Update an existing NS record for the given domain. This endpoint allows you to modify \n the properties of an NS (nameserver) record associated with your domain. You can update \n the record name (subdomain), target nameserver value, TTL, and add or modify comments \n for better record management.", + "description": " Get the registration price for a domain name.", "responses": { "200": { - "description": "DNSRecord", + "description": "DomainPrice", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" + "$ref": "#\/components\/schemas\/domainPrice" } } } @@ -20433,16 +20864,16 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateRecordNS", + "method": "getPrice", "group": null, - "weight": 651, + "weight": 645, "cookies": false, "type": "", - "demo": "domains\/update-record-ns.md", + "demo": "domains\/get-price.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "domains.read", "platforms": [ "console" ], @@ -20459,80 +20890,62 @@ ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "domain", + "description": "Domain name to get price for.", "required": true, "schema": { - "type": "string", - "x-example": "" + "type": "string" }, - "in": "path" + "in": "query" }, { - "name": "recordId", - "description": "DNS record unique ID.", - "required": true, + "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", - "x-example": "" + "x-example": "new", + "enum": [ + "new", + "transfer", + "renewal", + "trade" + ], + "x-enum-name": null, + "x-enum-keys": [], + "default": "new" }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Record name (subdomain).", - "x-example": "" - }, - "value": { - "type": "string", - "description": "Nameserver target for this NS record.", - "x-example": "" - }, - "ttl": { - "type": "integer", - "description": "Time to live, in seconds. Must be greater than 0.", - "x-example": 1, - "format": "int32" - }, - "comment": { - "type": "string", - "description": "A comment for this record.", - "x-example": "" - } - }, - "required": [ - "name", - "value", - "ttl" - ] - } - } + "in": "query" } - } + ] } }, - "\/domains\/{domainId}\/records\/srv": { + "\/domains\/purchases": { "post": { - "summary": "Create a new SRV record for the given domain.", - "operationId": "domainsCreateRecordSRV", + "summary": "Create a domain purchase", + "operationId": "domainsCreatePurchase", "tags": [ "domains" ], - "description": " Create a new SRV record for the given domain. SRV records are used to define the location \n of servers for specific services. For example, they can be used to specify which server \n handles a specific service like SIP or XMPP for the domain.", + "description": " Create a domain purchase with registrant information.", "responses": { "201": { - "description": "DNSRecord", + "description": "Domain", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" + "$ref": "#\/components\/schemas\/domain" } } } @@ -20540,16 +20953,16 @@ }, "deprecated": false, "x-appwrite": { - "method": "createRecordSRV", + "method": "createPurchase", "group": null, - "weight": 652, + "weight": 690, "cookies": false, "type": "", - "demo": "domains\/create-record-srv.md", + "demo": "domains\/create-purchase.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "billing.write", "platforms": [ "console" ], @@ -20564,71 +20977,80 @@ "Project": [] } ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - } - ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "name": { + "domain": { "type": "string", - "description": "Record name (service name).", - "x-example": "" + "description": "Fully qualified domain name to purchase (for example, example.com).", + "x-example": null }, - "value": { + "organizationId": { "type": "string", - "description": "Target hostname for this SRV record.", - "x-example": "" + "description": "Team ID that will own the domain.", + "x-example": "" }, - "ttl": { - "type": "integer", - "description": "Time to live, in seconds. Must be greater than 0.", - "x-example": 1, - "format": "int32" + "firstName": { + "type": "string", + "description": "Registrant first name used for domain registration.", + "x-example": "" }, - "priority": { - "type": "integer", - "description": "Record priority.", - "x-example": null, - "format": "int32" + "lastName": { + "type": "string", + "description": "Registrant last name used for domain registration.", + "x-example": "" }, - "weight": { - "type": "integer", - "description": "Record weight.", - "x-example": null, - "format": "int32" + "email": { + "type": "string", + "description": "Registrant email address for registration and notices.", + "x-example": "email@example.com", + "format": "email" }, - "port": { + "phone": { + "type": "string", + "description": "Registrant phone number in E.164 format (for example, +15555551234).", + "x-example": "+12065550100", + "format": "phone" + }, + "billingAddressId": { + "type": "string", + "description": "Billing address ID used for registration contact details.", + "x-example": "" + }, + "addressLine3": { + "type": "string", + "description": "Additional address line for the registrant (line 3).", + "x-example": "" + }, + "companyName": { + "type": "string", + "description": "Company or organization name for the registrant.", + "x-example": "" + }, + "periodYears": { "type": "integer", - "description": "Port number for the service.", - "x-example": null, + "description": "Registration term in years (1-10).", + "x-example": 1, "format": "int32" }, - "comment": { + "paymentMethodId": { "type": "string", - "description": "A comment for this record.", - "x-example": "" + "description": "Payment method ID to authorize and capture the purchase.", + "x-example": "" } }, "required": [ - "name", - "value", - "ttl", - "priority", - "weight", - "port" + "domain", + "organizationId", + "firstName", + "lastName", + "email", + "phone", + "billingAddressId", + "paymentMethodId" ] } } @@ -20636,21 +21058,21 @@ } } }, - "\/domains\/{domainId}\/records\/srv\/{recordId}": { - "put": { - "summary": "Update an existing SRV record for the given domain.", - "operationId": "domainsUpdateRecordSRV", + "\/domains\/suggestions": { + "get": { + "summary": "List domain suggestions", + "operationId": "domainsListSuggestions", "tags": [ "domains" ], - "description": " Update an existing SRV record for the given domain.\n \n Required 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 \n Optional parameters:\n - comment: A comment for this record", + "description": " List domain suggestions.", "responses": { "200": { - "description": "DNSRecord", + "description": "Domain suggestions list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" + "$ref": "#\/components\/schemas\/domainSuggestionsList" } } } @@ -20658,16 +21080,16 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateRecordSRV", + "method": "listSuggestions", "group": null, - "weight": 653, + "weight": 689, "cookies": false, "type": "", - "demo": "domains\/update-record-srv.md", - "rate-limit": 0, + "demo": "domains\/list-suggestions.md", + "rate-limit": 50, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "domains.read", "platforms": [ "console" ], @@ -20684,24 +21106,121 @@ ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "query", + "description": "Query to find available domains and suggestions. Max length: 256 chars.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, - "in": "path" + "in": "query" }, { - "name": "recordId", - "description": "DNS record unique ID.", - "required": true, + "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", - "x-example": "" + "x-example": "premium", + "enum": [ + "premium", + "suggestion" + ], + "x-enum-name": null, + "x-enum-keys": [] }, - "in": "path" + "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": " Create a domain transfer in with authorization code and registrant information.", + "responses": { + "201": { + "description": "Domain", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domain" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createTransferIn", + "group": null, + "weight": 651, + "cookies": false, + "type": "", + "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": { + "Project": [] + } + }, + "security": [ + { + "Project": [] } ], "requestBody": { @@ -20710,53 +21229,32 @@ "schema": { "type": "object", "properties": { - "name": { + "domain": { "type": "string", - "description": "Record name (service name).", - "x-example": "" + "description": "Domain name to transfer in.", + "x-example": null }, - "value": { + "organizationId": { "type": "string", - "description": "Target hostname for this SRV record.", - "x-example": "" - }, - "ttl": { - "type": "integer", - "description": "Time to live, in seconds. Must be greater than 0.", - "x-example": 1, - "format": "int32" - }, - "priority": { - "type": "integer", - "description": "Record priority.", - "x-example": null, - "format": "int32" - }, - "weight": { - "type": "integer", - "description": "Record weight.", - "x-example": null, - "format": "int32" + "description": "Organization ID that this domain will belong to.", + "x-example": "" }, - "port": { - "type": "integer", - "description": "Port number for the service.", - "x-example": null, - "format": "int32" + "authCode": { + "type": "string", + "description": "Authorization code for the domain transfer.", + "x-example": "" }, - "comment": { + "paymentMethodId": { "type": "string", - "description": "A comment for this record.", - "x-example": "" + "description": "Payment method ID to authorize and capture the transfer.", + "x-example": "" } }, "required": [ - "name", - "value", - "ttl", - "priority", - "weight", - "port" + "domain", + "organizationId", + "authCode", + "paymentMethodId" ] } } @@ -20764,21 +21262,21 @@ } } }, - "\/domains\/{domainId}\/records\/txt": { + "\/domains\/transfers\/out": { "post": { - "summary": "Create a new TXT record for the given domain.", - "operationId": "domainsCreateRecordTXT", + "summary": "Create a domain transfer out.", + "operationId": "domainsCreateTransferOut", "tags": [ "domains" ], - "description": " Create a new TXT record for the given domain. TXT records can be used \n to provide additional information about your domain, such as domain \n verification records, SPF records, or DKIM records.", + "description": " Create a domain transfer out and return the authorization code.", "responses": { - "201": { - "description": "DNSRecord", + "202": { + "description": "domainTransferOut", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" + "$ref": "#\/components\/schemas\/domainTransferOut" } } } @@ -20786,16 +21284,16 @@ }, "deprecated": false, "x-appwrite": { - "method": "createRecordTXT", + "method": "createTransferOut", "group": null, - "weight": 654, + "weight": 652, "cookies": false, "type": "", - "demo": "domains\/create-record-txt.md", + "demo": "domains\/create-transfer-out.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "billing.write", "platforms": [ "console" ], @@ -20810,49 +21308,26 @@ "Project": [] } ], - "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - } - ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "Record name (subdomain) for the TXT record.", - "x-example": "" - }, - "value": { + "domainId": { "type": "string", - "description": "TXT record value.", - "x-example": "" + "description": "Domain unique ID.", + "x-example": "" }, - "ttl": { - "type": "integer", - "description": "Time to live, in seconds. Must be greater than 0.", - "x-example": 1, - "format": "int32" - }, - "comment": { + "organizationId": { "type": "string", - "description": "A comment for this record.", - "x-example": "" + "description": "Organization ID that this domain belongs to.", + "x-example": "" } }, "required": [ - "name", - "ttl" + "domainId", + "organizationId" ] } } @@ -20860,21 +21335,21 @@ } } }, - "\/domains\/{domainId}\/records\/txt\/{recordId}": { - "put": { - "summary": "Update an existing TXT record for the given domain.", - "operationId": "domainsUpdateRecordTXT", + "\/domains\/{domainId}": { + "get": { + "summary": "Get a single domain by its unique ID.", + "operationId": "domainsGet", "tags": [ "domains" ], - "description": " Update an existing TXT record for the given domain.\n \n Update the TXT record details for a specific domain by providing the domain ID,\n record ID, and the new record configuration including name, value, TTL, and an optional comment.", + "description": " Get a domain by its unique ID.", "responses": { "200": { - "description": "DNSRecord", + "description": "Domain", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" + "$ref": "#\/components\/schemas\/domain" } } } @@ -20882,16 +21357,16 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateRecordTXT", + "method": "get", "group": null, - "weight": 655, + "weight": 644, "cookies": false, "type": "", - "demo": "domains\/update-record-txt.md", + "demo": "domains\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "domains.read", "platforms": [ "console" ], @@ -20916,72 +21391,76 @@ "x-example": "" }, "in": "path" - }, - { - "name": "recordId", - "description": "DNS record unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Record name (subdomain) for the TXT record.", - "x-example": "" - }, - "value": { - "type": "string", - "description": "TXT record value.", - "x-example": "" - }, - "ttl": { - "type": "integer", - "description": "Time to live, in seconds. Must be greater than 0.", - "x-example": 1, - "format": "int32" - }, - "comment": { - "type": "string", - "description": "A comment for this record.", - "x-example": "" - } - }, - "required": [ - "name", - "value", - "ttl" - ] - } - } + ] + }, + "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": { + "method": "delete", + "group": null, + "weight": 643, + "cookies": false, + "type": "", + "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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ] } }, - "\/domains\/{domainId}\/records\/{recordId}": { - "get": { - "summary": "Get a single DNS record for a given domain by record ID.", - "operationId": "domainsGetRecord", + "\/domains\/{domainId}\/nameservers": { + "patch": { + "summary": "Verify which NS records are used and update the domain accordingly.", + "operationId": "domainsUpdateNameservers", "tags": [ "domains" ], - "description": " Get a single DNS record for a given domain by record ID.\n \n This endpoint allows you to retrieve a specific DNS record associated with a domain\n using its unique identifier. The record contains information about the DNS configuration\n such as type, value, and TTL settings.", + "description": " Verify which NS records are used and update the domain accordingly. This will check the domain's\n nameservers and update the domain's status based on whether the nameservers match the expected\n Appwrite nameservers.", "responses": { "200": { - "description": "DNSRecord", + "description": "Domain", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/dnsRecord" + "$ref": "#\/components\/schemas\/domain" } } } @@ -20989,16 +21468,16 @@ }, "deprecated": false, "x-appwrite": { - "method": "getRecord", + "method": "updateNameservers", "group": null, - "weight": 657, + "weight": 648, "cookies": false, "type": "", - "demo": "domains\/get-record.md", + "demo": "domains\/update-nameservers.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.read", + "scope": "domains.write", "platforms": [ "console" ], @@ -21023,39 +21502,96 @@ "x-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": { + "method": "getPresetGoogleWorkspace", + "group": null, + "weight": 678, + "cookies": false, + "type": "", + "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": { + "Project": [] + } + }, + "security": [ { - "name": "recordId", - "description": "DNS record unique ID.", + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" } ] }, - "delete": { - "summary": "Delete a DNS record for the given domain.", - "operationId": "domainsDeleteRecord", + "post": { + "summary": "Create Google Workspace preset (Records)", + "operationId": "domainsCreatePresetGoogleWorkspace", "tags": [ "domains" ], - "description": " Delete a DNS record for the given domain. This endpoint allows you to delete an existing DNS record \n from a specific domain.", + "description": " Add Google Workspace DNS records to the domain. This will create the required MX records \n for Google Workspace email hosting.", "responses": { - "204": { - "description": "No content" + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteRecord", + "method": "createPresetGoogleWorkspace", "group": null, - "weight": 656, + "weight": 677, "cookies": false, "type": "", - "demo": "domains\/delete-record.md", + "demo": "domains\/create-preset-google-workspace.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -21084,35 +21620,25 @@ "x-example": "" }, "in": "path" - }, - { - "name": "recordId", - "description": "DNS record unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" } ] } }, - "\/domains\/{domainId}\/team": { - "patch": { - "summary": "Update domain team.", - "operationId": "domainsUpdateTeam", + "\/domains\/{domainId}\/presets\/icloud": { + "get": { + "summary": "Get iCloud preset (Records)", + "operationId": "domainsGetPresetICloud", "tags": [ "domains" ], - "description": " Update the team ID for a specific domain. This endpoint requires admin access.\n \n Updating the team ID will transfer ownership and access control of the domain\n and all its DNS records to the new team.", + "description": " List iCloud DNS records.", "responses": { - "200": { - "description": "Domain", + "201": { + "description": "DNS records list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/domain" + "$ref": "#\/components\/schemas\/dnsRecordsList" } } } @@ -21120,12 +21646,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateTeam", + "method": "getPresetICloud", "group": null, - "weight": 635, + "weight": 688, "cookies": false, "type": "", - "demo": "domains\/update-team.md", + "demo": "domains\/get-preset-i-cloud.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -21155,53 +21681,99 @@ }, "in": "path" } + ] + }, + "post": { + "summary": "Create iCloud preset (Records)", + "operationId": "domainsCreatePresetICloud", + "tags": [ + "domains" ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "teamId": { - "type": "string", - "description": "New team unique ID.", - "x-example": "" - } - }, - "required": [ - "teamId" - ] + "description": " Add iCloud DNS records to the domain. This will create the required MX and SPF records\n for 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": { + "method": "createPresetICloud", + "group": null, + "weight": 687, + "cookies": false, + "type": "", + "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": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ] } }, - "\/domains\/{domainId}\/zone": { + "\/domains\/{domainId}\/presets\/mailgun": { "get": { - "summary": "Retrieve the DNS zone file for the given domain.", - "operationId": "domainsGetZone", + "summary": "Get Mailgun preset (Records)", + "operationId": "domainsGetPresetMailgun", "tags": [ "domains" ], - "description": " Retrieve the DNS zone file for the given domain. This endpoint will return the DNS\n zone file in a standardized format that can be used to configure DNS servers.", + "description": " List Mailgun DNS records.", "responses": { - "200": { - "description": "File" + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "getZone", + "method": "getPresetMailgun", "group": null, - "weight": 631, + "weight": 680, "cookies": false, "type": "", - "demo": "domains\/get-zone.md", + "demo": "domains\/get-preset-mailgun.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.read", + "scope": "domains.write", "platforms": [ "console" ], @@ -21229,20 +21801,20 @@ } ] }, - "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", + "post": { + "summary": "Create Mailgun preset (Records)", + "operationId": "domainsCreatePresetMailgun", "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.", + "description": " Add Mailgun DNS records to the domain. This endpoint will create the required DNS records \n for Mailgun in the specified domain.", "responses": { "201": { - "description": "Domain", + "description": "DNS records list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/domain" + "$ref": "#\/components\/schemas\/dnsRecordsList" } } } @@ -21250,12 +21822,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateZone", + "method": "createPresetMailgun", "group": null, - "weight": 634, + "weight": 679, "cookies": false, "type": "", - "demo": "domains\/update-zone.md", + "demo": "domains\/create-preset-mailgun.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -21285,43 +21857,24 @@ }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "content": { - "type": "string", - "description": "DNS zone file content as a string.", - "x-example": "" - } - }, - "required": [ - "content" - ] - } - } - } - } + ] } }, - "\/functions": { + "\/domains\/{domainId}\/presets\/outlook": { "get": { - "summary": "List functions", - "operationId": "functionsList", + "summary": "Get Outlook preset (Records)", + "operationId": "domainsGetPresetOutlook", "tags": [ - "functions" + "domains" ], - "description": "Get a list of all the project's functions. You can use the query params to filter your results.", + "description": " List Outlook DNS records.", "responses": { - "200": { - "description": "Functions List", + "201": { + "description": "DNS records list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/functionList" + "$ref": "#\/components\/schemas\/dnsRecordsList" } } } @@ -21329,19 +21882,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "list", - "group": "functions", - "weight": 561, + "method": "getPresetOutlook", + "group": null, + "weight": 686, "cookies": false, "type": "", - "demo": "functions\/list.md", + "demo": "domains\/get-preset-outlook.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", + "scope": "domains.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -21351,62 +21903,96 @@ }, "security": [ { - "Project": [], - "Key": [] + "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, 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, + "name": "domainId", + "description": "Domain unique ID.", + "required": true, "schema": { "type": "string", - "x-example": "", - "default": "" + "x-example": "" }, - "in": "query" - }, + "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\n for 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": { + "method": "createPresetOutlook", + "group": null, + "weight": 685, + "cookies": false, + "type": "", + "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": { + "Project": [] + } + }, + "security": [ { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, "schema": { - "type": "boolean", - "x-example": false, - "default": true + "type": "string", + "x-example": "" }, - "in": "query" + "in": "path" } ] - }, - "post": { - "summary": "Create function", - "operationId": "functionsCreate", + } + }, + "\/domains\/{domainId}\/presets\/proton-mail": { + "get": { + "summary": "Get ProtonMail preset (Records)", + "operationId": "domainsGetPresetProtonMail", "tags": [ - "functions" + "domains" ], - "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.", + "description": " List ProtonMail DNS records.", "responses": { "201": { - "description": "Function", + "description": "DNS records list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/function" + "$ref": "#\/components\/schemas\/dnsRecordsList" } } } @@ -21414,19 +22000,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "create", - "group": "functions", - "weight": 558, + "method": "getPresetProtonMail", + "group": null, + "weight": 684, "cookies": false, "type": "", - "demo": "functions\/create.md", + "demo": "domains\/get-preset-proton-mail.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", + "scope": "domains.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -21436,306 +22021,96 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "functionId": { - "type": "string", - "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.", - "x-example": "" - }, - "name": { - "type": "string", - "description": "Function name. Max length: 128 chars.", - "x-example": "" - }, - "runtime": { - "type": "string", - "description": "Execution runtime.", - "x-example": "node-14.5", - "enum": [ - "node-14.5", - "node-16.0", - "node-18.0", - "node-19.0", - "node-20.0", - "node-21.0", - "node-22", - "node-23", - "node-24", - "node-25", - "php-8.0", - "php-8.1", - "php-8.2", - "php-8.3", - "php-8.4", - "ruby-3.0", - "ruby-3.1", - "ruby-3.2", - "ruby-3.3", - "ruby-3.4", - "ruby-4.0", - "python-3.8", - "python-3.9", - "python-3.10", - "python-3.11", - "python-3.12", - "python-3.13", - "python-3.14", - "python-ml-3.11", - "python-ml-3.12", - "python-ml-3.13", - "deno-1.21", - "deno-1.24", - "deno-1.35", - "deno-1.40", - "deno-1.46", - "deno-2.0", - "deno-2.5", - "deno-2.6", - "dart-2.15", - "dart-2.16", - "dart-2.17", - "dart-2.18", - "dart-2.19", - "dart-3.0", - "dart-3.1", - "dart-3.3", - "dart-3.5", - "dart-3.8", - "dart-3.9", - "dart-3.10", - "dotnet-6.0", - "dotnet-7.0", - "dotnet-8.0", - "dotnet-10", - "java-8.0", - "java-11.0", - "java-17.0", - "java-18.0", - "java-21.0", - "java-22", - "java-25", - "swift-5.5", - "swift-5.8", - "swift-5.9", - "swift-5.10", - "swift-6.2", - "kotlin-1.6", - "kotlin-1.8", - "kotlin-1.9", - "kotlin-2.0", - "kotlin-2.3", - "cpp-17", - "cpp-20", - "bun-1.0", - "bun-1.1", - "bun-1.2", - "bun-1.3", - "go-1.23", - "go-1.24", - "go-1.25", - "go-1.26", - "static-1", - "flutter-3.24", - "flutter-3.27", - "flutter-3.29", - "flutter-3.32", - "flutter-3.35", - "flutter-3.38" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "execute": { - "type": "array", - "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.", - "x-example": "[\"any\"]", - "items": { - "type": "string" - } - }, - "events": { - "type": "array", - "description": "Events list. Maximum of 100 events are allowed.", - "x-example": null, - "items": { - "type": "string" - } - }, - "schedule": { - "type": "string", - "description": "Schedule CRON syntax.", - "x-example": null - }, - "timeout": { - "type": "integer", - "description": "Function maximum execution time in seconds.", - "x-example": 1, - "format": "int32" - }, - "enabled": { - "type": "boolean", - "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.", - "x-example": false - }, - "logging": { - "type": "boolean", - "description": "When disabled, executions will exclude logs and errors, and will be slightly faster.", - "x-example": false - }, - "entrypoint": { - "type": "string", - "description": "Entrypoint File. This path is relative to the \"providerRootDirectory\".", - "x-example": "" - }, - "commands": { - "type": "string", - "description": "Build Commands.", - "x-example": "" - }, - "scopes": { - "type": "array", - "description": "List of scopes allowed for API key auto-generated for every execution. Maximum of 100 scopes are allowed.", - "x-example": null, - "items": { - "type": "string", - "enum": [ - "sessions.write", - "users.read", - "users.write", - "teams.read", - "teams.write", - "databases.read", - "databases.write", - "collections.read", - "collections.write", - "tables.read", - "tables.write", - "attributes.read", - "attributes.write", - "columns.read", - "columns.write", - "indexes.read", - "indexes.write", - "documents.read", - "documents.write", - "rows.read", - "rows.write", - "files.read", - "files.write", - "buckets.read", - "buckets.write", - "functions.read", - "functions.write", - "sites.read", - "sites.write", - "log.read", - "log.write", - "execution.read", - "execution.write", - "locale.read", - "avatars.read", - "health.read", - "providers.read", - "providers.write", - "messages.read", - "messages.write", - "topics.read", - "topics.write", - "subscribers.read", - "subscribers.write", - "targets.read", - "targets.write", - "rules.read", - "rules.write", - "schedules.read", - "schedules.write", - "migrations.read", - "migrations.write", - "vcs.read", - "vcs.write", - "assistant.read", - "tokens.read", - "tokens.write", - "policies.write", - "policies.read", - "archives.read", - "archives.write", - "restorations.read", - "restorations.write", - "domains.read", - "domains.write", - "events.read" - ], - "x-enum-name": null, - "x-enum-keys": [] - } - }, - "installationId": { - "type": "string", - "description": "Appwrite Installation ID for VCS (Version Control System) deployment.", - "x-example": "" - }, - "providerRepositoryId": { - "type": "string", - "description": "Repository ID of the repo linked to the function.", - "x-example": "" - }, - "providerBranch": { - "type": "string", - "description": "Production branch for the repo linked to the function.", - "x-example": "" - }, - "providerSilentMode": { - "type": "boolean", - "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.", - "x-example": false - }, - "providerRootDirectory": { - "type": "string", - "description": "Path to function code in the linked repo.", - "x-example": "" - }, - "specification": { - "type": "string", - "description": "Runtime specification for the function and builds.", - "x-example": null - } - }, - "required": [ - "functionId", - "name", - "runtime" - ] + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "x-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\n for using ProtonMail with your custom domain.", + "responses": { + "201": { + "description": "DNS records list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecordsList" + } } } } - } + }, + "deprecated": false, + "x-appwrite": { + "method": "createPresetProtonMail", + "group": null, + "weight": 683, + "cookies": false, + "type": "", + "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": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ] } }, - "\/functions\/runtimes": { + "\/domains\/{domainId}\/presets\/zoho": { "get": { - "summary": "List runtimes", - "operationId": "functionsListRuntimes", + "summary": "Get Zoho preset (Records)", + "operationId": "domainsGetPresetZoho", "tags": [ - "functions" + "domains" ], - "description": "Get a list of all runtimes that are currently active on your instance.", + "description": " List Zoho DNS records.", "responses": { - "200": { - "description": "Runtimes List", + "201": { + "description": "DNS records list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/runtimeList" + "$ref": "#\/components\/schemas\/dnsRecordsList" } } } @@ -21743,19 +22118,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "listRuntimes", - "group": "runtimes", - "weight": 563, + "method": "getPresetZoho", + "group": null, + "weight": 682, "cookies": false, "type": "", - "demo": "functions\/list-runtimes.md", + "demo": "domains\/get-preset-zoho.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "domains.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -21765,27 +22139,36 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" } ] - } - }, - "\/functions\/specifications": { - "get": { - "summary": "List specifications", - "operationId": "functionsListSpecifications", + }, + "post": { + "summary": "Create Zoho Mail preset (Records)", + "operationId": "domainsCreatePresetZoho", "tags": [ - "functions" + "domains" ], - "description": "List allowed function specifications for this instance.", + "description": " Add Zoho Mail DNS records to the domain. This will create the required MX records\n for setting up Zoho Mail on your domain.", "responses": { - "200": { - "description": "Specifications List", + "201": { + "description": "DNS records list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/specificationList" + "$ref": "#\/components\/schemas\/dnsRecordsList" } } } @@ -21793,18 +22176,17 @@ }, "deprecated": false, "x-appwrite": { - "method": "listSpecifications", - "group": "runtimes", - "weight": 564, + "method": "createPresetZoho", + "group": null, + "weight": 681, "cookies": false, "type": "", - "demo": "functions\/list-specifications.md", + "demo": "domains\/create-preset-zoho.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", + "scope": "domains.write", "platforms": [ - "server", "console" ], "packaging": false, @@ -21815,27 +22197,38 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" } ] } }, - "\/functions\/templates": { + "\/domains\/{domainId}\/records": { "get": { - "summary": "List templates", - "operationId": "functionsListTemplates", + "summary": "List DNS records for a given domain.", + "operationId": "domainsListRecords", "tags": [ - "functions" + "domains" ], - "description": "List available function templates. You can use template details in [createFunction](\/docs\/references\/cloud\/server-nodejs\/functions#create) method.", + "description": " List DNS records for a given domain. You can use this endpoint to list all the DNS records\n associated with your domain.", "responses": { "200": { - "description": "Function Templates List", + "description": "DNS records list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/templateFunctionList" + "$ref": "#\/components\/schemas\/dnsRecordsList" } } } @@ -21843,16 +22236,16 @@ }, "deprecated": false, "x-appwrite": { - "method": "listTemplates", - "group": "templates", - "weight": 587, + "method": "listRecords", + "group": null, + "weight": 676, "cookies": false, "type": "", - "demo": "functions\/list-templates.md", + "demo": "domains\/list-records.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "domains.read", "platforms": [ "console" ], @@ -21869,188 +22262,46 @@ ], "parameters": [ { - "name": "runtimes", - "description": "List of runtimes allowed for filtering function templates. Maximum of 100 runtimes are allowed.", + "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", - "enum": [ - "node-14.5", - "node-16.0", - "node-18.0", - "node-19.0", - "node-20.0", - "node-21.0", - "node-22", - "node-23", - "node-24", - "node-25", - "php-8.0", - "php-8.1", - "php-8.2", - "php-8.3", - "php-8.4", - "ruby-3.0", - "ruby-3.1", - "ruby-3.2", - "ruby-3.3", - "ruby-3.4", - "ruby-4.0", - "python-3.8", - "python-3.9", - "python-3.10", - "python-3.11", - "python-3.12", - "python-3.13", - "python-3.14", - "python-ml-3.11", - "python-ml-3.12", - "python-ml-3.13", - "deno-1.21", - "deno-1.24", - "deno-1.35", - "deno-1.40", - "deno-1.46", - "deno-2.0", - "deno-2.5", - "deno-2.6", - "dart-2.15", - "dart-2.16", - "dart-2.17", - "dart-2.18", - "dart-2.19", - "dart-3.0", - "dart-3.1", - "dart-3.3", - "dart-3.5", - "dart-3.8", - "dart-3.9", - "dart-3.10", - "dotnet-6.0", - "dotnet-7.0", - "dotnet-8.0", - "dotnet-10", - "java-8.0", - "java-11.0", - "java-17.0", - "java-18.0", - "java-21.0", - "java-22", - "java-25", - "swift-5.5", - "swift-5.8", - "swift-5.9", - "swift-5.10", - "swift-6.2", - "kotlin-1.6", - "kotlin-1.8", - "kotlin-1.9", - "kotlin-2.0", - "kotlin-2.3", - "cpp-17", - "cpp-20", - "bun-1.0", - "bun-1.1", - "bun-1.2", - "bun-1.3", - "go-1.23", - "go-1.24", - "go-1.25", - "go-1.26", - "static-1", - "flutter-3.24", - "flutter-3.27", - "flutter-3.29", - "flutter-3.32", - "flutter-3.35", - "flutter-3.38" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "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": { - "type": "string", - "enum": [ - "starter", - "databases", - "ai", - "messaging", - "utilities", - "dev-tools", - "auth" - ], - "x-enum-name": null, - "x-enum-keys": [] + "type": "string" }, "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", - "x-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", - "x-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, + "name": "domainId", + "description": "Domain unique ID.", + "required": true, "schema": { - "type": "boolean", - "x-example": false, - "default": true + "type": "string", + "x-example": "" }, - "in": "query" + "in": "path" } ] } }, - "\/functions\/templates\/{templateId}": { - "get": { - "summary": "Get function template", - "operationId": "functionsGetTemplate", + "\/domains\/{domainId}\/records\/a": { + "post": { + "summary": "Create a new A record for the given domain.", + "operationId": "domainsCreateRecordA", "tags": [ - "functions" + "domains" ], - "description": "Get a function template using ID. You can use template details in [createFunction](\/docs\/references\/cloud\/server-nodejs\/functions#create) method.", + "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": { - "200": { - "description": "Template Function", + "201": { + "description": "DNSRecord", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/templateFunction" + "$ref": "#\/components\/schemas\/dnsRecord" } } } @@ -22058,16 +22309,16 @@ }, "deprecated": false, "x-appwrite": { - "method": "getTemplate", - "group": "templates", - "weight": 586, + "method": "createRecordA", + "group": null, + "weight": 654, "cookies": false, "type": "", - "demo": "functions\/get-template.md", + "demo": "domains\/create-record-a.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "domains.write", "platforms": [ "console" ], @@ -22084,33 +22335,70 @@ ], "parameters": [ { - "name": "templateId", - "description": "Template ID.", + "name": "domainId", + "description": "Domain unique ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Record name (subdomain).", + "x-example": "" + }, + "value": { + "type": "string", + "description": "IPv4 address for this A record.", + "x-example": null + }, + "ttl": { + "type": "integer", + "description": "Time to live, in seconds. Must be greater than 0.", + "x-example": 1, + "format": "int32" + }, + "comment": { + "type": "string", + "description": "A comment explaining what this record is for.", + "x-example": "" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } } }, - "\/functions\/usage": { - "get": { - "summary": "Get functions usage", - "operationId": "functionsListUsage", + "\/domains\/{domainId}\/records\/a\/{recordId}": { + "put": { + "summary": "Update an existing A record for the given domain.", + "operationId": "domainsUpdateRecordA", "tags": [ - "functions" + "domains" ], - "description": "Get usage metrics and statistics for all functions in the project. View statistics including total deployments, builds, logs, storage usage, and compute time. The response includes both current totals and historical data for each metric. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, defaults to 30 days.", + "description": " Update an existing A record for the given domain. This endpoint allows you to modify \n the properties of an A record including its name (subdomain), IPv4 address, TTL, \n and optional comment.", "responses": { "200": { - "description": "UsageFunctions", + "description": "DNSRecord", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/usageFunctions" + "$ref": "#\/components\/schemas\/dnsRecord" } } } @@ -22118,16 +22406,16 @@ }, "deprecated": false, "x-appwrite": { - "method": "listUsage", + "method": "updateRecordA", "group": null, - "weight": 580, + "weight": 655, "cookies": false, "type": "", - "demo": "functions\/list-usage.md", + "demo": "domains\/update-record-a.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", + "scope": "domains.write", "platforms": [ "console" ], @@ -22144,45 +22432,80 @@ ], "parameters": [ { - "name": "range", - "description": "Date range.", - "required": false, + "name": "domainId", + "description": "Domain unique ID.", + "required": true, "schema": { "type": "string", - "x-example": "24h", - "enum": [ - "24h", - "30d", - "90d" - ], - "x-enum-name": "UsageRange", - "x-enum-keys": [ - "Twenty Four Hours", - "Thirty Days", - "Ninety Days" - ], - "default": "30d" + "x-example": "" }, - "in": "query" + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Record name (subdomain).", + "x-example": "" + }, + "value": { + "type": "string", + "description": "IPv4 address for this A record.", + "x-example": null + }, + "ttl": { + "type": "integer", + "description": "Time to live, in seconds. Must be greater than 0.", + "x-example": 1, + "format": "int32" + }, + "comment": { + "type": "string", + "description": "A comment explaining what this record is for.", + "x-example": "" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } } }, - "\/functions\/{functionId}": { - "get": { - "summary": "Get function", - "operationId": "functionsGet", + "\/domains\/{domainId}\/records\/aaaa": { + "post": { + "summary": "Create a new AAAA record for the given domain.", + "operationId": "domainsCreateRecordAAAA", "tags": [ - "functions" + "domains" ], - "description": "Get a function by its unique ID.", + "description": " Create a new AAAA record for the given domain. This endpoint allows you to add a new IPv6 DNS record \n to your domain. The record will be used to point a hostname to an IPv6 address.", "responses": { - "200": { - "description": "Function", + "201": { + "description": "DNSRecord", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/function" + "$ref": "#\/components\/schemas\/dnsRecord" } } } @@ -22190,19 +22513,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": "functions", - "weight": 559, + "method": "createRecordAAAA", + "group": null, + "weight": 656, "cookies": false, "type": "", - "demo": "functions\/get.md", + "demo": "domains\/create-record-aaaa.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", + "scope": "domains.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -22212,37 +22534,75 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "domainId", + "description": "Domain unique ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" } - ] - }, + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Record name (subdomain).", + "x-example": "" + }, + "value": { + "type": "string", + "description": "IPv6 address for this AAAA record.", + "x-example": null + }, + "ttl": { + "type": "integer", + "description": "Time to live, in seconds. Must be greater than 0.", + "x-example": 1, + "format": "int32" + }, + "comment": { + "type": "string", + "description": "A comment explaining what this record is for.", + "x-example": "" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/aaaa\/{recordId}": { "put": { - "summary": "Update function", - "operationId": "functionsUpdate", + "summary": "Update an existing AAAA record for the given domain.", + "operationId": "domainsUpdateRecordAAAA", "tags": [ - "functions" + "domains" ], - "description": "Update function by its unique ID.", + "description": " Update an existing AAAA record for the given domain. This endpoint allows you to modify\n the properties of an existing AAAA record, including its name (subdomain), IPv6 address,\n TTL, and optional comment.", "responses": { "200": { - "description": "Function", + "description": "DNSRecord", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/function" + "$ref": "#\/components\/schemas\/dnsRecord" } } } @@ -22250,19 +22610,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "update", - "group": "functions", - "weight": 560, + "method": "updateRecordAAAA", + "group": null, + "weight": 657, "cookies": false, "type": "", - "demo": "functions\/update.md", + "demo": "domains\/update-record-aaaa.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", + "scope": "domains.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -22272,18 +22631,27 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "domainId", + "description": "Domain unique ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" }, "in": "path" } @@ -22296,341 +22664,52 @@ "properties": { "name": { "type": "string", - "description": "Function name. Max length: 128 chars.", + "description": "Record name (subdomain).", "x-example": "" }, - "runtime": { - "type": "string", - "description": "Execution runtime.", - "x-example": "node-14.5", - "enum": [ - "node-14.5", - "node-16.0", - "node-18.0", - "node-19.0", - "node-20.0", - "node-21.0", - "node-22", - "node-23", - "node-24", - "node-25", - "php-8.0", - "php-8.1", - "php-8.2", - "php-8.3", - "php-8.4", - "ruby-3.0", - "ruby-3.1", - "ruby-3.2", - "ruby-3.3", - "ruby-3.4", - "ruby-4.0", - "python-3.8", - "python-3.9", - "python-3.10", - "python-3.11", - "python-3.12", - "python-3.13", - "python-3.14", - "python-ml-3.11", - "python-ml-3.12", - "python-ml-3.13", - "deno-1.21", - "deno-1.24", - "deno-1.35", - "deno-1.40", - "deno-1.46", - "deno-2.0", - "deno-2.5", - "deno-2.6", - "dart-2.15", - "dart-2.16", - "dart-2.17", - "dart-2.18", - "dart-2.19", - "dart-3.0", - "dart-3.1", - "dart-3.3", - "dart-3.5", - "dart-3.8", - "dart-3.9", - "dart-3.10", - "dotnet-6.0", - "dotnet-7.0", - "dotnet-8.0", - "dotnet-10", - "java-8.0", - "java-11.0", - "java-17.0", - "java-18.0", - "java-21.0", - "java-22", - "java-25", - "swift-5.5", - "swift-5.8", - "swift-5.9", - "swift-5.10", - "swift-6.2", - "kotlin-1.6", - "kotlin-1.8", - "kotlin-1.9", - "kotlin-2.0", - "kotlin-2.3", - "cpp-17", - "cpp-20", - "bun-1.0", - "bun-1.1", - "bun-1.2", - "bun-1.3", - "go-1.23", - "go-1.24", - "go-1.25", - "go-1.26", - "static-1", - "flutter-3.24", - "flutter-3.27", - "flutter-3.29", - "flutter-3.32", - "flutter-3.35", - "flutter-3.38" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "execute": { - "type": "array", - "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.", - "x-example": "[\"any\"]", - "items": { - "type": "string" - } - }, - "events": { - "type": "array", - "description": "Events list. Maximum of 100 events are allowed.", - "x-example": null, - "items": { - "type": "string" - } - }, - "schedule": { + "value": { "type": "string", - "description": "Schedule CRON syntax.", + "description": "IPv6 address for this AAAA record.", "x-example": null }, - "timeout": { + "ttl": { "type": "integer", - "description": "Maximum execution time in seconds.", + "description": "Time to live, in seconds. Must be greater than 0.", "x-example": 1, "format": "int32" }, - "enabled": { - "type": "boolean", - "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.", - "x-example": false - }, - "logging": { - "type": "boolean", - "description": "When disabled, executions will exclude logs and errors, and will be slightly faster.", - "x-example": false - }, - "entrypoint": { - "type": "string", - "description": "Entrypoint File. This path is relative to the \"providerRootDirectory\".", - "x-example": "" - }, - "commands": { - "type": "string", - "description": "Build Commands.", - "x-example": "" - }, - "scopes": { - "type": "array", - "description": "List of scopes allowed for API Key auto-generated for every execution. Maximum of 100 scopes are allowed.", - "x-example": null, - "items": { - "type": "string", - "enum": [ - "sessions.write", - "users.read", - "users.write", - "teams.read", - "teams.write", - "databases.read", - "databases.write", - "collections.read", - "collections.write", - "tables.read", - "tables.write", - "attributes.read", - "attributes.write", - "columns.read", - "columns.write", - "indexes.read", - "indexes.write", - "documents.read", - "documents.write", - "rows.read", - "rows.write", - "files.read", - "files.write", - "buckets.read", - "buckets.write", - "functions.read", - "functions.write", - "sites.read", - "sites.write", - "log.read", - "log.write", - "execution.read", - "execution.write", - "locale.read", - "avatars.read", - "health.read", - "providers.read", - "providers.write", - "messages.read", - "messages.write", - "topics.read", - "topics.write", - "subscribers.read", - "subscribers.write", - "targets.read", - "targets.write", - "rules.read", - "rules.write", - "schedules.read", - "schedules.write", - "migrations.read", - "migrations.write", - "vcs.read", - "vcs.write", - "assistant.read", - "tokens.read", - "tokens.write", - "policies.write", - "policies.read", - "archives.read", - "archives.write", - "restorations.read", - "restorations.write", - "domains.read", - "domains.write", - "events.read" - ], - "x-enum-name": null, - "x-enum-keys": [] - } - }, - "installationId": { - "type": "string", - "description": "Appwrite Installation ID for VCS (Version Controle System) deployment.", - "x-example": "" - }, - "providerRepositoryId": { - "type": "string", - "description": "Repository ID of the repo linked to the function", - "x-example": "", - "x-nullable": true - }, - "providerBranch": { - "type": "string", - "description": "Production branch for the repo linked to the function", - "x-example": "" - }, - "providerSilentMode": { - "type": "boolean", - "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.", - "x-example": false - }, - "providerRootDirectory": { - "type": "string", - "description": "Path to function code in the linked repo.", - "x-example": "" - }, - "specification": { + "comment": { "type": "string", - "description": "Runtime specification for the function and builds.", - "x-example": null + "description": "A comment for this record.", + "x-example": "" } }, "required": [ - "name" + "name", + "value", + "ttl" ] } } } } - }, - "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": { - "method": "delete", - "group": "functions", - "weight": 562, - "cookies": false, - "type": "", - "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": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - } - ] } }, - "\/functions\/{functionId}\/deployment": { - "patch": { - "summary": "Update function's deployment", - "operationId": "functionsUpdateFunctionDeployment", + "\/domains\/{domainId}\/records\/alias": { + "post": { + "summary": "Create a new ALIAS record for the given domain.", + "operationId": "domainsCreateRecordAlias", "tags": [ - "functions" + "domains" ], - "description": "Update the function active deployment. Use this endpoint to switch the code deployment that should be used when visitor opens your function.", + "description": " Create a new ALIAS record for the given domain. This record type can be used to point your domain \n to another domain name that will serve as an alias. This is particularly useful when you want to \n map your domain to a target domain that may change its IP address.", "responses": { - "200": { - "description": "Function", + "201": { + "description": "DNSRecord", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/function" + "$ref": "#\/components\/schemas\/dnsRecord" } } } @@ -22638,19 +22717,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateFunctionDeployment", - "group": "functions", - "weight": 567, + "method": "createRecordAlias", + "group": null, + "weight": 658, "cookies": false, "type": "", - "demo": "functions\/update-function-deployment.md", + "demo": "domains\/create-record-alias.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", + "scope": "domains.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -22660,18 +22738,17 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "domainId", + "description": "Domain unique ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" } @@ -22682,14 +22759,32 @@ "schema": { "type": "object", "properties": { - "deploymentId": { + "name": { "type": "string", - "description": "Deployment ID.", - "x-example": "" + "description": "Record name.", + "x-example": "" + }, + "value": { + "type": "string", + "description": "Target domain for this ALIAS record.", + "x-example": "" + }, + "ttl": { + "type": "integer", + "description": "Time to live, in seconds. Must be greater than 0.", + "x-example": 1, + "format": "int32" + }, + "comment": { + "type": "string", + "description": "A comment for this record.", + "x-example": "" } }, "required": [ - "deploymentId" + "name", + "value", + "ttl" ] } } @@ -22697,21 +22792,21 @@ } } }, - "\/functions\/{functionId}\/deployments": { - "get": { - "summary": "List deployments", - "operationId": "functionsListDeployments", + "\/domains\/{domainId}\/records\/alias\/{recordId}": { + "put": { + "summary": "Update an existing ALIAS record for the given domain.", + "operationId": "domainsUpdateRecordAlias", "tags": [ - "functions" + "domains" ], - "description": "Get a list of all the function's code deployments. You can use the query params to filter your results.", + "description": " Update an existing ALIAS record for the specified domain. This endpoint allows you to modify\n the properties of an existing ALIAS record including its name, target domain, TTL, and comment.\n \n The ALIAS record type is similar to a CNAME record but can be used at the zone apex (root domain).\n It provides a way to map one domain name to another.", "responses": { "200": { - "description": "Deployments List", + "description": "DNSRecord", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/deploymentList" + "$ref": "#\/components\/schemas\/dnsRecord" } } } @@ -22719,19 +22814,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "listDeployments", - "group": "deployments", - "weight": 568, + "method": "updateRecordAlias", + "group": null, + "weight": 659, "cookies": false, "type": "", - "demo": "functions\/list-deployments.md", + "demo": "domains\/update-record-alias.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", + "scope": "domains.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -22741,150 +22835,63 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "domainId", + "description": "Domain unique ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" }, { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: 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", - "x-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", - "x-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": { - "method": "createDeployment", - "group": "deployments", - "weight": 565, - "cookies": false, - "type": "upload", - "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": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function ID.", + "name": "recordId", + "description": "DNS record unique ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" } ], "requestBody": { "content": { - "multipart\/form-data": { + "application\/json": { "schema": { "type": "object", "properties": { - "entrypoint": { + "name": { "type": "string", - "description": "Entrypoint File.", - "x-example": "", - "x-nullable": true + "description": "Record name.", + "x-example": "" }, - "commands": { + "value": { "type": "string", - "description": "Build Commands.", - "x-example": "", - "x-nullable": true + "description": "Target domain for this ALIAS record.", + "x-example": "" }, - "code": { - "type": "string", - "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.", - "x-example": null, - "format": "binary" + "ttl": { + "type": "integer", + "description": "Time to live, in seconds. Must be greater than 0.", + "x-example": 1, + "format": "int32" }, - "activate": { - "type": "boolean", - "description": "Automatically activate the deployment when it is finished building.", - "x-example": false + "comment": { + "type": "string", + "description": "A comment for this record.", + "x-example": "" } }, "required": [ - "code", - "activate" + "name", + "value", + "ttl" ] } } @@ -22892,21 +22899,21 @@ } } }, - "\/functions\/{functionId}\/deployments\/duplicate": { + "\/domains\/{domainId}\/records\/caa": { "post": { - "summary": "Create duplicate deployment", - "operationId": "functionsCreateDuplicateDeployment", + "summary": "Create a new CAA record for the given domain.", + "operationId": "domainsCreateRecordCAA", "tags": [ - "functions" + "domains" ], - "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.", + "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": { - "202": { - "description": "Deployment", + "201": { + "description": "DNSRecord", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/deployment" + "$ref": "#\/components\/schemas\/dnsRecord" } } } @@ -22914,19 +22921,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "createDuplicateDeployment", - "group": "deployments", - "weight": 573, + "method": "createRecordCAA", + "group": null, + "weight": 660, "cookies": false, "type": "", - "demo": "functions\/create-duplicate-deployment.md", + "demo": "domains\/create-record-caa.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", + "scope": "domains.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -22936,18 +22942,17 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "domainId", + "description": "Domain unique ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" } @@ -22958,19 +22963,32 @@ "schema": { "type": "object", "properties": { - "deploymentId": { + "name": { "type": "string", - "description": "Deployment ID.", - "x-example": "" + "description": "Record name.", + "x-example": null }, - "buildId": { + "value": { "type": "string", - "description": "Build unique ID.", - "x-example": "" + "description": "CAA value (e.g. issuer domain).", + "x-example": null + }, + "ttl": { + "type": "integer", + "description": "Time to live, in seconds. Must be greater than 0.", + "x-example": 1, + "format": "int32" + }, + "comment": { + "type": "string", + "description": "A comment for this record.", + "x-example": "" } }, "required": [ - "deploymentId" + "name", + "value", + "ttl" ] } } @@ -22978,21 +22996,21 @@ } } }, - "\/functions\/{functionId}\/deployments\/template": { - "post": { - "summary": "Create template deployment", - "operationId": "functionsCreateTemplateDeployment", + "\/domains\/{domainId}\/records\/caa\/{recordId}": { + "put": { + "summary": "Update an existing CAA record for the given domain.", + "operationId": "domainsUpdateRecordCAA", "tags": [ - "functions" + "domains" ], - "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.", + "description": " Update an existing CAA record for the given domain. A CAA (Certification Authority Authorization) \n record is used to specify which certificate authorities (CAs) are authorized to issue certificates \n for a domain.", "responses": { - "202": { - "description": "Deployment", + "200": { + "description": "DNSRecord", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/deployment" + "$ref": "#\/components\/schemas\/dnsRecord" } } } @@ -23000,19 +23018,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "createTemplateDeployment", - "group": "deployments", - "weight": 570, + "method": "updateRecordCAA", + "group": null, + "weight": 661, "cookies": false, "type": "", - "demo": "functions\/create-template-deployment.md", + "demo": "domains\/update-record-caa.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", + "scope": "domains.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -23022,18 +23039,27 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "domainId", + "description": "Domain unique ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" }, "in": "path" } @@ -23044,50 +23070,32 @@ "schema": { "type": "object", "properties": { - "repository": { - "type": "string", - "description": "Repository name of the template.", - "x-example": "" - }, - "owner": { + "name": { "type": "string", - "description": "The name of the owner of the template.", - "x-example": "" + "description": "Record name.", + "x-example": null }, - "rootDirectory": { + "value": { "type": "string", - "description": "Path to function code in the template repo.", - "x-example": "" + "description": "CAA value (e.g. issuer domain).", + "x-example": null }, - "type": { - "type": "string", - "description": "Type for the reference provided. Can be commit, branch, or tag", - "x-example": "commit", - "enum": [ - "commit", - "branch", - "tag" - ], - "x-enum-name": "TemplateReferenceType", - "x-enum-keys": [] + "ttl": { + "type": "integer", + "description": "Time to live, in seconds. Must be greater than 0.", + "x-example": 1, + "format": "int32" }, - "reference": { + "comment": { "type": "string", - "description": "Reference value, can be a commit hash, branch name, or release tag", - "x-example": "" - }, - "activate": { - "type": "boolean", - "description": "Automatically activate the deployment when it is finished building.", - "x-example": false + "description": "A comment for this record.", + "x-example": "" } }, "required": [ - "repository", - "owner", - "rootDirectory", - "type", - "reference" + "name", + "value", + "ttl" ] } } @@ -23095,21 +23103,21 @@ } } }, - "\/functions\/{functionId}\/deployments\/vcs": { + "\/domains\/{domainId}\/records\/cname": { "post": { - "summary": "Create VCS deployment", - "operationId": "functionsCreateVcsDeployment", + "summary": "Create a new CNAME record for the given domain.", + "operationId": "domainsCreateRecordCNAME", "tags": [ - "functions" + "domains" ], - "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.", + "description": " Create a new CNAME record for the given domain.\n \n A CNAME record maps a subdomain to another domain name, allowing you to create aliases \n for your domain. For example, you can create a CNAME record to point 'blog.example.com' \n to 'example.wordpress.com'.", "responses": { - "202": { - "description": "Deployment", + "201": { + "description": "DNSRecord", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/deployment" + "$ref": "#\/components\/schemas\/dnsRecord" } } } @@ -23117,19 +23125,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "createVcsDeployment", - "group": "deployments", - "weight": 571, + "method": "createRecordCNAME", + "group": null, + "weight": 662, "cookies": false, "type": "", - "demo": "functions\/create-vcs-deployment.md", + "demo": "domains\/create-record-cname.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", + "scope": "domains.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -23139,18 +23146,17 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "domainId", + "description": "Domain unique ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" } @@ -23161,31 +23167,32 @@ "schema": { "type": "object", "properties": { - "type": { + "name": { "type": "string", - "description": "Type of reference passed. Allowed values are: branch, commit", - "x-example": "branch", - "enum": [ - "branch", - "commit" - ], - "x-enum-name": "VCSReferenceType", - "x-enum-keys": [] + "description": "Record name (subdomain).", + "x-example": "" }, - "reference": { + "value": { "type": "string", - "description": "VCS reference to create deployment from. Depending on type this can be: branch name, commit hash", - "x-example": "" + "description": "Canonical target for this CNAME record.", + "x-example": "" }, - "activate": { - "type": "boolean", - "description": "Automatically activate the deployment when it is finished building.", - "x-example": false + "ttl": { + "type": "integer", + "description": "Time to live, in seconds. Must be greater than 0.", + "x-example": 1, + "format": "int32" + }, + "comment": { + "type": "string", + "description": "A comment for this record.", + "x-example": "" } }, "required": [ - "type", - "reference" + "name", + "value", + "ttl" ] } } @@ -23193,21 +23200,21 @@ } } }, - "\/functions\/{functionId}\/deployments\/{deploymentId}": { - "get": { - "summary": "Get deployment", - "operationId": "functionsGetDeployment", + "\/domains\/{domainId}\/records\/cname\/{recordId}": { + "put": { + "summary": "Update an existing CNAME record for the given domain.", + "operationId": "domainsUpdateRecordCNAME", "tags": [ - "functions" + "domains" ], - "description": "Get a function deployment by its unique ID.", + "description": " Update an existing CNAME record for the given domain.", "responses": { "200": { - "description": "Deployment", + "description": "DNSRecord", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/deployment" + "$ref": "#\/components\/schemas\/dnsRecord" } } } @@ -23215,19 +23222,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "getDeployment", - "group": "deployments", - "weight": 566, + "method": "updateRecordCNAME", + "group": null, + "weight": 663, "cookies": false, "type": "", - "demo": "functions\/get-deployment.md", + "demo": "domains\/update-record-cname.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", + "scope": "domains.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -23237,60 +23243,104 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "domainId", + "description": "Domain unique ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" }, { - "name": "deploymentId", - "description": "Deployment ID.", + "name": "recordId", + "description": "DNS record unique ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" } - ] - }, - "delete": { - "summary": "Delete deployment", - "operationId": "functionsDeleteDeployment", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Record name (subdomain).", + "x-example": "" + }, + "value": { + "type": "string", + "description": "Canonical target for this CNAME record.", + "x-example": "" + }, + "ttl": { + "type": "integer", + "description": "Time to live, in seconds. Must be greater than 0.", + "x-example": 1, + "format": "int32" + }, + "comment": { + "type": "string", + "description": "A comment for this record.", + "x-example": "" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/https": { + "post": { + "summary": "Create a new HTTPS record for the given domain.", + "operationId": "domainsCreateRecordHTTPS", "tags": [ - "functions" + "domains" ], - "description": "Delete a code deployment by its unique ID.", + "description": " Create a new HTTPS record for the given domain. This record is used to configure HTTPS \n settings for your domain, enabling secure communication over SSL\/TLS.", "responses": { - "204": { - "description": "No content" + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteDeployment", - "group": "deployments", - "weight": 569, + "method": "createRecordHTTPS", + "group": null, + "weight": 664, "cookies": false, "type": "", - "demo": "functions\/delete-deployment.md", + "demo": "domains\/create-record-https.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", + "scope": "domains.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -23300,63 +23350,94 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - }, - { - "name": "deploymentId", - "description": "Deployment ID.", + "name": "domainId", + "description": "Domain unique ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Record name (subdomain).", + "x-example": "" + }, + "value": { + "type": "string", + "description": "Target for the HTTPS record.", + "x-example": "" + }, + "ttl": { + "type": "integer", + "description": "Time to live, in seconds. Must be greater than 0.", + "x-example": 1, + "format": "int32" + }, + "comment": { + "type": "string", + "description": "A comment for this record.", + "x-example": "" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } } }, - "\/functions\/{functionId}\/deployments\/{deploymentId}\/download": { - "get": { - "summary": "Get deployment download", - "operationId": "functionsGetDeploymentDownload", + "\/domains\/{domainId}\/records\/https\/{recordId}": { + "put": { + "summary": "Update an existing HTTPS record for the given domain.", + "operationId": "domainsUpdateRecordHTTPS", "tags": [ - "functions" + "domains" ], - "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.", + "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": "File" + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "getDeploymentDownload", - "group": "deployments", - "weight": 572, + "method": "updateRecordHTTPS", + "group": null, + "weight": 665, "cookies": false, - "type": "location", - "demo": "functions\/get-deployment-download.md", + "type": "", + "demo": "domains\/update-record-https.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", + "scope": "domains.write", "platforms": [ - "console", - "server", - "server" + "console" ], "packaging": false, "public": true, @@ -23366,67 +23447,85 @@ }, "security": [ { - "Project": [], - "Key": [], - "JWT": [] + "Project": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "domainId", + "description": "Domain unique ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" }, { - "name": "deploymentId", - "description": "Deployment ID.", + "name": "recordId", + "description": "DNS record unique ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" - }, - { - "name": "type", - "description": "Deployment file to download. Can be: \"source\", \"output\".", - "required": false, - "schema": { - "type": "string", - "x-example": "source", - "enum": [ - "source", - "output" - ], - "x-enum-name": "DeploymentDownloadType", - "x-enum-keys": [], - "default": "source" - }, - "in": "query" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Record name (subdomain).", + "x-example": "" + }, + "value": { + "type": "string", + "description": "Target for the HTTPS record.", + "x-example": "" + }, + "ttl": { + "type": "integer", + "description": "Time to live, in seconds. Must be greater than 0.", + "x-example": 1, + "format": "int32" + }, + "comment": { + "type": "string", + "description": "A comment for this record.", + "x-example": "" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } } }, - "\/functions\/{functionId}\/deployments\/{deploymentId}\/status": { - "patch": { - "summary": "Update deployment status", - "operationId": "functionsUpdateDeploymentStatus", + "\/domains\/{domainId}\/records\/mx": { + "post": { + "summary": "Create a new MX record for the given domain.", + "operationId": "domainsCreateRecordMX", "tags": [ - "functions" + "domains" ], - "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.", + "description": " Create a new MX record for the given domain. MX records are used to define the mail servers responsible \n for accepting email messages for the domain. Multiple MX records can be created with different priorities.\n The priority parameter determines the order in which mail servers are used, with lower values indicating \n higher priority.", "responses": { - "200": { - "description": "Deployment", + "201": { + "description": "DNSRecord", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/deployment" + "$ref": "#\/components\/schemas\/dnsRecord" } } } @@ -23434,19 +23533,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateDeploymentStatus", - "group": "deployments", - "weight": 574, + "method": "createRecordMX", + "group": null, + "weight": 666, "cookies": false, "type": "", - "demo": "functions\/update-deployment-status.md", + "demo": "domains\/create-record-mx.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", + "scope": "domains.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -23456,71 +23554,101 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - }, - { - "name": "deploymentId", - "description": "Deployment ID.", + "name": "domainId", + "description": "Domain unique ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-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": { - "method": "listExecutions", - "group": "executions", - "weight": 577, - "cookies": false, - "type": "", - "demo": "functions\/list-executions.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "execution.read", - "platforms": [ - "console", - "client", - "server", - "server" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Record name (subdomain).", + "x-example": "" + }, + "value": { + "type": "string", + "description": "Mail server domain for this MX record.", + "x-example": "" + }, + "ttl": { + "type": "integer", + "description": "Time to live, in seconds. Must be greater than 0.", + "x-example": 1, + "format": "int32" + }, + "priority": { + "type": "integer", + "description": "MX priority.", + "x-example": null, + "format": "int32" + }, + "comment": { + "type": "string", + "description": "A comment for this record.", + "x-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": { + "method": "updateRecordMX", + "group": null, + "weight": 667, + "cookies": false, + "type": "", + "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, @@ -23530,62 +23658,92 @@ }, "security": [ { - "Project": [], - "Key": [], - "JWT": [] + "Project": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "domainId", + "description": "Domain unique ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" }, { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: 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, + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, "schema": { - "type": "boolean", - "x-example": false, - "default": true + "type": "string", + "x-example": "" }, - "in": "query" + "in": "path" } - ] - }, + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Record name (subdomain).", + "x-example": "" + }, + "value": { + "type": "string", + "description": "Mail server domain for this MX record.", + "x-example": "" + }, + "ttl": { + "type": "integer", + "description": "Time to live, in seconds. Must be greater than 0.", + "x-example": 1, + "format": "int32" + }, + "priority": { + "type": "integer", + "description": "MX priority.", + "x-example": null, + "format": "int32" + }, + "comment": { + "type": "string", + "description": "A comment for this record.", + "x-example": "" + } + }, + "required": [ + "name", + "value", + "ttl", + "priority" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/ns": { "post": { - "summary": "Create execution", - "operationId": "functionsCreateExecution", + "summary": "Create a new NS record for the given domain.", + "operationId": "domainsCreateRecordNS", "tags": [ - "functions" + "domains" ], - "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.", + "description": " Create a new NS record for the given domain. NS records specify the nameservers that are used \n to resolve the domain name to IP addresses. Each domain can have multiple NS records.", "responses": { "201": { - "description": "Execution", + "description": "DNSRecord", "content": { - "multipart\/form-data": { + "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/execution" + "$ref": "#\/components\/schemas\/dnsRecord" } } } @@ -23593,21 +23751,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "createExecution", - "group": "executions", - "weight": 575, + "method": "createRecordNS", + "group": null, + "weight": 668, "cookies": false, "type": "", - "demo": "functions\/create-execution.md", + "demo": "domains\/create-record-ns.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "execution.write", + "scope": "domains.write", "platforms": [ - "console", - "client", - "server", - "server" + "console" ], "packaging": false, "public": true, @@ -23617,19 +23772,17 @@ }, "security": [ { - "Project": [], - "Key": [], - "JWT": [] + "Project": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "domainId", + "description": "Domain unique ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" } @@ -23640,70 +23793,54 @@ "schema": { "type": "object", "properties": { - "body": { - "type": "string", - "description": "HTTP body of execution. Default value is empty string.", - "x-example": "" - }, - "async": { - "type": "boolean", - "description": "Execute code in the background. Default value is false.", - "x-example": false - }, - "path": { + "name": { "type": "string", - "description": "HTTP path of execution. Path can include query params. Default value is \/", - "x-example": "" + "description": "Record name (subdomain).", + "x-example": "" }, - "method": { + "value": { "type": "string", - "description": "HTTP method of execution. Default value is POST.", - "x-example": "GET", - "enum": [ - "GET", - "POST", - "PUT", - "PATCH", - "DELETE", - "OPTIONS", - "HEAD" - ], - "x-enum-name": "ExecutionMethod", - "x-enum-keys": [] + "description": "Nameserver target for this NS record.", + "x-example": "" }, - "headers": { - "type": "object", - "description": "HTTP headers of execution. Defaults to empty.", - "x-example": "{}" + "ttl": { + "type": "integer", + "description": "Time to live, in seconds. Must be greater than 0.", + "x-example": 1, + "format": "int32" }, - "scheduledAt": { + "comment": { "type": "string", - "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.", - "x-example": "", - "x-nullable": true + "description": "A comment for this record.", + "x-example": "" } - } + }, + "required": [ + "name", + "value", + "ttl" + ] } } } } } }, - "\/functions\/{functionId}\/executions\/{executionId}": { - "get": { - "summary": "Get execution", - "operationId": "functionsGetExecution", + "\/domains\/{domainId}\/records\/ns\/{recordId}": { + "put": { + "summary": "Update an existing NS record for the given domain.", + "operationId": "domainsUpdateRecordNS", "tags": [ - "functions" + "domains" ], - "description": "Get a function execution log by its unique ID.", + "description": " Update an existing NS record for the given domain. This endpoint allows you to modify \n the properties of an NS (nameserver) record associated with your domain. You can update \n the record name (subdomain), target nameserver value, TTL, and add or modify comments \n for better record management.", "responses": { "200": { - "description": "Execution", + "description": "DNSRecord", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/execution" + "$ref": "#\/components\/schemas\/dnsRecord" } } } @@ -23711,21 +23848,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "getExecution", - "group": "executions", - "weight": 576, + "method": "updateRecordNS", + "group": null, + "weight": 669, "cookies": false, "type": "", - "demo": "functions\/get-execution.md", + "demo": "domains\/update-record-ns.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "execution.read", + "scope": "domains.write", "platforms": [ - "console", - "client", - "server", - "server" + "console" ], "packaging": false, "public": true, @@ -23735,61 +23869,104 @@ }, "security": [ { - "Project": [], - "Key": [], - "JWT": [] + "Project": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "domainId", + "description": "Domain unique ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" }, { - "name": "executionId", - "description": "Execution ID.", + "name": "recordId", + "description": "DNS record unique ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" } - ] - }, - "delete": { - "summary": "Delete execution", - "operationId": "functionsDeleteExecution", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Record name (subdomain).", + "x-example": "" + }, + "value": { + "type": "string", + "description": "Nameserver target for this NS record.", + "x-example": "" + }, + "ttl": { + "type": "integer", + "description": "Time to live, in seconds. Must be greater than 0.", + "x-example": 1, + "format": "int32" + }, + "comment": { + "type": "string", + "description": "A comment for this record.", + "x-example": "" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/srv": { + "post": { + "summary": "Create a new SRV record for the given domain.", + "operationId": "domainsCreateRecordSRV", "tags": [ - "functions" + "domains" ], - "description": "Delete a function execution by its unique ID.", + "description": " Create a new SRV record for the given domain. SRV records are used to define the location \n of servers for specific services. For example, they can be used to specify which server \n handles a specific service like SIP or XMPP for the domain.", "responses": { - "204": { - "description": "No content" + "201": { + "description": "DNSRecord", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/dnsRecord" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteExecution", - "group": "executions", - "weight": 578, + "method": "createRecordSRV", + "group": null, + "weight": 670, "cookies": false, "type": "", - "demo": "functions\/delete-execution.md", + "demo": "domains\/create-record-srv.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "execution.write", + "scope": "domains.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -23799,49 +23976,96 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - }, - { - "name": "executionId", - "description": "Execution ID.", + "name": "domainId", + "description": "Domain unique ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Record name (service name).", + "x-example": "" + }, + "value": { + "type": "string", + "description": "Target hostname for this SRV record.", + "x-example": "" + }, + "ttl": { + "type": "integer", + "description": "Time to live, in seconds. Must be greater than 0.", + "x-example": 1, + "format": "int32" + }, + "priority": { + "type": "integer", + "description": "Record priority.", + "x-example": null, + "format": "int32" + }, + "weight": { + "type": "integer", + "description": "Record weight.", + "x-example": null, + "format": "int32" + }, + "port": { + "type": "integer", + "description": "Port number for the service.", + "x-example": null, + "format": "int32" + }, + "comment": { + "type": "string", + "description": "A comment for this record.", + "x-example": "" + } + }, + "required": [ + "name", + "value", + "ttl", + "priority", + "weight", + "port" + ] + } + } + } + } } }, - "\/functions\/{functionId}\/usage": { - "get": { - "summary": "Get function usage", - "operationId": "functionsGetUsage", + "\/domains\/{domainId}\/records\/srv\/{recordId}": { + "put": { + "summary": "Update an existing SRV record for the given domain.", + "operationId": "domainsUpdateRecordSRV", "tags": [ - "functions" + "domains" ], - "description": "Get usage metrics and statistics for a for a specific function. View statistics including total deployments, builds, executions, storage usage, and compute time. The response includes both current totals and historical data for each metric. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, defaults to 30 days.", + "description": " Update an existing SRV record for the given domain.\n \n Required 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 \n Optional parameters:\n - comment: A comment for this record", "responses": { "200": { - "description": "UsageFunction", + "description": "DNSRecord", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/usageFunction" + "$ref": "#\/components\/schemas\/dnsRecord" } } } @@ -23849,16 +24073,16 @@ }, "deprecated": false, "x-appwrite": { - "method": "getUsage", + "method": "updateRecordSRV", "group": null, - "weight": 579, + "weight": 671, "cookies": false, "type": "", - "demo": "functions\/get-usage.md", + "demo": "domains\/update-record-srv.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", + "scope": "domains.write", "platforms": [ "console" ], @@ -23875,55 +24099,101 @@ ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "domainId", + "description": "Domain unique ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" }, { - "name": "range", - "description": "Date range.", - "required": false, + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, "schema": { "type": "string", - "x-example": "24h", - "enum": [ - "24h", - "30d", - "90d" - ], - "x-enum-name": "UsageRange", - "x-enum-keys": [ - "Twenty Four Hours", - "Thirty Days", - "Ninety Days" - ], - "default": "30d" + "x-example": "" }, - "in": "query" + "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Record name (service name).", + "x-example": "" + }, + "value": { + "type": "string", + "description": "Target hostname for this SRV record.", + "x-example": "" + }, + "ttl": { + "type": "integer", + "description": "Time to live, in seconds. Must be greater than 0.", + "x-example": 1, + "format": "int32" + }, + "priority": { + "type": "integer", + "description": "Record priority.", + "x-example": null, + "format": "int32" + }, + "weight": { + "type": "integer", + "description": "Record weight.", + "x-example": null, + "format": "int32" + }, + "port": { + "type": "integer", + "description": "Port number for the service.", + "x-example": null, + "format": "int32" + }, + "comment": { + "type": "string", + "description": "A comment for this record.", + "x-example": "" + } + }, + "required": [ + "name", + "value", + "ttl", + "priority", + "weight", + "port" + ] + } + } + } + } } }, - "\/functions\/{functionId}\/variables": { - "get": { - "summary": "List variables", - "operationId": "functionsListVariables", + "\/domains\/{domainId}\/records\/txt": { + "post": { + "summary": "Create a new TXT record for the given domain.", + "operationId": "domainsCreateRecordTXT", "tags": [ - "functions" + "domains" ], - "description": "Get a list of all variables of a specific function.", + "description": " Create a new TXT record for the given domain. TXT records can be used \n to provide additional information about your domain, such as domain \n verification records, SPF records, or DKIM records.", "responses": { - "200": { - "description": "Variables List", + "201": { + "description": "DNSRecord", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/variableList" + "$ref": "#\/components\/schemas\/dnsRecord" } } } @@ -23931,19 +24201,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "listVariables", - "group": "variables", - "weight": 583, + "method": "createRecordTXT", + "group": null, + "weight": 672, "cookies": false, "type": "", - "demo": "functions\/list-variables.md", + "demo": "domains\/create-record-txt.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", + "scope": "domains.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -23953,37 +24222,74 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function unique ID.", + "name": "domainId", + "description": "Domain unique ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" } - ] - }, - "post": { - "summary": "Create variable", - "operationId": "functionsCreateVariable", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Record name (subdomain) for the TXT record.", + "x-example": "" + }, + "value": { + "type": "string", + "description": "TXT record value.", + "x-example": "" + }, + "ttl": { + "type": "integer", + "description": "Time to live, in seconds. Must be greater than 0.", + "x-example": 1, + "format": "int32" + }, + "comment": { + "type": "string", + "description": "A comment for this record.", + "x-example": "" + } + }, + "required": [ + "name", + "ttl" + ] + } + } + } + } + } + }, + "\/domains\/{domainId}\/records\/txt\/{recordId}": { + "put": { + "summary": "Update an existing TXT record for the given domain.", + "operationId": "domainsUpdateRecordTXT", "tags": [ - "functions" + "domains" ], - "description": "Create a new function environment variable. These variables can be accessed in the function at runtime as environment variables.", + "description": " Update an existing TXT record for the given domain.\n \n Update the TXT record details for a specific domain by providing the domain ID,\n record ID, and the new record configuration including name, value, TTL, and an optional comment.", "responses": { - "201": { - "description": "Variable", + "200": { + "description": "DNSRecord", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/variable" + "$ref": "#\/components\/schemas\/dnsRecord" } } } @@ -23991,19 +24297,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "createVariable", - "group": "variables", - "weight": 581, + "method": "updateRecordTXT", + "group": null, + "weight": 673, "cookies": false, "type": "", - "demo": "functions\/create-variable.md", + "demo": "domains\/update-record-txt.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", + "scope": "domains.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -24013,18 +24318,27 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function unique ID.", + "name": "domainId", + "description": "Domain unique ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" + }, + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" }, "in": "path" } @@ -24035,25 +24349,32 @@ "schema": { "type": "object", "properties": { - "key": { + "name": { "type": "string", - "description": "Variable key. Max length: 255 chars.", - "x-example": "" + "description": "Record name (subdomain) for the TXT record.", + "x-example": "" }, "value": { "type": "string", - "description": "Variable value. Max length: 8192 chars.", + "description": "TXT record value.", "x-example": "" }, - "secret": { - "type": "boolean", - "description": "Secret variables can be updated or deleted, but only functions can read them during build and runtime.", - "x-example": false + "ttl": { + "type": "integer", + "description": "Time to live, in seconds. Must be greater than 0.", + "x-example": 1, + "format": "int32" + }, + "comment": { + "type": "string", + "description": "A comment for this record.", + "x-example": "" } }, "required": [ - "key", - "value" + "name", + "value", + "ttl" ] } } @@ -24061,21 +24382,21 @@ } } }, - "\/functions\/{functionId}\/variables\/{variableId}": { + "\/domains\/{domainId}\/records\/{recordId}": { "get": { - "summary": "Get variable", - "operationId": "functionsGetVariable", + "summary": "Get a single DNS record for a given domain by record ID.", + "operationId": "domainsGetRecord", "tags": [ - "functions" + "domains" ], - "description": "Get a variable by its unique ID.", + "description": " Get a single DNS record for a given domain by record ID.\n \n This endpoint allows you to retrieve a specific DNS record associated with a domain\n using its unique identifier. The record contains information about the DNS configuration\n such as type, value, and TTL settings.", "responses": { "200": { - "description": "Variable", + "description": "DNSRecord", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/variable" + "$ref": "#\/components\/schemas\/dnsRecord" } } } @@ -24083,19 +24404,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "getVariable", - "group": "variables", - "weight": 582, + "method": "getRecord", + "group": null, + "weight": 675, "cookies": false, "type": "", - "demo": "functions\/get-variable.md", + "demo": "domains\/get-record.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", + "scope": "domains.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -24105,67 +24425,58 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function unique ID.", + "name": "domainId", + "description": "Domain unique ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" }, { - "name": "variableId", - "description": "Variable unique ID.", + "name": "recordId", + "description": "DNS record unique ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" } ] }, - "put": { - "summary": "Update variable", - "operationId": "functionsUpdateVariable", + "delete": { + "summary": "Delete a DNS record for the given domain.", + "operationId": "domainsDeleteRecord", "tags": [ - "functions" + "domains" ], - "description": "Update variable by its unique ID.", + "description": " Delete a DNS record for the given domain. This endpoint allows you to delete an existing DNS record \n from a specific domain.", "responses": { - "200": { - "description": "Variable", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/variable" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateVariable", - "group": "variables", - "weight": 584, + "method": "deleteRecord", + "group": null, + "weight": 674, "cookies": false, "type": "", - "demo": "functions\/update-variable.md", + "demo": "domains\/delete-record.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", + "scope": "domains.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -24175,91 +24486,67 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function unique ID.", + "name": "domainId", + "description": "Domain unique ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" }, { - "name": "variableId", - "description": "Variable unique ID.", + "name": "recordId", + "description": "DNS record unique ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Variable key. Max length: 255 chars.", - "x-example": "" - }, - "value": { - "type": "string", - "description": "Variable value. Max length: 8192 chars.", - "x-example": "", - "x-nullable": true - }, - "secret": { - "type": "boolean", - "description": "Secret variables can be updated or deleted, but only functions can read them during build and runtime.", - "x-example": false, - "x-nullable": true - } - }, - "required": [ - "key" - ] - } - } - } - } - }, - "delete": { - "summary": "Delete variable", - "operationId": "functionsDeleteVariable", + ] + } + }, + "\/domains\/{domainId}\/team": { + "patch": { + "summary": "Update domain team.", + "operationId": "domainsUpdateTeam", "tags": [ - "functions" + "domains" ], - "description": "Delete a variable by its unique ID.", + "description": " Update the team ID for a specific domain. This endpoint requires admin access.\n \n Updating the team ID will transfer ownership and access control of the domain\n and all its DNS records to the new team.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Domain", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/domain" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteVariable", - "group": "variables", - "weight": 585, + "method": "updateTeam", + "group": null, + "weight": 650, "cookies": false, "type": "", - "demo": "functions\/delete-variable.md", + "demo": "domains\/update-team.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", + "scope": "domains.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -24269,49 +24556,57 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "" - }, - "in": "path" - }, - { - "name": "variableId", - "description": "Variable unique ID.", + "name": "domainId", + "description": "Domain unique ID.", "required": true, "schema": { "type": "string", - "x-example": "" + "x-example": "" }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "teamId": { + "type": "string", + "description": "New team unique ID.", + "x-example": "" + } + }, + "required": [ + "teamId" + ] + } + } + } + } } }, - "\/graphql": { - "post": { - "summary": "GraphQL endpoint", - "operationId": "graphqlQuery", + "\/domains\/{domainId}\/transfers\/status": { + "get": { + "summary": "Get domain transfer status.", + "operationId": "domainsGetTransferStatus", "tags": [ - "graphql" + "domains" ], - "description": "Execute a GraphQL mutation.", + "description": " Get the transfer status for a domain.", "responses": { "200": { - "description": "Any", + "description": "domainTransferStatus", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/any" + "$ref": "#\/components\/schemas\/domainTransferStatus" } } } @@ -24319,107 +24614,110 @@ }, "deprecated": false, "x-appwrite": { - "method": "query", - "group": "graphql", - "weight": 176, + "method": "getTransferStatus", + "group": null, + "weight": 653, "cookies": false, - "type": "graphql", - "demo": "graphql\/query.md", - "rate-limit": 60, - "rate-time": 60, + "type": "", + "demo": "domains\/get-transfer-status.md", + "rate-limit": 0, + "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "graphql", + "scope": "domains.read", "platforms": [ - "console", - "server", - "client", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/graphql\/post.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [], - "JWT": [] + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" } ] } }, - "\/graphql\/mutation": { - "post": { - "summary": "GraphQL endpoint", - "operationId": "graphqlMutation", + "\/domains\/{domainId}\/zone": { + "get": { + "summary": "Retrieve the DNS zone file for the given domain.", + "operationId": "domainsGetZone", "tags": [ - "graphql" + "domains" ], - "description": "Execute a GraphQL mutation.", + "description": " Retrieve the DNS zone file for the given domain. This endpoint will return the DNS\n zone file in a standardized format that can be used to configure DNS servers.", "responses": { "200": { - "description": "Any", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/any" - } - } - } + "description": "File" } }, "deprecated": false, "x-appwrite": { - "method": "mutation", - "group": "graphql", - "weight": 175, + "method": "getZone", + "group": null, + "weight": 646, "cookies": false, - "type": "graphql", - "demo": "graphql\/mutation.md", - "rate-limit": 60, - "rate-time": 60, + "type": "", + "demo": "domains\/get-zone.md", + "rate-limit": 0, + "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "graphql", + "scope": "domains.read", "platforms": [ - "console", - "server", - "client", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/graphql\/post.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [], - "JWT": [] + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" } ] - } - }, - "\/health": { - "get": { - "summary": "Get HTTP", - "operationId": "healthGet", + }, + "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": [ - "health" + "domains" ], - "description": "Check the Appwrite HTTP server is up and responsive.", + "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": { - "200": { - "description": "Health Status", + "201": { + "description": "Domain", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthStatus" + "$ref": "#\/components\/schemas\/domain" } } } @@ -24427,50 +24725,78 @@ }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": "health", - "weight": 450, + "method": "updateZone", + "group": null, + "weight": 649, "cookies": false, "type": "", - "demo": "health\/get.md", + "demo": "domains\/update-zone.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "domains.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } - ] + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "content": { + "type": "string", + "description": "DNS zone file content as a string.", + "x-example": "" + } + }, + "required": [ + "content" + ] + } + } + } + } } }, - "\/health\/anti-virus": { + "\/functions": { "get": { - "summary": "Get antivirus", - "operationId": "healthGetAntivirus", + "summary": "List functions", + "operationId": "functionsList", "tags": [ - "health" + "functions" ], - "description": "Check the Appwrite Antivirus server is up and connection is successful.", + "description": "Get a list of all the project's functions. You can use the query params to filter your results.", "responses": { "200": { - "description": "Health Antivirus", + "description": "Functions List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthAntivirus" + "$ref": "#\/components\/schemas\/functionList" } } } @@ -24478,23 +24804,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getAntivirus", - "group": "health", - "weight": 459, + "method": "list", + "group": "functions", + "weight": 477, "cookies": false, "type": "", - "demo": "health\/get-antivirus.md", + "demo": "functions\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-storage-anti-virus.md", "auth": { "Project": [] } @@ -24504,24 +24829,59 @@ "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", + "x-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", + "x-example": false, + "default": true + }, + "in": "query" + } ] - } - }, - "\/health\/cache": { - "get": { - "summary": "Get cache", - "operationId": "healthGetCache", + }, + "post": { + "summary": "Create function", + "operationId": "functionsCreate", "tags": [ - "health" + "functions" ], - "description": "Check the Appwrite in-memory cache servers are up and connection is successful.", + "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": { - "200": { - "description": "Status List", + "201": { + "description": "Function", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthStatusList" + "$ref": "#\/components\/schemas\/function" } } } @@ -24529,23 +24889,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getCache", - "group": "health", - "weight": 453, + "method": "create", + "group": "functions", + "weight": 626, "cookies": false, "type": "", - "demo": "health\/get-cache.md", + "demo": "functions\/create.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-cache.md", "auth": { "Project": [] } @@ -24555,24 +24914,303 @@ "Project": [], "Key": [] } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "functionId": { + "type": "string", + "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.", + "x-example": "" + }, + "name": { + "type": "string", + "description": "Function name. Max length: 128 chars.", + "x-example": "" + }, + "runtime": { + "type": "string", + "description": "Execution runtime.", + "x-example": "node-14.5", + "enum": [ + "node-14.5", + "node-16.0", + "node-18.0", + "node-19.0", + "node-20.0", + "node-21.0", + "node-22", + "node-23", + "node-24", + "node-25", + "php-8.0", + "php-8.1", + "php-8.2", + "php-8.3", + "php-8.4", + "ruby-3.0", + "ruby-3.1", + "ruby-3.2", + "ruby-3.3", + "ruby-3.4", + "ruby-4.0", + "python-3.8", + "python-3.9", + "python-3.10", + "python-3.11", + "python-3.12", + "python-3.13", + "python-3.14", + "python-ml-3.11", + "python-ml-3.12", + "python-ml-3.13", + "deno-1.21", + "deno-1.24", + "deno-1.35", + "deno-1.40", + "deno-1.46", + "deno-2.0", + "deno-2.5", + "deno-2.6", + "dart-2.15", + "dart-2.16", + "dart-2.17", + "dart-2.18", + "dart-2.19", + "dart-3.0", + "dart-3.1", + "dart-3.3", + "dart-3.5", + "dart-3.8", + "dart-3.9", + "dart-3.10", + "dotnet-6.0", + "dotnet-7.0", + "dotnet-8.0", + "dotnet-10", + "java-8.0", + "java-11.0", + "java-17.0", + "java-18.0", + "java-21.0", + "java-22", + "java-25", + "swift-5.5", + "swift-5.8", + "swift-5.9", + "swift-5.10", + "swift-6.2", + "kotlin-1.6", + "kotlin-1.8", + "kotlin-1.9", + "kotlin-2.0", + "kotlin-2.3", + "cpp-17", + "cpp-20", + "bun-1.0", + "bun-1.1", + "bun-1.2", + "bun-1.3", + "go-1.23", + "go-1.24", + "go-1.25", + "go-1.26", + "static-1", + "flutter-3.24", + "flutter-3.27", + "flutter-3.29", + "flutter-3.32", + "flutter-3.35", + "flutter-3.38" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "execute": { + "type": "array", + "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.", + "x-example": "[\"any\"]", + "items": { + "type": "string" + } + }, + "events": { + "type": "array", + "description": "Events list. Maximum of 100 events are allowed.", + "x-example": null, + "items": { + "type": "string" + } + }, + "schedule": { + "type": "string", + "description": "Schedule CRON syntax.", + "x-example": null + }, + "timeout": { + "type": "integer", + "description": "Function maximum execution time in seconds.", + "x-example": 1, + "format": "int32" + }, + "enabled": { + "type": "boolean", + "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.", + "x-example": false + }, + "logging": { + "type": "boolean", + "description": "When disabled, executions will exclude logs and errors, and will be slightly faster.", + "x-example": false + }, + "entrypoint": { + "type": "string", + "description": "Entrypoint File. This path is relative to the \"providerRootDirectory\".", + "x-example": "" + }, + "commands": { + "type": "string", + "description": "Build Commands.", + "x-example": "" + }, + "scopes": { + "type": "array", + "description": "List of scopes allowed for API key auto-generated for every execution. Maximum of 100 scopes are allowed.", + "x-example": null, + "items": { + "type": "string", + "enum": [ + "sessions.write", + "users.read", + "users.write", + "teams.read", + "teams.write", + "databases.read", + "databases.write", + "collections.read", + "collections.write", + "tables.read", + "tables.write", + "attributes.read", + "attributes.write", + "columns.read", + "columns.write", + "indexes.read", + "indexes.write", + "documents.read", + "documents.write", + "rows.read", + "rows.write", + "files.read", + "files.write", + "buckets.read", + "buckets.write", + "functions.read", + "functions.write", + "sites.read", + "sites.write", + "log.read", + "log.write", + "execution.read", + "execution.write", + "locale.read", + "avatars.read", + "health.read", + "providers.read", + "providers.write", + "messages.read", + "messages.write", + "topics.read", + "topics.write", + "subscribers.read", + "subscribers.write", + "targets.read", + "targets.write", + "rules.read", + "rules.write", + "schedules.read", + "schedules.write", + "migrations.read", + "migrations.write", + "vcs.read", + "vcs.write", + "assistant.read", + "tokens.read", + "tokens.write", + "policies.write", + "policies.read", + "archives.read", + "archives.write", + "restorations.read", + "restorations.write", + "domains.read", + "domains.write", + "events.read" + ], + "x-enum-name": null, + "x-enum-keys": [] + } + }, + "installationId": { + "type": "string", + "description": "Appwrite Installation ID for VCS (Version Control System) deployment.", + "x-example": "" + }, + "providerRepositoryId": { + "type": "string", + "description": "Repository ID of the repo linked to the function.", + "x-example": "" + }, + "providerBranch": { + "type": "string", + "description": "Production branch for the repo linked to the function.", + "x-example": "" + }, + "providerSilentMode": { + "type": "boolean", + "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.", + "x-example": false + }, + "providerRootDirectory": { + "type": "string", + "description": "Path to function code in the linked repo.", + "x-example": "" + }, + "specification": { + "type": "string", + "description": "Runtime specification for the function and builds.", + "x-example": null + } + }, + "required": [ + "functionId", + "name", + "runtime" + ] + } + } + } + } } }, - "\/health\/certificate": { + "\/functions\/runtimes": { "get": { - "summary": "Get the SSL certificate for a domain", - "operationId": "healthGetCertificate", + "summary": "List runtimes", + "operationId": "functionsListRuntimes", "tags": [ - "health" + "functions" ], - "description": "Get the SSL certificate for a domain", + "description": "Get a list of all runtimes that are currently active on your instance.", "responses": { "200": { - "description": "Health Certificate", + "description": "Runtimes List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthCertificate" + "$ref": "#\/components\/schemas\/runtimeList" } } } @@ -24580,23 +25218,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getCertificate", - "group": "health", - "weight": 456, + "method": "listRuntimes", + "group": "runtimes", + "weight": 479, "cookies": false, "type": "", - "demo": "health\/get-certificate.md", + "demo": "functions\/list-runtimes.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "public", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-certificate.md", "auth": { "Project": [] } @@ -24606,35 +25243,24 @@ "Project": [], "Key": [] } - ], - "parameters": [ - { - "name": "domain", - "description": "string", - "required": false, - "schema": { - "type": "string" - }, - "in": "query" - } ] } }, - "\/health\/db": { + "\/functions\/specifications": { "get": { - "summary": "Get DB", - "operationId": "healthGetDB", + "summary": "List specifications", + "operationId": "functionsListSpecifications", "tags": [ - "health" + "functions" ], - "description": "Check the Appwrite database servers are up and connection is successful.", + "description": "List allowed function specifications for this instance.", "responses": { "200": { - "description": "Status List", + "description": "Specifications List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthStatusList" + "$ref": "#\/components\/schemas\/specificationList" } } } @@ -24642,23 +25268,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getDB", - "group": "health", - "weight": 452, + "method": "listSpecifications", + "group": "runtimes", + "weight": 480, "cookies": false, "type": "", - "demo": "health\/get-db.md", + "demo": "functions\/list-specifications.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.read", "platforms": [ - "console", - "server" + "server", + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-db.md", "auth": { "Project": [] } @@ -24671,21 +25296,21 @@ ] } }, - "\/health\/pubsub": { + "\/functions\/templates": { "get": { - "summary": "Get pubsub", - "operationId": "healthGetPubSub", + "summary": "List templates", + "operationId": "functionsListTemplates", "tags": [ - "health" + "functions" ], - "description": "Check the Appwrite pub-sub servers are up and connection is successful.", + "description": "List available function templates. You can use template details in [createFunction](\/docs\/references\/cloud\/server-nodejs\/functions#create) method.", "responses": { "200": { - "description": "Status List", + "description": "Function Templates List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthStatusList" + "$ref": "#\/components\/schemas\/templateFunctionList" } } } @@ -24693,242 +25318,214 @@ }, "deprecated": false, "x-appwrite": { - "method": "getPubSub", - "group": "health", - "weight": 454, + "method": "listTemplates", + "group": "templates", + "weight": 503, "cookies": false, "type": "", - "demo": "health\/get-pub-sub.md", + "demo": "functions\/list-templates.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "public", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-pubsub.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] - } - ] - } - }, - "\/health\/queue\/audits": { - "get": { - "summary": "Get audits queue", - "operationId": "healthGetQueueAudits", - "tags": [ - "health" - ], - "description": "Get the number of audit logs that are waiting to be processed in the Appwrite internal queue server.", - "responses": { - "200": { - "description": "Health Queue", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/healthQueue" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "getQueueAudits", - "group": "queue", - "weight": 460, - "cookies": false, - "type": "", - "demo": "health\/get-queue-audits.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-audits.md", - "auth": { "Project": [] } - }, - "security": [ - { - "Project": [], - "Key": [] - } ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "name": "runtimes", + "description": "List of runtimes allowed for filtering function templates. Maximum of 100 runtimes are allowed.", "required": false, "schema": { - "type": "integer", - "format": "int32", - "default": 5000 + "type": "array", + "items": { + "type": "string", + "enum": [ + "node-14.5", + "node-16.0", + "node-18.0", + "node-19.0", + "node-20.0", + "node-21.0", + "node-22", + "node-23", + "node-24", + "node-25", + "php-8.0", + "php-8.1", + "php-8.2", + "php-8.3", + "php-8.4", + "ruby-3.0", + "ruby-3.1", + "ruby-3.2", + "ruby-3.3", + "ruby-3.4", + "ruby-4.0", + "python-3.8", + "python-3.9", + "python-3.10", + "python-3.11", + "python-3.12", + "python-3.13", + "python-3.14", + "python-ml-3.11", + "python-ml-3.12", + "python-ml-3.13", + "deno-1.21", + "deno-1.24", + "deno-1.35", + "deno-1.40", + "deno-1.46", + "deno-2.0", + "deno-2.5", + "deno-2.6", + "dart-2.15", + "dart-2.16", + "dart-2.17", + "dart-2.18", + "dart-2.19", + "dart-3.0", + "dart-3.1", + "dart-3.3", + "dart-3.5", + "dart-3.8", + "dart-3.9", + "dart-3.10", + "dotnet-6.0", + "dotnet-7.0", + "dotnet-8.0", + "dotnet-10", + "java-8.0", + "java-11.0", + "java-17.0", + "java-18.0", + "java-21.0", + "java-22", + "java-25", + "swift-5.5", + "swift-5.8", + "swift-5.9", + "swift-5.10", + "swift-6.2", + "kotlin-1.6", + "kotlin-1.8", + "kotlin-1.9", + "kotlin-2.0", + "kotlin-2.3", + "cpp-17", + "cpp-20", + "bun-1.0", + "bun-1.1", + "bun-1.2", + "bun-1.3", + "go-1.23", + "go-1.24", + "go-1.25", + "go-1.26", + "static-1", + "flutter-3.24", + "flutter-3.27", + "flutter-3.29", + "flutter-3.32", + "flutter-3.35", + "flutter-3.38" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "default": [] }, "in": "query" - } - ] - } - }, - "\/health\/queue\/billing-project-aggregation": { - "get": { - "summary": "Get billing project aggregation queue", - "operationId": "healthGetQueueBillingProjectAggregation", - "tags": [ - "health" - ], - "description": "Get billing project aggregation queue.", - "responses": { - "200": { - "description": "Health Queue", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/healthQueue" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "getQueueBillingProjectAggregation", - "group": null, - "weight": 734, - "cookies": false, - "type": "", - "demo": "health\/get-queue-billing-project-aggregation.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-billing-project-aggregation.md", - "auth": { - "Project": [] - } - }, - "security": [ + }, { - "Project": [], - "Key": [] - } - ], - "parameters": [ + "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": { + "type": "string", + "enum": [ + "starter", + "databases", + "ai", + "messaging", + "utilities", + "dev-tools", + "auth" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "default": [] + }, + "in": "query" + }, { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "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", - "default": 10000 + "x-example": 1, + "default": 25 }, "in": "query" - } - ] - } - }, - "\/health\/queue\/billing-team-aggregation": { - "get": { - "summary": "Get billing team aggregation queue", - "operationId": "healthGetQueueBillingTeamAggregation", - "tags": [ - "health" - ], - "description": "Get billing team aggregation queue.", - "responses": { - "200": { - "description": "Health Queue", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/healthQueue" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "getQueueBillingTeamAggregation", - "group": null, - "weight": 733, - "cookies": false, - "type": "", - "demo": "health\/get-queue-billing-team-aggregation.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-billing-team-aggregation.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ + }, { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "name": "offset", + "description": "Offset the list of returned templates. Maximum offset is 5000.", "required": false, "schema": { "type": "integer", "format": "int32", - "default": 10000 + "x-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", + "x-example": false, + "default": true }, "in": "query" } ] } }, - "\/health\/queue\/builds": { + "\/functions\/templates\/{templateId}": { "get": { - "summary": "Get builds queue", - "operationId": "healthGetQueueBuilds", + "summary": "Get function template", + "operationId": "functionsGetTemplate", "tags": [ - "health" + "functions" ], - "description": "Get the number of builds that are waiting to be processed in the Appwrite internal queue server.", + "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": "Health Queue", + "description": "Template Function", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/templateFunction" } } } @@ -24936,63 +25533,59 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueBuilds", - "group": "queue", - "weight": 464, + "method": "getTemplate", + "group": "templates", + "weight": 502, "cookies": false, "type": "", - "demo": "health\/get-queue-builds.md", + "demo": "functions\/get-template.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "public", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-builds.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, + "name": "templateId", + "description": "Template ID.", + "required": true, "schema": { - "type": "integer", - "format": "int32", - "default": 5000 + "type": "string", + "x-example": "" }, - "in": "query" + "in": "path" } ] } }, - "\/health\/queue\/builds-priority": { + "\/functions\/usage": { "get": { - "summary": "Get billing aggregation queue", - "operationId": "healthGetQueuePriorityBuilds", + "summary": "Get functions usage", + "operationId": "functionsListUsage", "tags": [ - "health" + "functions" ], - "description": "Get the priority builds queue size.", + "description": "Get usage metrics and statistics for all functions in the project. View statistics including total deployments, builds, logs, storage usage, and compute time. The response includes both current totals and historical data for each metric. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, defaults to 30 days.", "responses": { "200": { - "description": "Health Queue", + "description": "UsageFunctions", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/usageFunctions" } } } @@ -25000,63 +25593,71 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueuePriorityBuilds", + "method": "listUsage", "group": null, - "weight": 735, + "weight": 496, "cookies": false, "type": "", - "demo": "health\/get-queue-priority-builds.md", + "demo": "functions\/list-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-priority-builds.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 500.", + "name": "range", + "description": "Date range.", "required": false, "schema": { - "type": "integer", - "format": "int32", - "default": 500 + "type": "string", + "x-example": "24h", + "enum": [ + "24h", + "30d", + "90d" + ], + "x-enum-name": "UsageRange", + "x-enum-keys": [ + "Twenty Four Hours", + "Thirty Days", + "Ninety Days" + ], + "default": "30d" }, "in": "query" } ] } }, - "\/health\/queue\/certificates": { + "\/functions\/{functionId}": { "get": { - "summary": "Get certificates queue", - "operationId": "healthGetQueueCertificates", + "summary": "Get function", + "operationId": "functionsGet", "tags": [ - "health" + "functions" ], - "description": "Get the number of certificates that are waiting to be issued against [Letsencrypt](https:\/\/letsencrypt.org\/) in the Appwrite internal queue server.", + "description": "Get a function by its unique ID.", "responses": { "200": { - "description": "Health Queue", + "description": "Function", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/function" } } } @@ -25064,23 +25665,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueCertificates", - "group": "queue", - "weight": 463, + "method": "get", + "group": "functions", + "weight": 475, "cookies": false, "type": "", - "demo": "health\/get-queue-certificates.md", + "demo": "functions\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-certificates.md", "auth": { "Project": [] } @@ -25093,34 +25693,31 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, + "name": "functionId", + "description": "Function ID.", + "required": true, "schema": { - "type": "integer", - "format": "int32", - "default": 5000 + "type": "string", + "x-example": "" }, - "in": "query" + "in": "path" } ] - } - }, - "\/health\/queue\/databases": { - "get": { - "summary": "Get databases queue", - "operationId": "healthGetQueueDatabases", + }, + "put": { + "summary": "Update function", + "operationId": "functionsUpdate", "tags": [ - "health" + "functions" ], - "description": "Get the number of database changes that are waiting to be processed in the Appwrite internal queue server.", + "description": "Update function by its unique ID.", "responses": { "200": { - "description": "Health Queue", + "description": "Function", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/function" } } } @@ -25128,23 +25725,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueDatabases", - "group": "queue", - "weight": 465, + "method": "update", + "group": "functions", + "weight": 627, "cookies": false, "type": "", - "demo": "health\/get-queue-databases.md", + "demo": "functions\/update.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-databases.md", "auth": { "Project": [] } @@ -25157,69 +25753,320 @@ ], "parameters": [ { - "name": "name", - "description": "Queue name for which to check the queue size", - "required": false, + "name": "functionId", + "description": "Function ID.", + "required": true, "schema": { "type": "string", - "x-example": "", - "default": "database_db_main" - }, - "in": "query" - }, - { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 5000 + "x-example": "" }, - "in": "query" + "in": "path" } - ] - } - }, - "\/health\/queue\/deletes": { - "get": { - "summary": "Get deletes queue", - "operationId": "healthGetQueueDeletes", - "tags": [ - "health" ], - "description": "Get the number of background destructive changes that are waiting to be processed in the Appwrite internal queue server.", - "responses": { - "200": { - "description": "Health Queue", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/healthQueue" - } + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Function name. Max length: 128 chars.", + "x-example": "" + }, + "runtime": { + "type": "string", + "description": "Execution runtime.", + "x-example": "node-14.5", + "enum": [ + "node-14.5", + "node-16.0", + "node-18.0", + "node-19.0", + "node-20.0", + "node-21.0", + "node-22", + "node-23", + "node-24", + "node-25", + "php-8.0", + "php-8.1", + "php-8.2", + "php-8.3", + "php-8.4", + "ruby-3.0", + "ruby-3.1", + "ruby-3.2", + "ruby-3.3", + "ruby-3.4", + "ruby-4.0", + "python-3.8", + "python-3.9", + "python-3.10", + "python-3.11", + "python-3.12", + "python-3.13", + "python-3.14", + "python-ml-3.11", + "python-ml-3.12", + "python-ml-3.13", + "deno-1.21", + "deno-1.24", + "deno-1.35", + "deno-1.40", + "deno-1.46", + "deno-2.0", + "deno-2.5", + "deno-2.6", + "dart-2.15", + "dart-2.16", + "dart-2.17", + "dart-2.18", + "dart-2.19", + "dart-3.0", + "dart-3.1", + "dart-3.3", + "dart-3.5", + "dart-3.8", + "dart-3.9", + "dart-3.10", + "dotnet-6.0", + "dotnet-7.0", + "dotnet-8.0", + "dotnet-10", + "java-8.0", + "java-11.0", + "java-17.0", + "java-18.0", + "java-21.0", + "java-22", + "java-25", + "swift-5.5", + "swift-5.8", + "swift-5.9", + "swift-5.10", + "swift-6.2", + "kotlin-1.6", + "kotlin-1.8", + "kotlin-1.9", + "kotlin-2.0", + "kotlin-2.3", + "cpp-17", + "cpp-20", + "bun-1.0", + "bun-1.1", + "bun-1.2", + "bun-1.3", + "go-1.23", + "go-1.24", + "go-1.25", + "go-1.26", + "static-1", + "flutter-3.24", + "flutter-3.27", + "flutter-3.29", + "flutter-3.32", + "flutter-3.35", + "flutter-3.38" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "execute": { + "type": "array", + "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.", + "x-example": "[\"any\"]", + "items": { + "type": "string" + } + }, + "events": { + "type": "array", + "description": "Events list. Maximum of 100 events are allowed.", + "x-example": null, + "items": { + "type": "string" + } + }, + "schedule": { + "type": "string", + "description": "Schedule CRON syntax.", + "x-example": null + }, + "timeout": { + "type": "integer", + "description": "Maximum execution time in seconds.", + "x-example": 1, + "format": "int32" + }, + "enabled": { + "type": "boolean", + "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.", + "x-example": false + }, + "logging": { + "type": "boolean", + "description": "When disabled, executions will exclude logs and errors, and will be slightly faster.", + "x-example": false + }, + "entrypoint": { + "type": "string", + "description": "Entrypoint File. This path is relative to the \"providerRootDirectory\".", + "x-example": "" + }, + "commands": { + "type": "string", + "description": "Build Commands.", + "x-example": "" + }, + "scopes": { + "type": "array", + "description": "List of scopes allowed for API Key auto-generated for every execution. Maximum of 100 scopes are allowed.", + "x-example": null, + "items": { + "type": "string", + "enum": [ + "sessions.write", + "users.read", + "users.write", + "teams.read", + "teams.write", + "databases.read", + "databases.write", + "collections.read", + "collections.write", + "tables.read", + "tables.write", + "attributes.read", + "attributes.write", + "columns.read", + "columns.write", + "indexes.read", + "indexes.write", + "documents.read", + "documents.write", + "rows.read", + "rows.write", + "files.read", + "files.write", + "buckets.read", + "buckets.write", + "functions.read", + "functions.write", + "sites.read", + "sites.write", + "log.read", + "log.write", + "execution.read", + "execution.write", + "locale.read", + "avatars.read", + "health.read", + "providers.read", + "providers.write", + "messages.read", + "messages.write", + "topics.read", + "topics.write", + "subscribers.read", + "subscribers.write", + "targets.read", + "targets.write", + "rules.read", + "rules.write", + "schedules.read", + "schedules.write", + "migrations.read", + "migrations.write", + "vcs.read", + "vcs.write", + "assistant.read", + "tokens.read", + "tokens.write", + "policies.write", + "policies.read", + "archives.read", + "archives.write", + "restorations.read", + "restorations.write", + "domains.read", + "domains.write", + "events.read" + ], + "x-enum-name": null, + "x-enum-keys": [] + } + }, + "installationId": { + "type": "string", + "description": "Appwrite Installation ID for VCS (Version Controle System) deployment.", + "x-example": "" + }, + "providerRepositoryId": { + "type": "string", + "description": "Repository ID of the repo linked to the function", + "x-example": "", + "x-nullable": true + }, + "providerBranch": { + "type": "string", + "description": "Production branch for the repo linked to the function", + "x-example": "" + }, + "providerSilentMode": { + "type": "boolean", + "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.", + "x-example": false + }, + "providerRootDirectory": { + "type": "string", + "description": "Path to function code in the linked repo.", + "x-example": "" + }, + "specification": { + "type": "string", + "description": "Runtime specification for the function and builds.", + "x-example": null + } + }, + "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": { - "method": "getQueueDeletes", - "group": "queue", - "weight": 466, + "method": "delete", + "group": "functions", + "weight": 478, "cookies": false, "type": "", - "demo": "health\/get-queue-deletes.md", + "demo": "functions\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-deletes.md", "auth": { "Project": [] } @@ -25232,34 +26079,33 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, + "name": "functionId", + "description": "Function ID.", + "required": true, "schema": { - "type": "integer", - "format": "int32", - "default": 5000 + "type": "string", + "x-example": "" }, - "in": "query" + "in": "path" } ] } }, - "\/health\/queue\/failed\/{name}": { - "get": { - "summary": "Get number of failed queue jobs", - "operationId": "healthGetFailedJobs", + "\/functions\/{functionId}\/deployment": { + "patch": { + "summary": "Update function's deployment", + "operationId": "functionsUpdateFunctionDeployment", "tags": [ - "health" + "functions" ], - "description": "Returns the amount of failed jobs in a given queue.\n", + "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": "Health Queue", + "description": "Function", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/function" } } } @@ -25267,23 +26113,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getFailedJobs", - "group": "queue", - "weight": 473, + "method": "updateFunctionDeployment", + "group": "functions", + "weight": 483, "cookies": false, "type": "", - "demo": "health\/get-failed-jobs.md", + "demo": "functions\/update-function-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-failed-queue-jobs.md", "auth": { "Project": [] } @@ -25296,61 +26141,52 @@ ], "parameters": [ { - "name": "name", - "description": "The name of the queue", + "name": "functionId", + "description": "Function ID.", "required": true, "schema": { "type": "string", - "x-example": "v1-database", - "enum": [ - "v1-database", - "v1-deletes", - "v1-audits", - "v1-mails", - "v1-functions", - "v1-stats-resources", - "v1-stats-usage", - "v1-webhooks", - "v1-certificates", - "v1-builds", - "v1-screenshots", - "v1-messaging", - "v1-migrations" - ], - "x-enum-name": null, - "x-enum-keys": [] + "x-example": "" }, "in": "path" - }, - { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 5000 - }, - "in": "query" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "deploymentId": { + "type": "string", + "description": "Deployment ID.", + "x-example": "" + } + }, + "required": [ + "deploymentId" + ] + } + } + } + } } }, - "\/health\/queue\/functions": { + "\/functions\/{functionId}\/deployments": { "get": { - "summary": "Get functions queue", - "operationId": "healthGetQueueFunctions", + "summary": "List deployments", + "operationId": "functionsListDeployments", "tags": [ - "health" + "functions" ], - "description": "Get the number of function executions that are waiting to be processed in the Appwrite internal queue server.", + "description": "Get a list of all the function's code deployments. You can use the query params to filter your results.", "responses": { "200": { - "description": "Health Queue", + "description": "Deployments List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/deploymentList" } } } @@ -25358,23 +26194,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueFunctions", - "group": "queue", - "weight": 470, + "method": "listDeployments", + "group": "deployments", + "weight": 484, "cookies": false, "type": "", - "demo": "health\/get-queue-functions.md", + "demo": "functions\/list-deployments.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-functions.md", "auth": { "Project": [] } @@ -25387,34 +26222,66 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: buildSize, sourceSize, totalSize, buildDuration, status, activate, type", "required": false, "schema": { - "type": "integer", - "format": "int32", - "default": 5000 + "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", + "x-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", + "x-example": false, + "default": true }, "in": "query" } ] - } - }, - "\/health\/queue\/logs": { - "get": { - "summary": "Get logs queue", - "operationId": "healthGetQueueLogs", + }, + "post": { + "summary": "Create deployment", + "operationId": "functionsCreateDeployment", "tags": [ - "health" + "functions" ], - "description": "Get the number of logs that are waiting to be processed in the Appwrite internal queue server.", + "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": { - "200": { - "description": "Health Queue", + "202": { + "description": "Deployment", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/deployment" } } } @@ -25422,23 +26289,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueLogs", - "group": "queue", - "weight": 462, + "method": "createDeployment", + "group": "deployments", + "weight": 481, "cookies": false, - "type": "", - "demo": "health\/get-queue-logs.md", + "type": "upload", + "demo": "functions\/create-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.write", "platforms": [ "console", "server" ], - "packaging": false, + "packaging": true, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-logs.md", "auth": { "Project": [] } @@ -25451,34 +26317,71 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, + "name": "functionId", + "description": "Function ID.", + "required": true, "schema": { - "type": "integer", - "format": "int32", - "default": 5000 + "type": "string", + "x-example": "" }, - "in": "query" + "in": "path" } - ] + ], + "requestBody": { + "content": { + "multipart\/form-data": { + "schema": { + "type": "object", + "properties": { + "entrypoint": { + "type": "string", + "description": "Entrypoint File.", + "x-example": "", + "x-nullable": true + }, + "commands": { + "type": "string", + "description": "Build Commands.", + "x-example": "", + "x-nullable": true + }, + "code": { + "type": "string", + "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.", + "x-example": null, + "format": "binary" + }, + "activate": { + "type": "boolean", + "description": "Automatically activate the deployment when it is finished building.", + "x-example": false + } + }, + "required": [ + "code", + "activate" + ] + } + } + } + } } }, - "\/health\/queue\/mails": { - "get": { - "summary": "Get mails queue", - "operationId": "healthGetQueueMails", + "\/functions\/{functionId}\/deployments\/duplicate": { + "post": { + "summary": "Create duplicate deployment", + "operationId": "functionsCreateDuplicateDeployment", "tags": [ - "health" + "functions" ], - "description": "Get the number of mails that are waiting to be processed in the Appwrite internal queue server.", + "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": { - "200": { - "description": "Health Queue", + "202": { + "description": "Deployment", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/deployment" } } } @@ -25486,23 +26389,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueMails", - "group": "queue", - "weight": 467, + "method": "createDuplicateDeployment", + "group": "deployments", + "weight": 489, "cookies": false, "type": "", - "demo": "health\/get-queue-mails.md", + "demo": "functions\/create-duplicate-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-mails.md", "auth": { "Project": [] } @@ -25515,34 +26417,57 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, + "name": "functionId", + "description": "Function ID.", + "required": true, "schema": { - "type": "integer", - "format": "int32", - "default": 5000 + "type": "string", + "x-example": "" }, - "in": "query" + "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "deploymentId": { + "type": "string", + "description": "Deployment ID.", + "x-example": "" + }, + "buildId": { + "type": "string", + "description": "Build unique ID.", + "x-example": "" + } + }, + "required": [ + "deploymentId" + ] + } + } + } + } } }, - "\/health\/queue\/messaging": { - "get": { - "summary": "Get messaging queue", - "operationId": "healthGetQueueMessaging", + "\/functions\/{functionId}\/deployments\/template": { + "post": { + "summary": "Create template deployment", + "operationId": "functionsCreateTemplateDeployment", "tags": [ - "health" + "functions" ], - "description": "Get the number of messages that are waiting to be processed in the Appwrite internal queue server.", + "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": { - "200": { - "description": "Health Queue", + "202": { + "description": "Deployment", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/deployment" } } } @@ -25550,23 +26475,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueMessaging", - "group": "queue", - "weight": 468, + "method": "createTemplateDeployment", + "group": "deployments", + "weight": 486, "cookies": false, "type": "", - "demo": "health\/get-queue-messaging.md", + "demo": "functions\/create-template-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-messaging.md", "auth": { "Project": [] } @@ -25579,34 +26503,88 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, + "name": "functionId", + "description": "Function ID.", + "required": true, "schema": { - "type": "integer", - "format": "int32", - "default": 5000 + "type": "string", + "x-example": "" }, - "in": "query" + "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "repository": { + "type": "string", + "description": "Repository name of the template.", + "x-example": "" + }, + "owner": { + "type": "string", + "description": "The name of the owner of the template.", + "x-example": "" + }, + "rootDirectory": { + "type": "string", + "description": "Path to function code in the template repo.", + "x-example": "" + }, + "type": { + "type": "string", + "description": "Type for the reference provided. Can be commit, branch, or tag", + "x-example": "commit", + "enum": [ + "commit", + "branch", + "tag" + ], + "x-enum-name": "TemplateReferenceType", + "x-enum-keys": [] + }, + "reference": { + "type": "string", + "description": "Reference value, can be a commit hash, branch name, or release tag", + "x-example": "" + }, + "activate": { + "type": "boolean", + "description": "Automatically activate the deployment when it is finished building.", + "x-example": false + } + }, + "required": [ + "repository", + "owner", + "rootDirectory", + "type", + "reference" + ] + } + } + } + } } }, - "\/health\/queue\/migrations": { - "get": { - "summary": "Get migrations queue", - "operationId": "healthGetQueueMigrations", + "\/functions\/{functionId}\/deployments\/vcs": { + "post": { + "summary": "Create VCS deployment", + "operationId": "functionsCreateVcsDeployment", "tags": [ - "health" + "functions" ], - "description": "Get the number of migrations that are waiting to be processed in the Appwrite internal queue server.", + "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": { - "200": { - "description": "Health Queue", + "202": { + "description": "Deployment", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/deployment" } } } @@ -25614,23 +26592,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueMigrations", - "group": "queue", - "weight": 469, + "method": "createVcsDeployment", + "group": "deployments", + "weight": 487, "cookies": false, "type": "", - "demo": "health\/get-queue-migrations.md", + "demo": "functions\/create-vcs-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-migrations.md", "auth": { "Project": [] } @@ -25643,34 +26620,69 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, + "name": "functionId", + "description": "Function ID.", + "required": true, "schema": { - "type": "integer", - "format": "int32", - "default": 5000 + "type": "string", + "x-example": "" }, - "in": "query" + "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Type of reference passed. Allowed values are: branch, commit", + "x-example": "branch", + "enum": [ + "branch", + "commit" + ], + "x-enum-name": "VCSReferenceType", + "x-enum-keys": [] + }, + "reference": { + "type": "string", + "description": "VCS reference to create deployment from. Depending on type this can be: branch name, commit hash", + "x-example": "" + }, + "activate": { + "type": "boolean", + "description": "Automatically activate the deployment when it is finished building.", + "x-example": false + } + }, + "required": [ + "type", + "reference" + ] + } + } + } + } } }, - "\/health\/queue\/region-manager": { + "\/functions\/{functionId}\/deployments\/{deploymentId}": { "get": { - "summary": "Get region manager queue", - "operationId": "healthGetQueueRegionManager", + "summary": "Get deployment", + "operationId": "functionsGetDeployment", "tags": [ - "health" + "functions" ], - "description": "Get region manager queue.", + "description": "Get a function deployment by its unique ID.", "responses": { "200": { - "description": "Health Queue", + "description": "Deployment", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/deployment" } } } @@ -25678,23 +26690,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueRegionManager", - "group": null, - "weight": 736, + "method": "getDeployment", + "group": "deployments", + "weight": 482, "cookies": false, "type": "", - "demo": "health\/get-queue-region-manager.md", + "demo": "functions\/get-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-region-manager.md", "auth": { "Project": [] } @@ -25707,58 +26718,57 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 100.", - "required": false, + "name": "functionId", + "description": "Function ID.", + "required": true, "schema": { - "type": "integer", - "format": "int32", - "default": 100 + "type": "string", + "x-example": "" }, - "in": "query" + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" } ] - } - }, - "\/health\/queue\/stats-resources": { - "get": { - "summary": "Get stats resources queue", - "operationId": "healthGetQueueStatsResources", + }, + "delete": { + "summary": "Delete deployment", + "operationId": "functionsDeleteDeployment", "tags": [ - "health" + "functions" ], - "description": "Get the number of metrics that are waiting to be processed in the Appwrite stats resources queue.", + "description": "Delete a code deployment by its unique ID.", "responses": { - "200": { - "description": "Health Queue", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/healthQueue" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "getQueueStatsResources", - "group": "queue", - "weight": 471, + "method": "deleteDeployment", + "group": "deployments", + "weight": 485, "cookies": false, "type": "", - "demo": "health\/get-queue-stats-resources.md", + "demo": "functions\/delete-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-stats-resources.md", "auth": { "Project": [] } @@ -25771,58 +26781,60 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, + "name": "functionId", + "description": "Function ID.", + "required": true, "schema": { - "type": "integer", - "format": "int32", - "default": 5000 + "type": "string", + "x-example": "" }, - "in": "query" + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" } ] } }, - "\/health\/queue\/stats-usage": { + "\/functions\/{functionId}\/deployments\/{deploymentId}\/download": { "get": { - "summary": "Get stats usage queue", - "operationId": "healthGetQueueUsage", + "summary": "Get deployment download", + "operationId": "functionsGetDeploymentDownload", "tags": [ - "health" + "functions" ], - "description": "Get the number of metrics that are waiting to be processed in the Appwrite internal queue server.", + "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": "Health Queue", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/healthQueue" - } - } - } + "description": "File" } }, "deprecated": false, "x-appwrite": { - "method": "getQueueUsage", - "group": "queue", - "weight": 472, + "method": "getDeploymentDownload", + "group": "deployments", + "weight": 488, "cookies": false, - "type": "", - "demo": "health\/get-queue-usage.md", + "type": "location", + "demo": "functions\/get-deployment-download.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.read", "platforms": [ "console", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-stats-usage.md", "auth": { "Project": [] } @@ -25830,39 +26842,66 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "type", + "description": "Deployment file to download. Can be: \"source\", \"output\".", "required": false, "schema": { - "type": "integer", - "format": "int32", - "default": 5000 + "type": "string", + "x-example": "source", + "enum": [ + "source", + "output" + ], + "x-enum-name": "DeploymentDownloadType", + "x-enum-keys": [], + "default": "source" }, "in": "query" } ] } }, - "\/health\/queue\/threats": { - "get": { - "summary": "Get threats queue", - "operationId": "healthGetQueueThreats", + "\/functions\/{functionId}\/deployments\/{deploymentId}\/status": { + "patch": { + "summary": "Update deployment status", + "operationId": "functionsUpdateDeploymentStatus", "tags": [ - "health" + "functions" ], - "description": "Get threats queue.", + "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": "Health Queue", + "description": "Deployment", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/deployment" } } } @@ -25870,23 +26909,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueThreats", - "group": null, - "weight": 737, + "method": "updateDeploymentStatus", + "group": "deployments", + "weight": 490, "cookies": false, "type": "", - "demo": "health\/get-queue-threats.md", + "demo": "functions\/update-deployment-status.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-threats.md", "auth": { "Project": [] } @@ -25899,34 +26937,43 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 100.", - "required": false, + "name": "functionId", + "description": "Function ID.", + "required": true, "schema": { - "type": "integer", - "format": "int32", - "default": 100 + "type": "string", + "x-example": "" }, - "in": "query" + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" } ] } }, - "\/health\/queue\/webhooks": { + "\/functions\/{functionId}\/executions": { "get": { - "summary": "Get webhooks queue", - "operationId": "healthGetQueueWebhooks", + "summary": "List executions", + "operationId": "functionsListExecutions", "tags": [ - "health" + "functions" ], - "description": "Get the number of webhooks that are waiting to be processed in the Appwrite internal queue server.", + "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": "Health Queue", + "description": "Executions List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/executionList" } } } @@ -25934,23 +26981,24 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueWebhooks", - "group": "queue", - "weight": 461, + "method": "listExecutions", + "group": "executions", + "weight": 493, "cookies": false, "type": "", - "demo": "health\/get-queue-webhooks.md", + "demo": "functions\/list-executions.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "execution.read", "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-webhooks.md", "auth": { "Project": [] } @@ -25958,39 +27006,61 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: trigger, status, responseStatusCode, duration, requestMethod, requestPath, deploymentId", "required": false, "schema": { - "type": "integer", - "format": "int32", - "default": 5000 + "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", + "x-example": false, + "default": true }, "in": "query" } ] - } - }, - "\/health\/storage": { - "get": { - "summary": "Get storage", - "operationId": "healthGetStorage", + }, + "post": { + "summary": "Create execution", + "operationId": "functionsCreateExecution", "tags": [ - "health" + "functions" ], - "description": "Check the Appwrite storage device is up and connection is successful.", + "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": { - "200": { - "description": "Health Status", + "201": { + "description": "Execution", "content": { - "application\/json": { + "multipart\/form-data": { "schema": { - "$ref": "#\/components\/schemas\/healthStatus" + "$ref": "#\/components\/schemas\/execution" } } } @@ -25998,23 +27068,24 @@ }, "deprecated": false, "x-appwrite": { - "method": "getStorage", - "group": "storage", - "weight": 458, + "method": "createExecution", + "group": "executions", + "weight": 491, "cookies": false, "type": "", - "demo": "health\/get-storage.md", + "demo": "functions\/create-execution.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "execution.write", "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-storage.md", "auth": { "Project": [] } @@ -26022,26 +27093,92 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } - ] + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "body": { + "type": "string", + "description": "HTTP body of execution. Default value is empty string.", + "x-example": "" + }, + "async": { + "type": "boolean", + "description": "Execute code in the background. Default value is false.", + "x-example": false + }, + "path": { + "type": "string", + "description": "HTTP path of execution. Path can include query params. Default value is \/", + "x-example": "" + }, + "method": { + "type": "string", + "description": "HTTP method of execution. Default value is POST.", + "x-example": "GET", + "enum": [ + "GET", + "POST", + "PUT", + "PATCH", + "DELETE", + "OPTIONS", + "HEAD" + ], + "x-enum-name": "ExecutionMethod", + "x-enum-keys": [] + }, + "headers": { + "type": "object", + "description": "HTTP headers of execution. Defaults to empty.", + "x-example": "{}" + }, + "scheduledAt": { + "type": "string", + "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.", + "x-example": "", + "x-nullable": true + } + } + } + } + } + } } }, - "\/health\/storage\/local": { + "\/functions\/{functionId}\/executions\/{executionId}": { "get": { - "summary": "Get local storage", - "operationId": "healthGetStorageLocal", + "summary": "Get execution", + "operationId": "functionsGetExecution", "tags": [ - "health" + "functions" ], - "description": "Check the Appwrite local storage device is up and connection is successful.", + "description": "Get a function execution log by its unique ID.", "responses": { "200": { - "description": "Health Status", + "description": "Execution", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthStatus" + "$ref": "#\/components\/schemas\/execution" } } } @@ -26049,23 +27186,24 @@ }, "deprecated": false, "x-appwrite": { - "method": "getStorageLocal", - "group": "storage", - "weight": 457, + "method": "getExecution", + "group": "executions", + "weight": 492, "cookies": false, "type": "", - "demo": "health\/get-storage-local.md", + "demo": "functions\/get-execution.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "execution.read", "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-storage-local.md", "auth": { "Project": [] } @@ -26073,50 +27211,63 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "executionId", + "description": "Execution ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" } ] - } - }, - "\/health\/time": { - "get": { - "summary": "Get time", - "operationId": "healthGetTime", + }, + "delete": { + "summary": "Delete execution", + "operationId": "functionsDeleteExecution", "tags": [ - "health" + "functions" ], - "description": "Check the Appwrite server time is synced with Google remote NTP server. We use this technology to smoothly handle leap seconds with no disruptive events. The [Network Time Protocol](https:\/\/en.wikipedia.org\/wiki\/Network_Time_Protocol) (NTP) is used by hundreds of millions of computers and devices to synchronize their clocks over the Internet. If your computer sets its own clock, it likely uses NTP.", + "description": "Delete a function execution by its unique ID.", "responses": { - "200": { - "description": "Health Time", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/healthTime" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "getTime", - "group": "health", - "weight": 455, + "method": "deleteExecution", + "group": "executions", + "weight": 494, "cookies": false, "type": "", - "demo": "health\/get-time.md", + "demo": "functions\/delete-execution.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "execution.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-time.md", "auth": { "Project": [] } @@ -26126,24 +27277,46 @@ "Project": [], "Key": [] } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "executionId", + "description": "Execution ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } ] } }, - "\/locale": { + "\/functions\/{functionId}\/usage": { "get": { - "summary": "Get user locale", - "operationId": "localeGet", + "summary": "Get function usage", + "operationId": "functionsGetUsage", "tags": [ - "locale" + "functions" ], - "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))", + "description": "Get usage metrics and statistics for a for a specific function. View statistics including total deployments, builds, executions, storage usage, and compute time. The response includes both current totals and historical data for each metric. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, defaults to 30 days.", "responses": { "200": { - "description": "Locale", + "description": "UsageFunction", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/locale" + "$ref": "#\/components\/schemas\/usageFunction" } } } @@ -26151,53 +27324,81 @@ }, "deprecated": false, "x-appwrite": { - "method": "get", + "method": "getUsage", "group": null, - "weight": 49, + "weight": 495, "cookies": false, "type": "", - "demo": "locale\/get.md", + "demo": "functions\/get-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "scope": "functions.read", "platforms": [ - "console", - "client", - "server", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-locale.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [], - "JWT": [] + "Project": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "range", + "description": "Date range.", + "required": false, + "schema": { + "type": "string", + "x-example": "24h", + "enum": [ + "24h", + "30d", + "90d" + ], + "x-enum-name": "UsageRange", + "x-enum-keys": [ + "Twenty Four Hours", + "Thirty Days", + "Ninety Days" + ], + "default": "30d" + }, + "in": "query" } ] } }, - "\/locale\/codes": { + "\/functions\/{functionId}\/variables": { "get": { - "summary": "List locale codes", - "operationId": "localeListCodes", + "summary": "List variables", + "operationId": "functionsListVariables", "tags": [ - "locale" + "functions" ], - "description": "List of all locale codes in [ISO 639-1](https:\/\/en.wikipedia.org\/wiki\/List_of_ISO_639-1_codes).", + "description": "Get a list of all variables of a specific function.", "responses": { "200": { - "description": "Locale codes list", + "description": "Variables List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/localeCodeList" + "$ref": "#\/components\/schemas\/variableList" } } } @@ -26205,25 +27406,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "listCodes", - "group": null, - "weight": 50, + "method": "listVariables", + "group": "variables", + "weight": 499, "cookies": false, "type": "", - "demo": "locale\/list-codes.md", + "demo": "functions\/list-variables.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "scope": "functions.read", "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-locale-codes.md", "auth": { "Project": [] } @@ -26231,27 +27429,36 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" } ] - } - }, - "\/locale\/continents": { - "get": { - "summary": "List continents", - "operationId": "localeListContinents", + }, + "post": { + "summary": "Create variable", + "operationId": "functionsCreateVariable", "tags": [ - "locale" + "functions" ], - "description": "List of all continents. You can use the locale header to get the data in a supported language.", + "description": "Create a new function environment variable. These variables can be accessed in the function at runtime as environment variables.", "responses": { - "200": { - "description": "Continents List", + "201": { + "description": "Variable", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/continentList" + "$ref": "#\/components\/schemas\/variable" } } } @@ -26259,25 +27466,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "listContinents", - "group": null, - "weight": 54, + "method": "createVariable", + "group": "variables", + "weight": 628, "cookies": false, "type": "", - "demo": "locale\/list-continents.md", + "demo": "functions\/create-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "scope": "functions.write", "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-continents.md", "auth": { "Project": [] } @@ -26285,27 +27489,68 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } - ] + ], + "parameters": [ + { + "name": "functionId", + "description": "Function unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Variable key. Max length: 255 chars.", + "x-example": "" + }, + "value": { + "type": "string", + "description": "Variable value. Max length: 8192 chars.", + "x-example": "" + }, + "secret": { + "type": "boolean", + "description": "Secret variables can be updated or deleted, but only functions can read them during build and runtime.", + "x-example": false + } + }, + "required": [ + "key", + "value" + ] + } + } + } + } } }, - "\/locale\/countries": { + "\/functions\/{functionId}\/variables\/{variableId}": { "get": { - "summary": "List countries", - "operationId": "localeListCountries", + "summary": "Get variable", + "operationId": "functionsGetVariable", "tags": [ - "locale" + "functions" ], - "description": "List of all countries. You can use the locale header to get the data in a supported language.", + "description": "Get a variable by its unique ID.", "responses": { "200": { - "description": "Countries List", + "description": "Variable", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/countryList" + "$ref": "#\/components\/schemas\/variable" } } } @@ -26313,25 +27558,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "listCountries", - "group": null, - "weight": 51, + "method": "getVariable", + "group": "variables", + "weight": 498, "cookies": false, "type": "", - "demo": "locale\/list-countries.md", + "demo": "functions\/get-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "scope": "functions.read", "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries.md", "auth": { "Project": [] } @@ -26339,27 +27581,46 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } - ] - } - }, - "\/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.", + "parameters": [ + { + "name": "functionId", + "description": "Function unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update variable", + "operationId": "functionsUpdateVariable", + "tags": [ + "functions" + ], + "description": "Update variable by its unique ID.", "responses": { "200": { - "description": "Countries List", + "description": "Variable", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/countryList" + "$ref": "#\/components\/schemas\/variable" } } } @@ -26367,25 +27628,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "listCountriesEU", - "group": null, - "weight": 52, + "method": "updateVariable", + "group": "variables", + "weight": 500, "cookies": false, "type": "", - "demo": "locale\/list-countries-eu.md", + "demo": "functions\/update-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "scope": "functions.write", "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries-eu.md", "auth": { "Project": [] } @@ -26393,27 +27651,142 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Variable key. Max length: 255 chars.", + "x-example": "" + }, + "value": { + "type": "string", + "description": "Variable value. Max length: 8192 chars.", + "x-example": "", + "x-nullable": true + }, + "secret": { + "type": "boolean", + "description": "Secret variables can be updated or deleted, but only functions can read them during build and runtime.", + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "key" + ] + } + } + } + } + }, + "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": { + "method": "deleteVariable", + "group": "variables", + "weight": 501, + "cookies": false, + "type": "", + "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": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" + }, + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "" + }, + "in": "path" } ] } }, - "\/locale\/countries\/phones": { - "get": { - "summary": "List countries phone codes", - "operationId": "localeListCountriesPhones", + "\/graphql": { + "post": { + "summary": "GraphQL endpoint", + "operationId": "graphqlQuery", "tags": [ - "locale" + "graphql" ], - "description": "List of all countries phone codes. You can use the locale header to get the data in a supported language.", + "description": "Execute a GraphQL mutation.", "responses": { "200": { - "description": "Phones List", + "description": "Any", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/phoneList" + "$ref": "#\/components\/schemas\/any" } } } @@ -26421,25 +27794,25 @@ }, "deprecated": false, "x-appwrite": { - "method": "listCountriesPhones", - "group": null, - "weight": 53, + "method": "query", + "group": "graphql", + "weight": 160, "cookies": false, - "type": "", - "demo": "locale\/list-countries-phones.md", - "rate-limit": 0, - "rate-time": 3600, + "type": "graphql", + "demo": "graphql\/query.md", + "rate-limit": 60, + "rate-time": 60, "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "scope": "graphql", "platforms": [ "console", - "client", "server", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries-phones.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/graphql\/post.md", "auth": { "Project": [] } @@ -26453,21 +27826,21 @@ ] } }, - "\/locale\/currencies": { - "get": { - "summary": "List currencies", - "operationId": "localeListCurrencies", + "\/graphql\/mutation": { + "post": { + "summary": "GraphQL endpoint", + "operationId": "graphqlMutation", "tags": [ - "locale" + "graphql" ], - "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.", + "description": "Execute a GraphQL mutation.", "responses": { "200": { - "description": "Currencies List", + "description": "Any", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/currencyList" + "$ref": "#\/components\/schemas\/any" } } } @@ -26475,25 +27848,25 @@ }, "deprecated": false, "x-appwrite": { - "method": "listCurrencies", - "group": null, - "weight": 55, + "method": "mutation", + "group": "graphql", + "weight": 159, "cookies": false, - "type": "", - "demo": "locale\/list-currencies.md", - "rate-limit": 0, - "rate-time": 3600, + "type": "graphql", + "demo": "graphql\/mutation.md", + "rate-limit": 60, + "rate-time": 60, "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "scope": "graphql", "platforms": [ "console", - "client", "server", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-currencies.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/graphql\/post.md", "auth": { "Project": [] } @@ -26507,21 +27880,21 @@ ] } }, - "\/locale\/languages": { + "\/health": { "get": { - "summary": "List languages", - "operationId": "localeListLanguages", + "summary": "Get HTTP", + "operationId": "healthGet", "tags": [ - "locale" + "health" ], - "description": "List of all languages classified by ISO 639-1 including 2-letter code, name in English, and name in the respective language.", + "description": "Check the Appwrite HTTP server is up and responsive.", "responses": { "200": { - "description": "Languages List", + "description": "Health Status", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/languageList" + "$ref": "#\/components\/schemas\/healthStatus" } } } @@ -26529,25 +27902,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "listLanguages", - "group": null, - "weight": 56, + "method": "get", + "group": "health", + "weight": 504, "cookies": false, "type": "", - "demo": "locale\/list-languages.md", + "demo": "health\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "scope": "health.read", "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-languages.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get.md", "auth": { "Project": [] } @@ -26555,27 +27926,26 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ] } }, - "\/messaging\/messages": { + "\/health\/anti-virus": { "get": { - "summary": "List messages", - "operationId": "messagingListMessages", + "summary": "Get antivirus", + "operationId": "healthGetAntivirus", "tags": [ - "messaging" + "health" ], - "description": "Get a list of all messages from the current Appwrite project.", + "description": "Check the Appwrite Antivirus server is up and connection is successful.", "responses": { "200": { - "description": "Message list", + "description": "Health Antivirus", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/messageList" + "$ref": "#\/components\/schemas\/healthAntivirus" } } } @@ -26583,23 +27953,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "listMessages", - "group": "messages", - "weight": 231, + "method": "getAntivirus", + "group": "health", + "weight": 513, "cookies": false, "type": "", - "demo": "messaging\/list-messages.md", + "demo": "health\/get-antivirus.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.read", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-messages.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-storage-anti-virus.md", "auth": { "Project": [] } @@ -26609,61 +27979,24 @@ "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: scheduledAt, deliveredAt, deliveredTotal, status, description, providerType", - "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", - "x-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", - "x-example": false, - "default": true - }, - "in": "query" - } ] } }, - "\/messaging\/messages\/email": { - "post": { - "summary": "Create email", - "operationId": "messagingCreateEmail", + "\/health\/cache": { + "get": { + "summary": "Get cache", + "operationId": "healthGetCache", "tags": [ - "messaging" + "health" ], - "description": "Create a new email message.", + "description": "Check the Appwrite in-memory cache servers are up and connection is successful.", "responses": { - "201": { - "description": "Message", + "200": { + "description": "Status List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/message" + "$ref": "#\/components\/schemas\/healthStatusList" } } } @@ -26671,23 +28004,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "createEmail", - "group": "messages", - "weight": 228, + "method": "getCache", + "group": "health", + "weight": 507, "cookies": false, "type": "", - "demo": "messaging\/create-email.md", + "demo": "health\/get-cache.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-email.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-cache.md", "auth": { "Project": [] } @@ -26697,119 +28030,24 @@ "Project": [], "Key": [] } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "messageId": { - "type": "string", - "description": "Message 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.", - "x-example": "" - }, - "subject": { - "type": "string", - "description": "Email Subject.", - "x-example": "" - }, - "content": { - "type": "string", - "description": "Email Content.", - "x-example": "" - }, - "topics": { - "type": "array", - "description": "List of Topic IDs.", - "x-example": null, - "items": { - "type": "string" - } - }, - "users": { - "type": "array", - "description": "List of User IDs.", - "x-example": null, - "items": { - "type": "string" - } - }, - "targets": { - "type": "array", - "description": "List of Targets IDs.", - "x-example": null, - "items": { - "type": "string" - } - }, - "cc": { - "type": "array", - "description": "Array of target IDs to be added as CC.", - "x-example": null, - "items": { - "type": "string" - } - }, - "bcc": { - "type": "array", - "description": "Array of target IDs to be added as BCC.", - "x-example": null, - "items": { - "type": "string" - } - }, - "attachments": { - "type": "array", - "description": "Array of compound ID strings of bucket IDs and file IDs to be attached to the email. They should be formatted as :.", - "x-example": null, - "items": { - "type": "string" - } - }, - "draft": { - "type": "boolean", - "description": "Is message a draft", - "x-example": false - }, - "html": { - "type": "boolean", - "description": "Is content of type HTML", - "x-example": false - }, - "scheduledAt": { - "type": "string", - "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "messageId", - "subject", - "content" - ] - } - } - } - } + ] } }, - "\/messaging\/messages\/email\/{messageId}": { - "patch": { - "summary": "Update email", - "operationId": "messagingUpdateEmail", + "\/health\/certificate": { + "get": { + "summary": "Get the SSL certificate for a domain", + "operationId": "healthGetCertificate", "tags": [ - "messaging" + "health" ], - "description": "Update an email message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", + "description": "Get the SSL certificate for a domain", "responses": { "200": { - "description": "Message", + "description": "Health Certificate", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/message" + "$ref": "#\/components\/schemas\/healthCertificate" } } } @@ -26817,23 +28055,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateEmail", - "group": "messages", - "weight": 235, + "method": "getCertificate", + "group": "health", + "weight": 510, "cookies": false, "type": "", - "demo": "messaging\/update-email.md", + "demo": "health\/get-certificate.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-email.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-certificate.md", "auth": { "Project": [] } @@ -26846,128 +28084,107 @@ ], "parameters": [ { - "name": "messageId", - "description": "Message ID.", - "required": true, + "name": "domain", + "description": "string", + "required": false, "schema": { - "type": "string", - "x-example": "" + "type": "string" }, - "in": "path" + "in": "query" } + ] + } + }, + "\/health\/console-pausing": { + "get": { + "summary": "Get console pausing health", + "operationId": "healthGetConsolePausing", + "tags": [ + "health" ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "topics": { - "type": "array", - "description": "List of Topic IDs.", - "x-example": null, - "items": { - "type": "string" - }, - "x-nullable": true - }, - "users": { - "type": "array", - "description": "List of User IDs.", - "x-example": null, - "items": { - "type": "string" - }, - "x-nullable": true - }, - "targets": { - "type": "array", - "description": "List of Targets IDs.", - "x-example": null, - "items": { - "type": "string" - }, - "x-nullable": true - }, - "subject": { - "type": "string", - "description": "Email Subject.", - "x-example": "", - "x-nullable": true - }, - "content": { - "type": "string", - "description": "Email Content.", - "x-example": "", - "x-nullable": true - }, - "draft": { - "type": "boolean", - "description": "Is message a draft", - "x-example": false, - "x-nullable": true - }, - "html": { - "type": "boolean", - "description": "Is content of type HTML", - "x-example": false, - "x-nullable": true - }, - "cc": { - "type": "array", - "description": "Array of target IDs to be added as CC.", - "x-example": null, - "items": { - "type": "string" - }, - "x-nullable": true - }, - "bcc": { - "type": "array", - "description": "Array of target IDs to be added as BCC.", - "x-example": null, - "items": { - "type": "string" - }, - "x-nullable": true - }, - "scheduledAt": { - "type": "string", - "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", - "x-example": null, - "x-nullable": true - }, - "attachments": { - "type": "array", - "description": "Array of compound ID strings of bucket IDs and file IDs to be attached to the email. They should be formatted as :.", - "x-example": null, - "items": { - "type": "string" - }, - "x-nullable": true - } + "description": "Get console pausing health status. Monitors projects approaching the pause threshold to detect potential issues with console access tracking.\n", + "responses": { + "200": { + "description": "Health Status", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/healthStatus" } } } } - } + }, + "deprecated": false, + "x-appwrite": { + "method": "getConsolePausing", + "group": null, + "weight": 756, + "cookies": false, + "type": "", + "demo": "health\/get-console-pausing.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-console-pausing.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "threshold", + "description": "Percentage threshold of projects approaching pause. When hit (equal or higher), endpoint returns server error. Default value is 10.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 10 + }, + "in": "query" + }, + { + "name": "inactivityDays", + "description": "Number of days of inactivity before a project is paused. Should match the plan's projectInactivityDays setting. Default value is 7.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 7 + }, + "in": "query" + } + ] } }, - "\/messaging\/messages\/push": { - "post": { - "summary": "Create push notification", - "operationId": "messagingCreatePush", + "\/health\/db": { + "get": { + "summary": "Get DB", + "operationId": "healthGetDB", "tags": [ - "messaging" + "health" ], - "description": "Create a new push notification.", + "description": "Check the Appwrite database servers are up and connection is successful.", "responses": { - "201": { - "description": "Message", + "200": { + "description": "Status List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/message" + "$ref": "#\/components\/schemas\/healthStatusList" } } } @@ -26975,23 +28192,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "createPush", - "group": "messages", - "weight": 230, + "method": "getDB", + "group": "health", + "weight": 506, "cookies": false, "type": "", - "demo": "messaging\/create-push.md", + "demo": "health\/get-db.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-push.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-db.md", "auth": { "Project": [] } @@ -27001,151 +28218,24 @@ "Project": [], "Key": [] } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "messageId": { - "type": "string", - "description": "Message 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.", - "x-example": "" - }, - "title": { - "type": "string", - "description": "Title for push notification.", - "x-example": "" - }, - "body": { - "type": "string", - "description": "Body for push notification.", - "x-example": "<BODY>" - }, - "topics": { - "type": "array", - "description": "List of Topic IDs.", - "x-example": null, - "items": { - "type": "string" - } - }, - "users": { - "type": "array", - "description": "List of User IDs.", - "x-example": null, - "items": { - "type": "string" - } - }, - "targets": { - "type": "array", - "description": "List of Targets IDs.", - "x-example": null, - "items": { - "type": "string" - } - }, - "data": { - "type": "object", - "description": "Additional key-value pair data for push notification.", - "x-example": "{}", - "x-nullable": true - }, - "action": { - "type": "string", - "description": "Action for push notification.", - "x-example": "<ACTION>" - }, - "image": { - "type": "string", - "description": "Image for push notification. Must be a compound bucket ID to file ID of a jpeg, png, or bmp image in Appwrite Storage. It should be formatted as <BUCKET_ID>:<FILE_ID>.", - "x-example": "<ID1:ID2>" - }, - "icon": { - "type": "string", - "description": "Icon for push notification. Available only for Android and Web Platform.", - "x-example": "<ICON>" - }, - "sound": { - "type": "string", - "description": "Sound for push notification. Available only for Android and iOS Platform.", - "x-example": "<SOUND>" - }, - "color": { - "type": "string", - "description": "Color for push notification. Available only for Android Platform.", - "x-example": "<COLOR>" - }, - "tag": { - "type": "string", - "description": "Tag for push notification. Available only for Android Platform.", - "x-example": "<TAG>" - }, - "badge": { - "type": "integer", - "description": "Badge for push notification. Available only for iOS Platform.", - "x-example": null, - "format": "int32" - }, - "draft": { - "type": "boolean", - "description": "Is message a draft", - "x-example": false - }, - "scheduledAt": { - "type": "string", - "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", - "x-example": null, - "x-nullable": true - }, - "contentAvailable": { - "type": "boolean", - "description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.", - "x-example": false - }, - "critical": { - "type": "boolean", - "description": "If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.", - "x-example": false - }, - "priority": { - "type": "string", - "description": "Set the notification priority. \"normal\" will consider device state and may not deliver notifications immediately. \"high\" will always attempt to immediately deliver the notification.", - "x-example": "normal", - "enum": [ - "normal", - "high" - ], - "x-enum-name": "MessagePriority", - "x-enum-keys": [] - } - }, - "required": [ - "messageId" - ] - } - } - } - } + ] } }, - "\/messaging\/messages\/push\/{messageId}": { - "patch": { - "summary": "Update push notification", - "operationId": "messagingUpdatePush", + "\/health\/pubsub": { + "get": { + "summary": "Get pubsub", + "operationId": "healthGetPubSub", "tags": [ - "messaging" + "health" ], - "description": "Update a push notification by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", + "description": "Check the Appwrite pub-sub servers are up and connection is successful.", "responses": { "200": { - "description": "Message", + "description": "Status List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/message" + "$ref": "#\/components\/schemas\/healthStatusList" } } } @@ -27153,23 +28243,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "updatePush", - "group": "messages", - "weight": 237, + "method": "getPubSub", + "group": "health", + "weight": 508, "cookies": false, "type": "", - "demo": "messaging\/update-push.md", + "demo": "health\/get-pub-sub.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-push.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-pubsub.md", "auth": { "Project": [] } @@ -27179,265 +28269,48 @@ "Project": [], "Key": [] } - ], - "parameters": [ - { - "name": "messageId", - "description": "Message ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<MESSAGE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "topics": { - "type": "array", - "description": "List of Topic IDs.", - "x-example": null, - "items": { - "type": "string" - }, - "x-nullable": true - }, - "users": { - "type": "array", - "description": "List of User IDs.", - "x-example": null, - "items": { - "type": "string" - }, - "x-nullable": true - }, - "targets": { - "type": "array", - "description": "List of Targets IDs.", - "x-example": null, - "items": { - "type": "string" - }, - "x-nullable": true - }, - "title": { - "type": "string", - "description": "Title for push notification.", - "x-example": "<TITLE>", - "x-nullable": true - }, - "body": { - "type": "string", - "description": "Body for push notification.", - "x-example": "<BODY>", - "x-nullable": true - }, - "data": { - "type": "object", - "description": "Additional Data for push notification.", - "x-example": "{}", - "x-nullable": true - }, - "action": { - "type": "string", - "description": "Action for push notification.", - "x-example": "<ACTION>", - "x-nullable": true - }, - "image": { - "type": "string", - "description": "Image for push notification. Must be a compound bucket ID to file ID of a jpeg, png, or bmp image in Appwrite Storage. It should be formatted as <BUCKET_ID>:<FILE_ID>.", - "x-example": "<ID1:ID2>", - "x-nullable": true - }, - "icon": { - "type": "string", - "description": "Icon for push notification. Available only for Android and Web platforms.", - "x-example": "<ICON>", - "x-nullable": true - }, - "sound": { - "type": "string", - "description": "Sound for push notification. Available only for Android and iOS platforms.", - "x-example": "<SOUND>", - "x-nullable": true - }, - "color": { - "type": "string", - "description": "Color for push notification. Available only for Android platforms.", - "x-example": "<COLOR>", - "x-nullable": true - }, - "tag": { - "type": "string", - "description": "Tag for push notification. Available only for Android platforms.", - "x-example": "<TAG>", - "x-nullable": true - }, - "badge": { - "type": "integer", - "description": "Badge for push notification. Available only for iOS platforms.", - "x-example": null, - "format": "int32", - "x-nullable": true - }, - "draft": { - "type": "boolean", - "description": "Is message a draft", - "x-example": false, - "x-nullable": true - }, - "scheduledAt": { - "type": "string", - "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", - "x-example": null, - "x-nullable": true - }, - "contentAvailable": { - "type": "boolean", - "description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.", - "x-example": false, - "x-nullable": true - }, - "critical": { - "type": "boolean", - "description": "If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.", - "x-example": false, - "x-nullable": true - }, - "priority": { - "type": "string", - "description": "Set the notification priority. \"normal\" will consider device battery state and may send notifications later. \"high\" will always attempt to immediately deliver the notification.", - "x-example": "normal", - "enum": [ - "normal", - "high" - ], - "x-enum-name": "MessagePriority", - "x-enum-keys": [], - "x-nullable": true - } - } - } - } - } - } + ] } }, - "\/messaging\/messages\/sms": { - "post": { - "summary": "Create SMS", - "operationId": "messagingCreateSms", + "\/health\/queue\/audits": { + "get": { + "summary": "Get audits queue", + "operationId": "healthGetQueueAudits", "tags": [ - "messaging" + "health" ], - "description": "Create a new SMS message.", + "description": "Get the number of audit logs that are waiting to be processed in the Appwrite internal queue server.", "responses": { - "201": { - "description": "Message", + "200": { + "description": "Health Queue", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/message" + "$ref": "#\/components\/schemas\/healthQueue" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createSms", - "group": "messages", - "weight": 229, + "method": "getQueueAudits", + "group": "queue", + "weight": 514, "cookies": false, "type": "", - "demo": "messaging\/create-sms.md", + "demo": "health\/get-queue-audits.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-sms.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createSMS" - }, - "methods": [ - { - "name": "createSms", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "messageId", - "content", - "topics", - "users", - "targets", - "draft", - "scheduledAt" - ], - "required": [ - "messageId", - "content" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/message" - } - ], - "description": "Create a new SMS message.", - "demo": "messaging\/create-sms.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createSMS" - } - }, - { - "name": "createSMS", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "messageId", - "content", - "topics", - "users", - "targets", - "draft", - "scheduledAt" - ], - "required": [ - "messageId", - "content" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/message" - } - ], - "description": "Create a new SMS message.", - "demo": "messaging\/create-sms.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-audits.md", "auth": { "Project": [] } @@ -27448,175 +28321,60 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "messageId": { - "type": "string", - "description": "Message 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.", - "x-example": "<MESSAGE_ID>" - }, - "content": { - "type": "string", - "description": "SMS Content.", - "x-example": "<CONTENT>" - }, - "topics": { - "type": "array", - "description": "List of Topic IDs.", - "x-example": null, - "items": { - "type": "string" - } - }, - "users": { - "type": "array", - "description": "List of User IDs.", - "x-example": null, - "items": { - "type": "string" - } - }, - "targets": { - "type": "array", - "description": "List of Targets IDs.", - "x-example": null, - "items": { - "type": "string" - } - }, - "draft": { - "type": "boolean", - "description": "Is message a draft", - "x-example": false - }, - "scheduledAt": { - "type": "string", - "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "messageId", - "content" - ] - } - } + "parameters": [ + { + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 5000 + }, + "in": "query" } - } + ] } }, - "\/messaging\/messages\/sms\/{messageId}": { - "patch": { - "summary": "Update SMS", - "operationId": "messagingUpdateSms", + "\/health\/queue\/billing-project-aggregation": { + "get": { + "summary": "Get billing project aggregation queue", + "operationId": "healthGetQueueBillingProjectAggregation", "tags": [ - "messaging" + "health" ], - "description": "Update an SMS message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", + "description": "Get billing project aggregation queue.", "responses": { "200": { - "description": "Message", + "description": "Health Queue", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/message" + "$ref": "#\/components\/schemas\/healthQueue" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateSms", - "group": "messages", - "weight": 236, + "method": "getQueueBillingProjectAggregation", + "group": null, + "weight": 752, "cookies": false, "type": "", - "demo": "messaging\/update-sms.md", + "demo": "health\/get-queue-billing-project-aggregation.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-sms.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateSMS" - }, - "methods": [ - { - "name": "updateSms", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "messageId", - "topics", - "users", - "targets", - "content", - "draft", - "scheduledAt" - ], - "required": [ - "messageId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/message" - } - ], - "description": "Update an SMS message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", - "demo": "messaging\/update-sms.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateSMS" - } - }, - { - "name": "updateSMS", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "messageId", - "topics", - "users", - "targets", - "content", - "draft", - "scheduledAt" - ], - "required": [ - "messageId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/message" - } - ], - "description": "Update an SMS message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", - "demo": "messaging\/update-sms.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-billing-project-aggregation.md", "auth": { "Project": [] } @@ -27629,89 +28387,34 @@ ], "parameters": [ { - "name": "messageId", - "description": "Message ID.", - "required": true, + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, "schema": { - "type": "string", - "x-example": "<MESSAGE_ID>" + "type": "integer", + "format": "int32", + "default": 10000 }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "topics": { - "type": "array", - "description": "List of Topic IDs.", - "x-example": null, - "items": { - "type": "string" - }, - "x-nullable": true - }, - "users": { - "type": "array", - "description": "List of User IDs.", - "x-example": null, - "items": { - "type": "string" - }, - "x-nullable": true - }, - "targets": { - "type": "array", - "description": "List of Targets IDs.", - "x-example": null, - "items": { - "type": "string" - }, - "x-nullable": true - }, - "content": { - "type": "string", - "description": "Email Content.", - "x-example": "<CONTENT>", - "x-nullable": true - }, - "draft": { - "type": "boolean", - "description": "Is message a draft", - "x-example": false, - "x-nullable": true - }, - "scheduledAt": { - "type": "string", - "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", - "x-example": null, - "x-nullable": true - } - } - } - } + "in": "query" } - } + ] } }, - "\/messaging\/messages\/{messageId}": { + "\/health\/queue\/billing-team-aggregation": { "get": { - "summary": "Get message", - "operationId": "messagingGetMessage", + "summary": "Get billing team aggregation queue", + "operationId": "healthGetQueueBillingTeamAggregation", "tags": [ - "messaging" + "health" ], - "description": "Get a message by its unique ID.\n", + "description": "Get billing team aggregation queue.", "responses": { "200": { - "description": "Message", + "description": "Health Queue", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/message" + "$ref": "#\/components\/schemas\/healthQueue" } } } @@ -27719,23 +28422,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "getMessage", - "group": "messages", - "weight": 234, + "method": "getQueueBillingTeamAggregation", + "group": null, + "weight": 751, "cookies": false, "type": "", - "demo": "messaging\/get-message.md", + "demo": "health\/get-queue-billing-team-aggregation.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.read", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/get-message.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-billing-team-aggregation.md", "auth": { "Project": [] } @@ -27748,48 +28451,58 @@ ], "parameters": [ { - "name": "messageId", - "description": "Message ID.", - "required": true, + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, "schema": { - "type": "string", - "x-example": "<MESSAGE_ID>" + "type": "integer", + "format": "int32", + "default": 10000 }, - "in": "path" + "in": "query" } ] - }, - "delete": { - "summary": "Delete message", - "operationId": "messagingDelete", + } + }, + "\/health\/queue\/builds": { + "get": { + "summary": "Get builds queue", + "operationId": "healthGetQueueBuilds", "tags": [ - "messaging" + "health" ], - "description": "Delete a message. If the message is not a draft or scheduled, but has been sent, this will not recall the message.", + "description": "Get the number of builds that are waiting to be processed in the Appwrite internal queue server.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Health Queue", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/healthQueue" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": "messages", - "weight": 238, + "method": "getQueueBuilds", + "group": "queue", + "weight": 518, "cookies": false, "type": "", - "demo": "messaging\/delete.md", + "demo": "health\/get-queue-builds.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-message.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-builds.md", "auth": { "Project": [] } @@ -27802,33 +28515,34 @@ ], "parameters": [ { - "name": "messageId", - "description": "Message ID.", - "required": true, + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, "schema": { - "type": "string", - "x-example": "<MESSAGE_ID>" + "type": "integer", + "format": "int32", + "default": 5000 }, - "in": "path" + "in": "query" } ] } }, - "\/messaging\/messages\/{messageId}\/logs": { + "\/health\/queue\/builds-priority": { "get": { - "summary": "List message logs", - "operationId": "messagingListMessageLogs", + "summary": "Get billing aggregation queue", + "operationId": "healthGetQueuePriorityBuilds", "tags": [ - "messaging" + "health" ], - "description": "Get the message activity logs listed by its unique ID.", + "description": "Get the priority builds queue size.", "responses": { "200": { - "description": "Logs List", + "description": "Health Queue", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/logList" + "$ref": "#\/components\/schemas\/healthQueue" } } } @@ -27836,23 +28550,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "listMessageLogs", - "group": "logs", - "weight": 232, + "method": "getQueuePriorityBuilds", + "group": null, + "weight": 753, "cookies": false, "type": "", - "demo": "messaging\/list-message-logs.md", + "demo": "health\/get-queue-priority-builds.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.read", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-message-logs.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-priority-builds.md", "auth": { "Project": [] } @@ -27865,57 +28579,34 @@ ], "parameters": [ { - "name": "messageId", - "description": "Message ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<MESSAGE_ID>" - }, - "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). 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.", + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 500.", "required": false, "schema": { - "type": "boolean", - "x-example": false, - "default": true + "type": "integer", + "format": "int32", + "default": 500 }, "in": "query" } ] } }, - "\/messaging\/messages\/{messageId}\/targets": { + "\/health\/queue\/certificates": { "get": { - "summary": "List message targets", - "operationId": "messagingListTargets", + "summary": "Get certificates queue", + "operationId": "healthGetQueueCertificates", "tags": [ - "messaging" + "health" ], - "description": "Get a list of the targets associated with a message.", + "description": "Get the number of certificates that are waiting to be issued against [Letsencrypt](https:\/\/letsencrypt.org\/) in the Appwrite internal queue server.", "responses": { "200": { - "description": "Target list", + "description": "Health Queue", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/targetList" + "$ref": "#\/components\/schemas\/healthQueue" } } } @@ -27923,23 +28614,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "listTargets", - "group": "messages", - "weight": 233, + "method": "getQueueCertificates", + "group": "queue", + "weight": 517, "cookies": false, "type": "", - "demo": "messaging\/list-targets.md", + "demo": "health\/get-queue-certificates.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.read", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-message-targets.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-certificates.md", "auth": { "Project": [] } @@ -27952,57 +28643,34 @@ ], "parameters": [ { - "name": "messageId", - "description": "Message ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<MESSAGE_ID>" - }, - "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: userId, providerId, identifier, providerType", - "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.", + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", "required": false, "schema": { - "type": "boolean", - "x-example": false, - "default": true + "type": "integer", + "format": "int32", + "default": 5000 }, "in": "query" } ] } }, - "\/messaging\/providers": { + "\/health\/queue\/databases": { "get": { - "summary": "List providers", - "operationId": "messagingListProviders", + "summary": "Get databases queue", + "operationId": "healthGetQueueDatabases", "tags": [ - "messaging" + "health" ], - "description": "Get a list of all providers from the current Appwrite project.", + "description": "Get the number of database changes that are waiting to be processed in the Appwrite internal queue server.", "responses": { "200": { - "description": "Provider list", + "description": "Health Queue", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/providerList" + "$ref": "#\/components\/schemas\/healthQueue" } } } @@ -28010,23 +28678,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "listProviders", - "group": "providers", - "weight": 202, + "method": "getQueueDatabases", + "group": "queue", + "weight": 519, "cookies": false, "type": "", - "demo": "messaging\/list-providers.md", + "demo": "health\/get-queue-databases.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.read", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-providers.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-databases.md", "auth": { "Project": [] } @@ -28039,154 +28707,69 @@ ], "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, provider, type, enabled", - "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.", + "name": "name", + "description": "Queue name for which to check the queue size", "required": false, "schema": { "type": "string", - "x-example": "<SEARCH>", - "default": "" + "x-example": "<NAME>", + "default": "database_db_main" }, "in": "query" }, { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", "required": false, "schema": { - "type": "boolean", - "x-example": false, - "default": true + "type": "integer", + "format": "int32", + "default": 5000 }, "in": "query" } ] } }, - "\/messaging\/providers\/apns": { - "post": { - "summary": "Create APNS provider", - "operationId": "messagingCreateApnsProvider", + "\/health\/queue\/deletes": { + "get": { + "summary": "Get deletes queue", + "operationId": "healthGetQueueDeletes", "tags": [ - "messaging" + "health" ], - "description": "Create a new Apple Push Notification service provider.", + "description": "Get the number of background destructive changes that are waiting to be processed in the Appwrite internal queue server.", "responses": { - "201": { - "description": "Provider", + "200": { + "description": "Health Queue", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/healthQueue" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createApnsProvider", - "group": "providers", - "weight": 201, + "method": "getQueueDeletes", + "group": "queue", + "weight": 520, "cookies": false, "type": "", - "demo": "messaging\/create-apns-provider.md", + "demo": "health\/get-queue-deletes.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-apns-provider.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createAPNSProvider" - }, - "methods": [ - { - "name": "createApnsProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "providerId", - "name", - "authKey", - "authKeyId", - "teamId", - "bundleId", - "sandbox", - "enabled" - ], - "required": [ - "providerId", - "name" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Create a new Apple Push Notification service provider.", - "demo": "messaging\/create-apns-provider.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createAPNSProvider" - } - }, - { - "name": "createAPNSProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "providerId", - "name", - "authKey", - "authKeyId", - "teamId", - "bundleId", - "sandbox", - "enabled" - ], - "required": [ - "providerId", - "name" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Create a new Apple Push Notification service provider.", - "demo": "messaging\/create-apns-provider.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-deletes.md", "auth": { "Project": [] } @@ -28197,173 +28780,60 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "type": "string", - "description": "Provider 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.", - "x-example": "<PROVIDER_ID>" - }, - "name": { - "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "authKey": { - "type": "string", - "description": "APNS authentication key.", - "x-example": "<AUTH_KEY>" - }, - "authKeyId": { - "type": "string", - "description": "APNS authentication key ID.", - "x-example": "<AUTH_KEY_ID>" - }, - "teamId": { - "type": "string", - "description": "APNS team ID.", - "x-example": "<TEAM_ID>" - }, - "bundleId": { - "type": "string", - "description": "APNS bundle ID.", - "x-example": "<BUNDLE_ID>" - }, - "sandbox": { - "type": "boolean", - "description": "Use APNS sandbox environment.", - "x-example": false - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } - } + "parameters": [ + { + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 5000 + }, + "in": "query" } - } + ] } }, - "\/messaging\/providers\/apns\/{providerId}": { - "patch": { - "summary": "Update APNS provider", - "operationId": "messagingUpdateApnsProvider", + "\/health\/queue\/failed\/{name}": { + "get": { + "summary": "Get number of failed queue jobs", + "operationId": "healthGetFailedJobs", "tags": [ - "messaging" + "health" ], - "description": "Update a Apple Push Notification service provider by its unique ID.", + "description": "Returns the amount of failed jobs in a given queue.\n", "responses": { "200": { - "description": "Provider", + "description": "Health Queue", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/healthQueue" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateApnsProvider", - "group": "providers", - "weight": 215, + "method": "getFailedJobs", + "group": "queue", + "weight": 527, "cookies": false, "type": "", - "demo": "messaging\/update-apns-provider.md", + "demo": "health\/get-failed-jobs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-apns-provider.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateAPNSProvider" - }, - "methods": [ - { - "name": "updateApnsProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "providerId", - "name", - "enabled", - "authKey", - "authKeyId", - "teamId", - "bundleId", - "sandbox" - ], - "required": [ - "providerId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Update a Apple Push Notification service provider by its unique ID.", - "demo": "messaging\/update-apns-provider.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateAPNSProvider" - } - }, - { - "name": "updateAPNSProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "providerId", - "name", - "enabled", - "authKey", - "authKeyId", - "teamId", - "bundleId", - "sandbox" - ], - "required": [ - "providerId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Update a Apple Push Notification service provider by its unique ID.", - "demo": "messaging\/update-apns-provider.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-failed-queue-jobs.md", "auth": { "Project": [] } @@ -28376,169 +28846,85 @@ ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", + "name": "name", + "description": "The name of the queue", "required": true, "schema": { "type": "string", - "x-example": "<PROVIDER_ID>" + "x-example": "v1-database", + "enum": [ + "v1-database", + "v1-deletes", + "v1-audits", + "v1-mails", + "v1-functions", + "v1-stats-resources", + "v1-stats-usage", + "v1-webhooks", + "v1-certificates", + "v1-builds", + "v1-screenshots", + "v1-messaging", + "v1-migrations" + ], + "x-enum-name": null, + "x-enum-keys": [] }, "in": "path" + }, + { + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 5000 + }, + "in": "query" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - }, - "authKey": { - "type": "string", - "description": "APNS authentication key.", - "x-example": "<AUTH_KEY>" - }, - "authKeyId": { - "type": "string", - "description": "APNS authentication key ID.", - "x-example": "<AUTH_KEY_ID>" - }, - "teamId": { - "type": "string", - "description": "APNS team ID.", - "x-example": "<TEAM_ID>" - }, - "bundleId": { - "type": "string", - "description": "APNS bundle ID.", - "x-example": "<BUNDLE_ID>" - }, - "sandbox": { - "type": "boolean", - "description": "Use APNS sandbox environment.", - "x-example": false, - "x-nullable": true - } - } - } - } - } - } + ] } }, - "\/messaging\/providers\/fcm": { - "post": { - "summary": "Create FCM provider", - "operationId": "messagingCreateFcmProvider", + "\/health\/queue\/functions": { + "get": { + "summary": "Get functions queue", + "operationId": "healthGetQueueFunctions", "tags": [ - "messaging" + "health" ], - "description": "Create a new Firebase Cloud Messaging provider.", + "description": "Get the number of function executions that are waiting to be processed in the Appwrite internal queue server.", "responses": { - "201": { - "description": "Provider", + "200": { + "description": "Health Queue", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/healthQueue" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createFcmProvider", - "group": "providers", - "weight": 200, + "method": "getQueueFunctions", + "group": "queue", + "weight": 524, "cookies": false, "type": "", - "demo": "messaging\/create-fcm-provider.md", + "demo": "health\/get-queue-functions.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-fcm-provider.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createFCMProvider" - }, - "methods": [ - { - "name": "createFcmProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "providerId", - "name", - "serviceAccountJSON", - "enabled" - ], - "required": [ - "providerId", - "name" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Create a new Firebase Cloud Messaging provider.", - "demo": "messaging\/create-fcm-provider.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createFCMProvider" - } - }, - { - "name": "createFCMProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "providerId", - "name", - "serviceAccountJSON", - "enabled" - ], - "required": [ - "providerId", - "name" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Create a new Firebase Cloud Messaging provider.", - "demo": "messaging\/create-fcm-provider.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-functions.md", "auth": { "Project": [] } @@ -28549,146 +28935,60 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "type": "string", - "description": "Provider 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.", - "x-example": "<PROVIDER_ID>" - }, - "name": { - "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "serviceAccountJSON": { - "type": "object", - "description": "FCM service account JSON.", - "x-example": "{}", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } - } + "parameters": [ + { + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 5000 + }, + "in": "query" } - } + ] } }, - "\/messaging\/providers\/fcm\/{providerId}": { - "patch": { - "summary": "Update FCM provider", - "operationId": "messagingUpdateFcmProvider", + "\/health\/queue\/logs": { + "get": { + "summary": "Get logs queue", + "operationId": "healthGetQueueLogs", "tags": [ - "messaging" + "health" ], - "description": "Update a Firebase Cloud Messaging provider by its unique ID.", + "description": "Get the number of logs that are waiting to be processed in the Appwrite internal queue server.", "responses": { "200": { - "description": "Provider", + "description": "Health Queue", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/healthQueue" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateFcmProvider", - "group": "providers", - "weight": 214, + "method": "getQueueLogs", + "group": "queue", + "weight": 516, "cookies": false, "type": "", - "demo": "messaging\/update-fcm-provider.md", + "demo": "health\/get-queue-logs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-fcm-provider.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateFCMProvider" - }, - "methods": [ - { - "name": "updateFcmProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "providerId", - "name", - "enabled", - "serviceAccountJSON" - ], - "required": [ - "providerId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Update a Firebase Cloud Messaging provider by its unique ID.", - "demo": "messaging\/update-fcm-provider.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateFCMProvider" - } - }, - { - "name": "updateFCMProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "providerId", - "name", - "enabled", - "serviceAccountJSON" - ], - "required": [ - "providerId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Update a Firebase Cloud Messaging provider by its unique ID.", - "demo": "messaging\/update-fcm-provider.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-logs.md", "auth": { "Project": [] } @@ -28701,61 +29001,34 @@ ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", - "required": true, + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, "schema": { - "type": "string", - "x-example": "<PROVIDER_ID>" + "type": "integer", + "format": "int32", + "default": 5000 }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - }, - "serviceAccountJSON": { - "type": "object", - "description": "FCM service account JSON.", - "x-example": "{}", - "x-nullable": true - } - } - } - } + "in": "query" } - } + ] } }, - "\/messaging\/providers\/mailgun": { - "post": { - "summary": "Create Mailgun provider", - "operationId": "messagingCreateMailgunProvider", + "\/health\/queue\/mails": { + "get": { + "summary": "Get mails queue", + "operationId": "healthGetQueueMails", "tags": [ - "messaging" + "health" ], - "description": "Create a new Mailgun provider.", + "description": "Get the number of mails that are waiting to be processed in the Appwrite internal queue server.", "responses": { - "201": { - "description": "Provider", + "200": { + "description": "Health Queue", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/healthQueue" } } } @@ -28763,23 +29036,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "createMailgunProvider", - "group": "providers", - "weight": 191, + "method": "getQueueMails", + "group": "queue", + "weight": 521, "cookies": false, "type": "", - "demo": "messaging\/create-mailgun-provider.md", + "demo": "health\/get-queue-mails.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-mailgun-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-mails.md", "auth": { "Project": [] } @@ -28790,92 +29063,36 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "type": "string", - "description": "Provider 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.", - "x-example": "<PROVIDER_ID>" - }, - "name": { - "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "apiKey": { - "type": "string", - "description": "Mailgun API Key.", - "x-example": "<API_KEY>" - }, - "domain": { - "type": "string", - "description": "Mailgun Domain.", - "x-example": "<DOMAIN>" - }, - "isEuRegion": { - "type": "boolean", - "description": "Set as EU region.", - "x-example": false, - "x-nullable": true - }, - "fromName": { - "type": "string", - "description": "Sender Name.", - "x-example": "<FROM_NAME>" - }, - "fromEmail": { - "type": "string", - "description": "Sender email address.", - "x-example": "email@example.com", - "format": "email" - }, - "replyToName": { - "type": "string", - "description": "Name set in the reply to field for the mail. Default value is sender name. Reply to name must have reply to email as well.", - "x-example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "type": "string", - "description": "Email set in the reply to field for the mail. Default value is sender email. Reply to email must have reply to name as well.", - "x-example": "email@example.com", - "format": "email" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } - } + "parameters": [ + { + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 5000 + }, + "in": "query" } - } + ] } }, - "\/messaging\/providers\/mailgun\/{providerId}": { - "patch": { - "summary": "Update Mailgun provider", - "operationId": "messagingUpdateMailgunProvider", + "\/health\/queue\/messaging": { + "get": { + "summary": "Get messaging queue", + "operationId": "healthGetQueueMessaging", "tags": [ - "messaging" + "health" ], - "description": "Update a Mailgun provider by its unique ID.", + "description": "Get the number of messages that are waiting to be processed in the Appwrite internal queue server.", "responses": { "200": { - "description": "Provider", + "description": "Health Queue", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/healthQueue" } } } @@ -28883,23 +29100,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateMailgunProvider", - "group": "providers", - "weight": 205, + "method": "getQueueMessaging", + "group": "queue", + "weight": 522, "cookies": false, "type": "", - "demo": "messaging\/update-mailgun-provider.md", + "demo": "health\/get-queue-messaging.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-mailgun-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-messaging.md", "auth": { "Project": [] } @@ -28912,92 +29129,34 @@ ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", - "required": true, + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, "schema": { - "type": "string", - "x-example": "<PROVIDER_ID>" + "type": "integer", + "format": "int32", + "default": 5000 }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "apiKey": { - "type": "string", - "description": "Mailgun API Key.", - "x-example": "<API_KEY>" - }, - "domain": { - "type": "string", - "description": "Mailgun Domain.", - "x-example": "<DOMAIN>" - }, - "isEuRegion": { - "type": "boolean", - "description": "Set as EU region.", - "x-example": false, - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - }, - "fromName": { - "type": "string", - "description": "Sender Name.", - "x-example": "<FROM_NAME>" - }, - "fromEmail": { - "type": "string", - "description": "Sender email address.", - "x-example": "email@example.com", - "format": "email" - }, - "replyToName": { - "type": "string", - "description": "Name set in the reply to field for the mail. Default value is sender name.", - "x-example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "type": "string", - "description": "Email set in the reply to field for the mail. Default value is sender email.", - "x-example": "<REPLY_TO_EMAIL>" - } - } - } - } + "in": "query" } - } + ] } }, - "\/messaging\/providers\/msg91": { - "post": { - "summary": "Create Msg91 provider", - "operationId": "messagingCreateMsg91Provider", + "\/health\/queue\/migrations": { + "get": { + "summary": "Get migrations queue", + "operationId": "healthGetQueueMigrations", "tags": [ - "messaging" + "health" ], - "description": "Create a new MSG91 provider.", + "description": "Get the number of migrations that are waiting to be processed in the Appwrite internal queue server.", "responses": { - "201": { - "description": "Provider", + "200": { + "description": "Health Queue", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/healthQueue" } } } @@ -29005,23 +29164,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "createMsg91Provider", - "group": "providers", - "weight": 195, + "method": "getQueueMigrations", + "group": "queue", + "weight": 523, "cookies": false, "type": "", - "demo": "messaging\/create-msg-91-provider.md", + "demo": "health\/get-queue-migrations.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-msg91-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-migrations.md", "auth": { "Project": [] } @@ -29032,69 +29191,36 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "type": "string", - "description": "Provider 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.", - "x-example": "<PROVIDER_ID>" - }, - "name": { - "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "templateId": { - "type": "string", - "description": "Msg91 template ID", - "x-example": "<TEMPLATE_ID>" - }, - "senderId": { - "type": "string", - "description": "Msg91 sender ID.", - "x-example": "<SENDER_ID>" - }, - "authKey": { - "type": "string", - "description": "Msg91 auth key.", - "x-example": "<AUTH_KEY>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } - } + "parameters": [ + { + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 5000 + }, + "in": "query" } - } + ] } }, - "\/messaging\/providers\/msg91\/{providerId}": { - "patch": { - "summary": "Update Msg91 provider", - "operationId": "messagingUpdateMsg91Provider", + "\/health\/queue\/region-manager": { + "get": { + "summary": "Get region manager queue", + "operationId": "healthGetQueueRegionManager", "tags": [ - "messaging" + "health" ], - "description": "Update a MSG91 provider by its unique ID.", + "description": "Get region manager queue.", "responses": { "200": { - "description": "Provider", + "description": "Health Queue", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/healthQueue" } } } @@ -29102,23 +29228,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateMsg91Provider", - "group": "providers", - "weight": 209, + "method": "getQueueRegionManager", + "group": null, + "weight": 754, "cookies": false, "type": "", - "demo": "messaging\/update-msg-91-provider.md", + "demo": "health\/get-queue-region-manager.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-msg91-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-region-manager.md", "auth": { "Project": [] } @@ -29131,70 +29257,34 @@ ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", - "required": true, + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 100.", + "required": false, "schema": { - "type": "string", - "x-example": "<PROVIDER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - }, - "templateId": { - "type": "string", - "description": "Msg91 template ID.", - "x-example": "<TEMPLATE_ID>" - }, - "senderId": { - "type": "string", - "description": "Msg91 sender ID.", - "x-example": "<SENDER_ID>" - }, - "authKey": { - "type": "string", - "description": "Msg91 auth key.", - "x-example": "<AUTH_KEY>" - } - } - } - } + "type": "integer", + "format": "int32", + "default": 100 + }, + "in": "query" } - } + ] } }, - "\/messaging\/providers\/resend": { - "post": { - "summary": "Create Resend provider", - "operationId": "messagingCreateResendProvider", + "\/health\/queue\/stats-resources": { + "get": { + "summary": "Get stats resources queue", + "operationId": "healthGetQueueStatsResources", "tags": [ - "messaging" + "health" ], - "description": "Create a new Resend provider.", + "description": "Get the number of metrics that are waiting to be processed in the Appwrite stats resources queue.", "responses": { - "201": { - "description": "Provider", + "200": { + "description": "Health Queue", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/healthQueue" } } } @@ -29202,23 +29292,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "createResendProvider", - "group": "providers", - "weight": 193, + "method": "getQueueStatsResources", + "group": "queue", + "weight": 525, "cookies": false, "type": "", - "demo": "messaging\/create-resend-provider.md", + "demo": "health\/get-queue-stats-resources.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-resend-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-stats-resources.md", "auth": { "Project": [] } @@ -29229,81 +29319,36 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "type": "string", - "description": "Provider 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.", - "x-example": "<PROVIDER_ID>" - }, - "name": { - "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "apiKey": { - "type": "string", - "description": "Resend API key.", - "x-example": "<API_KEY>" - }, - "fromName": { - "type": "string", - "description": "Sender Name.", - "x-example": "<FROM_NAME>" - }, - "fromEmail": { - "type": "string", - "description": "Sender email address.", - "x-example": "email@example.com", - "format": "email" - }, - "replyToName": { - "type": "string", - "description": "Name set in the reply to field for the mail. Default value is sender name.", - "x-example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "type": "string", - "description": "Email set in the reply to field for the mail. Default value is sender email.", - "x-example": "email@example.com", - "format": "email" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } - } + "parameters": [ + { + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 5000 + }, + "in": "query" } - } + ] } }, - "\/messaging\/providers\/resend\/{providerId}": { - "patch": { - "summary": "Update Resend provider", - "operationId": "messagingUpdateResendProvider", + "\/health\/queue\/stats-usage": { + "get": { + "summary": "Get stats usage queue", + "operationId": "healthGetQueueUsage", "tags": [ - "messaging" + "health" ], - "description": "Update a Resend provider by its unique ID.", + "description": "Get the number of metrics that are waiting to be processed in the Appwrite internal queue server.", "responses": { "200": { - "description": "Provider", + "description": "Health Queue", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/healthQueue" } } } @@ -29311,23 +29356,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateResendProvider", - "group": "providers", - "weight": 207, + "method": "getQueueUsage", + "group": "queue", + "weight": 526, "cookies": false, "type": "", - "demo": "messaging\/update-resend-provider.md", + "demo": "health\/get-queue-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-resend-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-stats-usage.md", "auth": { "Project": [] } @@ -29340,81 +29385,34 @@ ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", - "required": true, + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, "schema": { - "type": "string", - "x-example": "<PROVIDER_ID>" + "type": "integer", + "format": "int32", + "default": 5000 }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - }, - "apiKey": { - "type": "string", - "description": "Resend API key.", - "x-example": "<API_KEY>" - }, - "fromName": { - "type": "string", - "description": "Sender Name.", - "x-example": "<FROM_NAME>" - }, - "fromEmail": { - "type": "string", - "description": "Sender email address.", - "x-example": "email@example.com", - "format": "email" - }, - "replyToName": { - "type": "string", - "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", - "x-example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "type": "string", - "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", - "x-example": "<REPLY_TO_EMAIL>" - } - } - } - } + "in": "query" } - } + ] } }, - "\/messaging\/providers\/sendgrid": { - "post": { - "summary": "Create Sendgrid provider", - "operationId": "messagingCreateSendgridProvider", + "\/health\/queue\/threats": { + "get": { + "summary": "Get threats queue", + "operationId": "healthGetQueueThreats", "tags": [ - "messaging" + "health" ], - "description": "Create a new Sendgrid provider.", + "description": "Get threats queue.", "responses": { - "201": { - "description": "Provider", + "200": { + "description": "Health Queue", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/healthQueue" } } } @@ -29422,23 +29420,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "createSendgridProvider", - "group": "providers", - "weight": 192, + "method": "getQueueThreats", + "group": null, + "weight": 755, "cookies": false, "type": "", - "demo": "messaging\/create-sendgrid-provider.md", + "demo": "health\/get-queue-threats.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-sendgrid-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-threats.md", "auth": { "Project": [] } @@ -29449,81 +29447,36 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "type": "string", - "description": "Provider 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.", - "x-example": "<PROVIDER_ID>" - }, - "name": { - "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "apiKey": { - "type": "string", - "description": "Sendgrid API key.", - "x-example": "<API_KEY>" - }, - "fromName": { - "type": "string", - "description": "Sender Name.", - "x-example": "<FROM_NAME>" - }, - "fromEmail": { - "type": "string", - "description": "Sender email address.", - "x-example": "email@example.com", - "format": "email" - }, - "replyToName": { - "type": "string", - "description": "Name set in the reply to field for the mail. Default value is sender name.", - "x-example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "type": "string", - "description": "Email set in the reply to field for the mail. Default value is sender email.", - "x-example": "email@example.com", - "format": "email" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } - } + "parameters": [ + { + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 100 + }, + "in": "query" } - } + ] } }, - "\/messaging\/providers\/sendgrid\/{providerId}": { - "patch": { - "summary": "Update Sendgrid provider", - "operationId": "messagingUpdateSendgridProvider", + "\/health\/queue\/webhooks": { + "get": { + "summary": "Get webhooks queue", + "operationId": "healthGetQueueWebhooks", "tags": [ - "messaging" + "health" ], - "description": "Update a Sendgrid provider by its unique ID.", + "description": "Get the number of webhooks that are waiting to be processed in the Appwrite internal queue server.", "responses": { "200": { - "description": "Provider", + "description": "Health Queue", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/healthQueue" } } } @@ -29531,23 +29484,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateSendgridProvider", - "group": "providers", - "weight": 206, + "method": "getQueueWebhooks", + "group": "queue", + "weight": 515, "cookies": false, "type": "", - "demo": "messaging\/update-sendgrid-provider.md", + "demo": "health\/get-queue-webhooks.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-sendgrid-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-webhooks.md", "auth": { "Project": [] } @@ -29560,191 +29513,109 @@ ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", - "required": true, + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, "schema": { - "type": "string", - "x-example": "<PROVIDER_ID>" + "type": "integer", + "format": "int32", + "default": 5000 }, - "in": "path" + "in": "query" } + ] + } + }, + "\/health\/storage": { + "get": { + "summary": "Get storage", + "operationId": "healthGetStorage", + "tags": [ + "health" ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - }, - "apiKey": { - "type": "string", - "description": "Sendgrid API key.", - "x-example": "<API_KEY>" - }, - "fromName": { - "type": "string", - "description": "Sender Name.", - "x-example": "<FROM_NAME>" - }, - "fromEmail": { - "type": "string", - "description": "Sender email address.", - "x-example": "email@example.com", - "format": "email" - }, - "replyToName": { - "type": "string", - "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", - "x-example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "type": "string", - "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", - "x-example": "<REPLY_TO_EMAIL>" - } + "description": "Check the Appwrite storage device is up and connection is successful.", + "responses": { + "200": { + "description": "Health Status", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/healthStatus" } } } } - } + }, + "deprecated": false, + "x-appwrite": { + "method": "getStorage", + "group": "storage", + "weight": 512, + "cookies": false, + "type": "", + "demo": "health\/get-storage.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-storage.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ] } }, - "\/messaging\/providers\/smtp": { - "post": { - "summary": "Create SMTP provider", - "operationId": "messagingCreateSmtpProvider", + "\/health\/storage\/local": { + "get": { + "summary": "Get local storage", + "operationId": "healthGetStorageLocal", "tags": [ - "messaging" + "health" ], - "description": "Create a new SMTP provider.", + "description": "Check the Appwrite local storage device is up and connection is successful.", "responses": { - "201": { - "description": "Provider", + "200": { + "description": "Health Status", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/healthStatus" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createSmtpProvider", - "group": "providers", - "weight": 194, + "method": "getStorageLocal", + "group": "storage", + "weight": 511, "cookies": false, "type": "", - "demo": "messaging\/create-smtp-provider.md", + "demo": "health\/get-storage-local.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-smtp-provider.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createSMTPProvider" - }, - "methods": [ - { - "name": "createSmtpProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "providerId", - "name", - "host", - "port", - "username", - "password", - "encryption", - "autoTLS", - "mailer", - "fromName", - "fromEmail", - "replyToName", - "replyToEmail", - "enabled" - ], - "required": [ - "providerId", - "name", - "host" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Create a new SMTP provider.", - "demo": "messaging\/create-smtp-provider.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createSMTPProvider" - } - }, - { - "name": "createSMTPProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "providerId", - "name", - "host", - "port", - "username", - "password", - "encryption", - "autoTLS", - "mailer", - "fromName", - "fromEmail", - "replyToName", - "replyToEmail", - "enabled" - ], - "required": [ - "providerId", - "name", - "host" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Create a new SMTP provider.", - "demo": "messaging\/create-smtp-provider.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-storage-local.md", "auth": { "Project": [] } @@ -29754,227 +29625,48 @@ "Project": [], "Key": [] } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "type": "string", - "description": "Provider 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.", - "x-example": "<PROVIDER_ID>" - }, - "name": { - "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "host": { - "type": "string", - "description": "SMTP hosts. Either a single hostname or multiple semicolon-delimited hostnames. You can also specify a different port for each host such as `smtp1.example.com:25;smtp2.example.com`. You can also specify encryption type, for example: `tls:\/\/smtp1.example.com:587;ssl:\/\/smtp2.example.com:465\"`. Hosts will be tried in order.", - "x-example": "<HOST>" - }, - "port": { - "type": "integer", - "description": "The default SMTP server port.", - "x-example": 1, - "format": "int32" - }, - "username": { - "type": "string", - "description": "Authentication username.", - "x-example": "<USERNAME>" - }, - "password": { - "type": "string", - "description": "Authentication password.", - "x-example": "<PASSWORD>" - }, - "encryption": { - "type": "string", - "description": "Encryption type. Can be omitted, 'ssl', or 'tls'", - "x-example": "none", - "enum": [ - "none", - "ssl", - "tls" - ], - "x-enum-name": "SmtpEncryption", - "x-enum-keys": [] - }, - "autoTLS": { - "type": "boolean", - "description": "Enable SMTP AutoTLS feature.", - "x-example": false - }, - "mailer": { - "type": "string", - "description": "The value to use for the X-Mailer header.", - "x-example": "<MAILER>" - }, - "fromName": { - "type": "string", - "description": "Sender Name.", - "x-example": "<FROM_NAME>" - }, - "fromEmail": { - "type": "string", - "description": "Sender email address.", - "x-example": "email@example.com", - "format": "email" - }, - "replyToName": { - "type": "string", - "description": "Name set in the reply to field for the mail. Default value is sender name.", - "x-example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "type": "string", - "description": "Email set in the reply to field for the mail. Default value is sender email.", - "x-example": "email@example.com", - "format": "email" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - } - }, - "required": [ - "providerId", - "name", - "host" - ] - } - } - } - } + ] } }, - "\/messaging\/providers\/smtp\/{providerId}": { - "patch": { - "summary": "Update SMTP provider", - "operationId": "messagingUpdateSmtpProvider", + "\/health\/time": { + "get": { + "summary": "Get time", + "operationId": "healthGetTime", "tags": [ - "messaging" + "health" ], - "description": "Update a SMTP provider by its unique ID.", + "description": "Check the Appwrite server time is synced with Google remote NTP server. We use this technology to smoothly handle leap seconds with no disruptive events. The [Network Time Protocol](https:\/\/en.wikipedia.org\/wiki\/Network_Time_Protocol) (NTP) is used by hundreds of millions of computers and devices to synchronize their clocks over the Internet. If your computer sets its own clock, it likely uses NTP.", "responses": { "200": { - "description": "Provider", + "description": "Health Time", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/healthTime" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateSmtpProvider", - "group": "providers", - "weight": 208, + "method": "getTime", + "group": "health", + "weight": 509, "cookies": false, "type": "", - "demo": "messaging\/update-smtp-provider.md", + "demo": "health\/get-time.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-smtp-provider.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateSMTPProvider" - }, - "methods": [ - { - "name": "updateSmtpProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "providerId", - "name", - "host", - "port", - "username", - "password", - "encryption", - "autoTLS", - "mailer", - "fromName", - "fromEmail", - "replyToName", - "replyToEmail", - "enabled" - ], - "required": [ - "providerId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Update a SMTP provider by its unique ID.", - "demo": "messaging\/update-smtp-provider.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateSMTPProvider" - } - }, - { - "name": "updateSMTPProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "providerId", - "name", - "host", - "port", - "username", - "password", - "encryption", - "autoTLS", - "mailer", - "fromName", - "fromEmail", - "replyToName", - "replyToEmail", - "enabled" - ], - "required": [ - "providerId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Update a SMTP provider by its unique ID.", - "demo": "messaging\/update-smtp-provider.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-time.md", "auth": { "Project": [] } @@ -29984,124 +29676,24 @@ "Project": [], "Key": [] } - ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PROVIDER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "host": { - "type": "string", - "description": "SMTP hosts. Either a single hostname or multiple semicolon-delimited hostnames. You can also specify a different port for each host such as `smtp1.example.com:25;smtp2.example.com`. You can also specify encryption type, for example: `tls:\/\/smtp1.example.com:587;ssl:\/\/smtp2.example.com:465\"`. Hosts will be tried in order.", - "x-example": "<HOST>" - }, - "port": { - "type": "integer", - "description": "SMTP port.", - "x-example": 1, - "format": "int32", - "x-nullable": true - }, - "username": { - "type": "string", - "description": "Authentication username.", - "x-example": "<USERNAME>" - }, - "password": { - "type": "string", - "description": "Authentication password.", - "x-example": "<PASSWORD>" - }, - "encryption": { - "type": "string", - "description": "Encryption type. Can be 'ssl' or 'tls'", - "x-example": "none", - "enum": [ - "none", - "ssl", - "tls" - ], - "x-enum-name": "SmtpEncryption", - "x-enum-keys": [] - }, - "autoTLS": { - "type": "boolean", - "description": "Enable SMTP AutoTLS feature.", - "x-example": false, - "x-nullable": true - }, - "mailer": { - "type": "string", - "description": "The value to use for the X-Mailer header.", - "x-example": "<MAILER>" - }, - "fromName": { - "type": "string", - "description": "Sender Name.", - "x-example": "<FROM_NAME>" - }, - "fromEmail": { - "type": "string", - "description": "Sender email address.", - "x-example": "email@example.com", - "format": "email" - }, - "replyToName": { - "type": "string", - "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", - "x-example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "type": "string", - "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", - "x-example": "<REPLY_TO_EMAIL>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - } - } - } - } - } - } + ] } }, - "\/messaging\/providers\/telesign": { - "post": { - "summary": "Create Telesign provider", - "operationId": "messagingCreateTelesignProvider", + "\/locale": { + "get": { + "summary": "Get user locale", + "operationId": "localeGet", "tags": [ - "messaging" + "locale" ], - "description": "Create a new Telesign provider.", + "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": { - "201": { - "description": "Provider", + "200": { + "description": "Locale", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/locale" } } } @@ -30109,23 +29701,25 @@ }, "deprecated": false, "x-appwrite": { - "method": "createTelesignProvider", - "group": "providers", - "weight": 196, + "method": "get", + "group": null, + "weight": 49, "cookies": false, "type": "", - "demo": "messaging\/create-telesign-provider.md", + "demo": "locale\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "locale.read", "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-telesign-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-locale.md", "auth": { "Project": [] } @@ -30133,73 +29727,27 @@ "security": [ { "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "type": "string", - "description": "Provider 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.", - "x-example": "<PROVIDER_ID>" - }, - "name": { - "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "from": { - "type": "string", - "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "x-example": "+12065550100", - "format": "phone" - }, - "customerId": { - "type": "string", - "description": "Telesign customer ID.", - "x-example": "<CUSTOMER_ID>" - }, - "apiKey": { - "type": "string", - "description": "Telesign API key.", - "x-example": "<API_KEY>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } - } + "Key": [], + "JWT": [] } - } + ] } }, - "\/messaging\/providers\/telesign\/{providerId}": { - "patch": { - "summary": "Update Telesign provider", - "operationId": "messagingUpdateTelesignProvider", + "\/locale\/codes": { + "get": { + "summary": "List locale codes", + "operationId": "localeListCodes", "tags": [ - "messaging" + "locale" ], - "description": "Update a Telesign provider by its unique ID.", + "description": "List of all locale codes in [ISO 639-1](https:\/\/en.wikipedia.org\/wiki\/List_of_ISO_639-1_codes).", "responses": { "200": { - "description": "Provider", + "description": "Locale codes list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/localeCodeList" } } } @@ -30207,23 +29755,25 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateTelesignProvider", - "group": "providers", - "weight": 210, + "method": "listCodes", + "group": null, + "weight": 50, "cookies": false, "type": "", - "demo": "messaging\/update-telesign-provider.md", + "demo": "locale\/list-codes.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "locale.read", "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-telesign-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-locale-codes.md", "auth": { "Project": [] } @@ -30231,75 +29781,27 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } + ] + } + }, + "\/locale\/continents": { + "get": { + "summary": "List continents", + "operationId": "localeListContinents", + "tags": [ + "locale" ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PROVIDER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - }, - "customerId": { - "type": "string", - "description": "Telesign customer ID.", - "x-example": "<CUSTOMER_ID>" - }, - "apiKey": { - "type": "string", - "description": "Telesign API key.", - "x-example": "<API_KEY>" - }, - "from": { - "type": "string", - "description": "Sender number.", - "x-example": "<FROM>" - } - } - } - } - } - } - } - }, - "\/messaging\/providers\/textmagic": { - "post": { - "summary": "Create Textmagic provider", - "operationId": "messagingCreateTextmagicProvider", - "tags": [ - "messaging" - ], - "description": "Create a new Textmagic provider.", + "description": "List of all continents. You can use the locale header to get the data in a supported language.", "responses": { - "201": { - "description": "Provider", + "200": { + "description": "Continents List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/continentList" } } } @@ -30307,23 +29809,25 @@ }, "deprecated": false, "x-appwrite": { - "method": "createTextmagicProvider", - "group": "providers", - "weight": 197, + "method": "listContinents", + "group": null, + "weight": 54, "cookies": false, "type": "", - "demo": "messaging\/create-textmagic-provider.md", + "demo": "locale\/list-continents.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "locale.read", "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-textmagic-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-continents.md", "auth": { "Project": [] } @@ -30331,73 +29835,27 @@ "security": [ { "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "type": "string", - "description": "Provider 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.", - "x-example": "<PROVIDER_ID>" - }, - "name": { - "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "from": { - "type": "string", - "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "x-example": "+12065550100", - "format": "phone" - }, - "username": { - "type": "string", - "description": "Textmagic username.", - "x-example": "<USERNAME>" - }, - "apiKey": { - "type": "string", - "description": "Textmagic apiKey.", - "x-example": "<API_KEY>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } - } + "Key": [], + "JWT": [] } - } + ] } }, - "\/messaging\/providers\/textmagic\/{providerId}": { - "patch": { - "summary": "Update Textmagic provider", - "operationId": "messagingUpdateTextmagicProvider", + "\/locale\/countries": { + "get": { + "summary": "List countries", + "operationId": "localeListCountries", "tags": [ - "messaging" + "locale" ], - "description": "Update a Textmagic provider by its unique ID.", + "description": "List of all countries. You can use the locale header to get the data in a supported language.", "responses": { "200": { - "description": "Provider", + "description": "Countries List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/countryList" } } } @@ -30405,23 +29863,25 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateTextmagicProvider", - "group": "providers", - "weight": 211, + "method": "listCountries", + "group": null, + "weight": 51, "cookies": false, "type": "", - "demo": "messaging\/update-textmagic-provider.md", + "demo": "locale\/list-countries.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "locale.read", "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-textmagic-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries.md", "auth": { "Project": [] } @@ -30429,75 +29889,27 @@ "security": [ { "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PROVIDER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - }, - "username": { - "type": "string", - "description": "Textmagic username.", - "x-example": "<USERNAME>" - }, - "apiKey": { - "type": "string", - "description": "Textmagic apiKey.", - "x-example": "<API_KEY>" - }, - "from": { - "type": "string", - "description": "Sender number.", - "x-example": "<FROM>" - } - } - } - } + "Key": [], + "JWT": [] } - } + ] } }, - "\/messaging\/providers\/twilio": { - "post": { - "summary": "Create Twilio provider", - "operationId": "messagingCreateTwilioProvider", + "\/locale\/countries\/eu": { + "get": { + "summary": "List EU countries", + "operationId": "localeListCountriesEU", "tags": [ - "messaging" + "locale" ], - "description": "Create a new Twilio provider.", + "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": { - "201": { - "description": "Provider", + "200": { + "description": "Countries List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/countryList" } } } @@ -30505,23 +29917,25 @@ }, "deprecated": false, "x-appwrite": { - "method": "createTwilioProvider", - "group": "providers", - "weight": 198, + "method": "listCountriesEU", + "group": null, + "weight": 52, "cookies": false, "type": "", - "demo": "messaging\/create-twilio-provider.md", + "demo": "locale\/list-countries-eu.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "locale.read", "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-twilio-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries-eu.md", "auth": { "Project": [] } @@ -30529,73 +29943,27 @@ "security": [ { "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "type": "string", - "description": "Provider 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.", - "x-example": "<PROVIDER_ID>" - }, - "name": { - "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "from": { - "type": "string", - "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "x-example": "+12065550100", - "format": "phone" - }, - "accountSid": { - "type": "string", - "description": "Twilio account secret ID.", - "x-example": "<ACCOUNT_SID>" - }, - "authToken": { - "type": "string", - "description": "Twilio authentication token.", - "x-example": "<AUTH_TOKEN>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } - } + "Key": [], + "JWT": [] } - } + ] } }, - "\/messaging\/providers\/twilio\/{providerId}": { - "patch": { - "summary": "Update Twilio provider", - "operationId": "messagingUpdateTwilioProvider", + "\/locale\/countries\/phones": { + "get": { + "summary": "List countries phone codes", + "operationId": "localeListCountriesPhones", "tags": [ - "messaging" + "locale" ], - "description": "Update a Twilio provider by its unique ID.", + "description": "List of all countries phone codes. You can use the locale header to get the data in a supported language.", "responses": { "200": { - "description": "Provider", + "description": "Phones List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/phoneList" } } } @@ -30603,23 +29971,25 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateTwilioProvider", - "group": "providers", - "weight": 212, + "method": "listCountriesPhones", + "group": null, + "weight": 53, "cookies": false, "type": "", - "demo": "messaging\/update-twilio-provider.md", + "demo": "locale\/list-countries-phones.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "locale.read", "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-twilio-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries-phones.md", "auth": { "Project": [] } @@ -30627,75 +29997,27 @@ "security": [ { "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PROVIDER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - }, - "accountSid": { - "type": "string", - "description": "Twilio account secret ID.", - "x-example": "<ACCOUNT_SID>" - }, - "authToken": { - "type": "string", - "description": "Twilio authentication token.", - "x-example": "<AUTH_TOKEN>" - }, - "from": { - "type": "string", - "description": "Sender number.", - "x-example": "<FROM>" - } - } - } - } + "Key": [], + "JWT": [] } - } + ] } }, - "\/messaging\/providers\/vonage": { - "post": { - "summary": "Create Vonage provider", - "operationId": "messagingCreateVonageProvider", + "\/locale\/currencies": { + "get": { + "summary": "List currencies", + "operationId": "localeListCurrencies", "tags": [ - "messaging" + "locale" ], - "description": "Create a new Vonage provider.", + "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": { - "201": { - "description": "Provider", + "200": { + "description": "Currencies List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/currencyList" } } } @@ -30703,23 +30025,25 @@ }, "deprecated": false, "x-appwrite": { - "method": "createVonageProvider", - "group": "providers", - "weight": 199, + "method": "listCurrencies", + "group": null, + "weight": 55, "cookies": false, "type": "", - "demo": "messaging\/create-vonage-provider.md", + "demo": "locale\/list-currencies.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "locale.read", "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-vonage-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-currencies.md", "auth": { "Project": [] } @@ -30727,73 +30051,27 @@ "security": [ { "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "type": "string", - "description": "Provider 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.", - "x-example": "<PROVIDER_ID>" - }, - "name": { - "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "from": { - "type": "string", - "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "x-example": "+12065550100", - "format": "phone" - }, - "apiKey": { - "type": "string", - "description": "Vonage API key.", - "x-example": "<API_KEY>" - }, - "apiSecret": { - "type": "string", - "description": "Vonage API secret.", - "x-example": "<API_SECRET>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } - } + "Key": [], + "JWT": [] } - } + ] } }, - "\/messaging\/providers\/vonage\/{providerId}": { - "patch": { - "summary": "Update Vonage provider", - "operationId": "messagingUpdateVonageProvider", + "\/locale\/languages": { + "get": { + "summary": "List languages", + "operationId": "localeListLanguages", "tags": [ - "messaging" + "locale" ], - "description": "Update a Vonage provider by its unique ID.", + "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": "Provider", + "description": "Languages List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/languageList" } } } @@ -30801,23 +30079,25 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateVonageProvider", - "group": "providers", - "weight": 213, + "method": "listLanguages", + "group": null, + "weight": 56, "cookies": false, "type": "", - "demo": "messaging\/update-vonage-provider.md", + "demo": "locale\/list-languages.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "locale.read", "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-vonage-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-languages.md", "auth": { "Project": [] } @@ -30825,366 +30105,27 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } + ] + } + }, + "\/messaging\/messages": { + "get": { + "summary": "List messages", + "operationId": "messagingListMessages", + "tags": [ + "messaging" ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PROVIDER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - }, - "apiKey": { - "type": "string", - "description": "Vonage API key.", - "x-example": "<API_KEY>" - }, - "apiSecret": { - "type": "string", - "description": "Vonage API secret.", - "x-example": "<API_SECRET>" - }, - "from": { - "type": "string", - "description": "Sender number.", - "x-example": "<FROM>" - } - } - } - } - } - } - } - }, - "\/messaging\/providers\/{providerId}": { - "get": { - "summary": "Get provider", - "operationId": "messagingGetProvider", - "tags": [ - "messaging" - ], - "description": "Get a provider by its unique ID.\n", - "responses": { - "200": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "getProvider", - "group": "providers", - "weight": 204, - "cookies": false, - "type": "", - "demo": "messaging\/get-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/get-provider.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PROVIDER_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete provider", - "operationId": "messagingDeleteProvider", - "tags": [ - "messaging" - ], - "description": "Delete a provider by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "method": "deleteProvider", - "group": "providers", - "weight": 216, - "cookies": false, - "type": "", - "demo": "messaging\/delete-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-provider.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PROVIDER_ID>" - }, - "in": "path" - } - ] - } - }, - "\/messaging\/providers\/{providerId}\/logs": { - "get": { - "summary": "List provider logs", - "operationId": "messagingListProviderLogs", - "tags": [ - "messaging" - ], - "description": "Get the provider activity logs listed by its unique ID.", - "responses": { - "200": { - "description": "Logs List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/logList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "listProviderLogs", - "group": "providers", - "weight": 203, - "cookies": false, - "type": "", - "demo": "messaging\/list-provider-logs.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-provider-logs.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PROVIDER_ID>" - }, - "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). 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", - "x-example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/messaging\/subscribers\/{subscriberId}\/logs": { - "get": { - "summary": "List subscriber logs", - "operationId": "messagingListSubscriberLogs", - "tags": [ - "messaging" - ], - "description": "Get the subscriber activity logs listed by its unique ID.", - "responses": { - "200": { - "description": "Logs List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/logList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "listSubscriberLogs", - "group": "subscribers", - "weight": 225, - "cookies": false, - "type": "", - "demo": "messaging\/list-subscriber-logs.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "subscribers.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-subscriber-logs.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "subscriberId", - "description": "Subscriber ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<SUBSCRIBER_ID>" - }, - "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). 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", - "x-example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/messaging\/topics": { - "get": { - "summary": "List topics", - "operationId": "messagingListTopics", - "tags": [ - "messaging" - ], - "description": "Get a list of all topics from the current Appwrite project.", + "description": "Get a list of all messages from the current Appwrite project.", "responses": { "200": { - "description": "Topic list", + "description": "Message list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/topicList" + "$ref": "#\/components\/schemas\/messageList" } } } @@ -31192,23 +30133,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "listTopics", - "group": "topics", - "weight": 218, + "method": "listMessages", + "group": "messages", + "weight": 215, "cookies": false, "type": "", - "demo": "messaging\/list-topics.md", + "demo": "messaging\/list-messages.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "topics.read", + "scope": "messages.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-topics.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-messages.md", "auth": { "Project": [] } @@ -31222,7 +30163,7 @@ "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, description, emailTotal, smsTotal, pushTotal", + "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: scheduledAt, deliveredAt, deliveredTotal, status, description, providerType", "required": false, "schema": { "type": "array", @@ -31256,21 +30197,23 @@ "in": "query" } ] - }, + } + }, + "\/messaging\/messages\/email": { "post": { - "summary": "Create topic", - "operationId": "messagingCreateTopic", + "summary": "Create email", + "operationId": "messagingCreateEmail", "tags": [ "messaging" ], - "description": "Create a new topic.", + "description": "Create a new email message.", "responses": { "201": { - "description": "Topic", + "description": "Message", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/topic" + "$ref": "#\/components\/schemas\/message" } } } @@ -31278,23 +30221,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "createTopic", - "group": "topics", - "weight": 217, + "method": "createEmail", + "group": "messages", + "weight": 212, "cookies": false, "type": "", - "demo": "messaging\/create-topic.md", + "demo": "messaging\/create-email.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "topics.write", + "scope": "messages.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-topic.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-email.md", "auth": { "Project": [] } @@ -31311,28 +30254,90 @@ "schema": { "type": "object", "properties": { - "topicId": { + "messageId": { "type": "string", - "description": "Topic ID. Choose a custom Topic ID or a new Topic ID.", - "x-example": "<TOPIC_ID>" + "description": "Message 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.", + "x-example": "<MESSAGE_ID>" }, - "name": { + "subject": { "type": "string", - "description": "Topic Name.", - "x-example": "<NAME>" + "description": "Email Subject.", + "x-example": "<SUBJECT>" }, - "subscribe": { + "content": { + "type": "string", + "description": "Email Content.", + "x-example": "<CONTENT>" + }, + "topics": { "type": "array", - "description": "An array of role strings with subscribe permission. By default all users are granted with any subscribe permission. [learn more about roles](https:\/\/appwrite.io\/docs\/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.", - "x-example": "[\"any\"]", + "description": "List of Topic IDs.", + "x-example": null, + "items": { + "type": "string" + } + }, + "users": { + "type": "array", + "description": "List of User IDs.", + "x-example": null, + "items": { + "type": "string" + } + }, + "targets": { + "type": "array", + "description": "List of Targets IDs.", + "x-example": null, + "items": { + "type": "string" + } + }, + "cc": { + "type": "array", + "description": "Array of target IDs to be added as CC.", + "x-example": null, + "items": { + "type": "string" + } + }, + "bcc": { + "type": "array", + "description": "Array of target IDs to be added as BCC.", + "x-example": null, + "items": { + "type": "string" + } + }, + "attachments": { + "type": "array", + "description": "Array of compound ID strings of bucket IDs and file IDs to be attached to the email. They should be formatted as <BUCKET_ID>:<FILE_ID>.", + "x-example": null, "items": { "type": "string" } + }, + "draft": { + "type": "boolean", + "description": "Is message a draft", + "x-example": false + }, + "html": { + "type": "boolean", + "description": "Is content of type HTML", + "x-example": false + }, + "scheduledAt": { + "type": "string", + "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", + "x-example": null, + "x-nullable": true } }, "required": [ - "topicId", - "name" + "messageId", + "subject", + "content" ] } } @@ -31340,21 +30345,21 @@ } } }, - "\/messaging\/topics\/{topicId}": { - "get": { - "summary": "Get topic", - "operationId": "messagingGetTopic", + "\/messaging\/messages\/email\/{messageId}": { + "patch": { + "summary": "Update email", + "operationId": "messagingUpdateEmail", "tags": [ "messaging" ], - "description": "Get a topic by its unique ID.\n", + "description": "Update an email message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", "responses": { "200": { - "description": "Topic", + "description": "Message", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/topic" + "$ref": "#\/components\/schemas\/message" } } } @@ -31362,23 +30367,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "getTopic", - "group": "topics", - "weight": 220, + "method": "updateEmail", + "group": "messages", + "weight": 219, "cookies": false, "type": "", - "demo": "messaging\/get-topic.md", + "demo": "messaging\/update-email.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "topics.read", + "scope": "messages.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/get-topic.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-email.md", "auth": { "Project": [] } @@ -31391,31 +30396,128 @@ ], "parameters": [ { - "name": "topicId", - "description": "Topic ID.", + "name": "messageId", + "description": "Message ID.", "required": true, "schema": { "type": "string", - "x-example": "<TOPIC_ID>" + "x-example": "<MESSAGE_ID>" }, "in": "path" } - ] - }, - "patch": { - "summary": "Update topic", - "operationId": "messagingUpdateTopic", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "topics": { + "type": "array", + "description": "List of Topic IDs.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "users": { + "type": "array", + "description": "List of User IDs.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "targets": { + "type": "array", + "description": "List of Targets IDs.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "subject": { + "type": "string", + "description": "Email Subject.", + "x-example": "<SUBJECT>", + "x-nullable": true + }, + "content": { + "type": "string", + "description": "Email Content.", + "x-example": "<CONTENT>", + "x-nullable": true + }, + "draft": { + "type": "boolean", + "description": "Is message a draft", + "x-example": false, + "x-nullable": true + }, + "html": { + "type": "boolean", + "description": "Is content of type HTML", + "x-example": false, + "x-nullable": true + }, + "cc": { + "type": "array", + "description": "Array of target IDs to be added as CC.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "bcc": { + "type": "array", + "description": "Array of target IDs to be added as BCC.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "scheduledAt": { + "type": "string", + "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", + "x-example": null, + "x-nullable": true + }, + "attachments": { + "type": "array", + "description": "Array of compound ID strings of bucket IDs and file IDs to be attached to the email. They should be formatted as <BUCKET_ID>:<FILE_ID>.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/messaging\/messages\/push": { + "post": { + "summary": "Create push notification", + "operationId": "messagingCreatePush", "tags": [ "messaging" ], - "description": "Update a topic by its unique ID.\n", + "description": "Create a new push notification.", "responses": { - "200": { - "description": "Topic", + "201": { + "description": "Message", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/topic" + "$ref": "#\/components\/schemas\/message" } } } @@ -31423,23 +30525,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateTopic", - "group": "topics", - "weight": 221, + "method": "createPush", + "group": "messages", + "weight": 214, "cookies": false, "type": "", - "demo": "messaging\/update-topic.md", + "demo": "messaging\/create-push.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "topics.write", + "scope": "messages.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-topic.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-push.md", "auth": { "Project": [] } @@ -31450,76 +30552,174 @@ "Key": [] } ], - "parameters": [ - { - "name": "topicId", - "description": "Topic ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<TOPIC_ID>" - }, - "in": "path" - } - ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "name": { + "messageId": { "type": "string", - "description": "Topic Name.", - "x-example": "<NAME>", - "x-nullable": true + "description": "Message 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.", + "x-example": "<MESSAGE_ID>" }, - "subscribe": { + "title": { + "type": "string", + "description": "Title for push notification.", + "x-example": "<TITLE>" + }, + "body": { + "type": "string", + "description": "Body for push notification.", + "x-example": "<BODY>" + }, + "topics": { "type": "array", - "description": "An array of role strings with subscribe permission. By default all users are granted with any subscribe permission. [learn more about roles](https:\/\/appwrite.io\/docs\/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.", - "x-example": "[\"any\"]", + "description": "List of Topic IDs.", + "x-example": null, "items": { "type": "string" - }, + } + }, + "users": { + "type": "array", + "description": "List of User IDs.", + "x-example": null, + "items": { + "type": "string" + } + }, + "targets": { + "type": "array", + "description": "List of Targets IDs.", + "x-example": null, + "items": { + "type": "string" + } + }, + "data": { + "type": "object", + "description": "Additional key-value pair data for push notification.", + "x-example": "{}", + "x-nullable": true + }, + "action": { + "type": "string", + "description": "Action for push notification.", + "x-example": "<ACTION>" + }, + "image": { + "type": "string", + "description": "Image for push notification. Must be a compound bucket ID to file ID of a jpeg, png, or bmp image in Appwrite Storage. It should be formatted as <BUCKET_ID>:<FILE_ID>.", + "x-example": "<ID1:ID2>" + }, + "icon": { + "type": "string", + "description": "Icon for push notification. Available only for Android and Web Platform.", + "x-example": "<ICON>" + }, + "sound": { + "type": "string", + "description": "Sound for push notification. Available only for Android and iOS Platform.", + "x-example": "<SOUND>" + }, + "color": { + "type": "string", + "description": "Color for push notification. Available only for Android Platform.", + "x-example": "<COLOR>" + }, + "tag": { + "type": "string", + "description": "Tag for push notification. Available only for Android Platform.", + "x-example": "<TAG>" + }, + "badge": { + "type": "integer", + "description": "Badge for push notification. Available only for iOS Platform.", + "x-example": null, + "format": "int32" + }, + "draft": { + "type": "boolean", + "description": "Is message a draft", + "x-example": false + }, + "scheduledAt": { + "type": "string", + "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", + "x-example": null, "x-nullable": true + }, + "contentAvailable": { + "type": "boolean", + "description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.", + "x-example": false + }, + "critical": { + "type": "boolean", + "description": "If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.", + "x-example": false + }, + "priority": { + "type": "string", + "description": "Set the notification priority. \"normal\" will consider device state and may not deliver notifications immediately. \"high\" will always attempt to immediately deliver the notification.", + "x-example": "normal", + "enum": [ + "normal", + "high" + ], + "x-enum-name": "MessagePriority", + "x-enum-keys": [] } - } + }, + "required": [ + "messageId" + ] } } } } - }, - "delete": { - "summary": "Delete topic", - "operationId": "messagingDeleteTopic", + } + }, + "\/messaging\/messages\/push\/{messageId}": { + "patch": { + "summary": "Update push notification", + "operationId": "messagingUpdatePush", "tags": [ "messaging" ], - "description": "Delete a topic by its unique ID.", + "description": "Update a push notification by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Message", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/message" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteTopic", - "group": "topics", - "weight": 222, + "method": "updatePush", + "group": "messages", + "weight": 221, "cookies": false, "type": "", - "demo": "messaging\/delete-topic.md", + "demo": "messaging\/update-push.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "topics.write", + "scope": "messages.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-topic.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-push.md", "auth": { "Project": [] } @@ -31532,144 +30732,262 @@ ], "parameters": [ { - "name": "topicId", - "description": "Topic ID.", + "name": "messageId", + "description": "Message ID.", "required": true, "schema": { "type": "string", - "x-example": "<TOPIC_ID>" + "x-example": "<MESSAGE_ID>" }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "topics": { + "type": "array", + "description": "List of Topic IDs.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "users": { + "type": "array", + "description": "List of User IDs.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "targets": { + "type": "array", + "description": "List of Targets IDs.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "title": { + "type": "string", + "description": "Title for push notification.", + "x-example": "<TITLE>", + "x-nullable": true + }, + "body": { + "type": "string", + "description": "Body for push notification.", + "x-example": "<BODY>", + "x-nullable": true + }, + "data": { + "type": "object", + "description": "Additional Data for push notification.", + "x-example": "{}", + "x-nullable": true + }, + "action": { + "type": "string", + "description": "Action for push notification.", + "x-example": "<ACTION>", + "x-nullable": true + }, + "image": { + "type": "string", + "description": "Image for push notification. Must be a compound bucket ID to file ID of a jpeg, png, or bmp image in Appwrite Storage. It should be formatted as <BUCKET_ID>:<FILE_ID>.", + "x-example": "<ID1:ID2>", + "x-nullable": true + }, + "icon": { + "type": "string", + "description": "Icon for push notification. Available only for Android and Web platforms.", + "x-example": "<ICON>", + "x-nullable": true + }, + "sound": { + "type": "string", + "description": "Sound for push notification. Available only for Android and iOS platforms.", + "x-example": "<SOUND>", + "x-nullable": true + }, + "color": { + "type": "string", + "description": "Color for push notification. Available only for Android platforms.", + "x-example": "<COLOR>", + "x-nullable": true + }, + "tag": { + "type": "string", + "description": "Tag for push notification. Available only for Android platforms.", + "x-example": "<TAG>", + "x-nullable": true + }, + "badge": { + "type": "integer", + "description": "Badge for push notification. Available only for iOS platforms.", + "x-example": null, + "format": "int32", + "x-nullable": true + }, + "draft": { + "type": "boolean", + "description": "Is message a draft", + "x-example": false, + "x-nullable": true + }, + "scheduledAt": { + "type": "string", + "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", + "x-example": null, + "x-nullable": true + }, + "contentAvailable": { + "type": "boolean", + "description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.", + "x-example": false, + "x-nullable": true + }, + "critical": { + "type": "boolean", + "description": "If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.", + "x-example": false, + "x-nullable": true + }, + "priority": { + "type": "string", + "description": "Set the notification priority. \"normal\" will consider device battery state and may send notifications later. \"high\" will always attempt to immediately deliver the notification.", + "x-example": "normal", + "enum": [ + "normal", + "high" + ], + "x-enum-name": "MessagePriority", + "x-enum-keys": [], + "x-nullable": true + } + } + } + } + } + } } }, - "\/messaging\/topics\/{topicId}\/logs": { - "get": { - "summary": "List topic logs", - "operationId": "messagingListTopicLogs", + "\/messaging\/messages\/sms": { + "post": { + "summary": "Create SMS", + "operationId": "messagingCreateSms", "tags": [ "messaging" ], - "description": "Get the topic activity logs listed by its unique ID.", + "description": "Create a new SMS message.", "responses": { - "200": { - "description": "Logs List", + "201": { + "description": "Message", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/logList" + "$ref": "#\/components\/schemas\/message" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "listTopicLogs", - "group": "topics", - "weight": 219, + "method": "createSms", + "group": "messages", + "weight": 213, "cookies": false, "type": "", - "demo": "messaging\/list-topic-logs.md", + "demo": "messaging\/create-sms.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "topics.read", + "scope": "messages.write", "platforms": [ "console", "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-topic-logs.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "topicId", - "description": "Topic ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<TOPIC_ID>" - }, - "in": "path" + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-sms.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createSMS" }, - { - "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" + "methods": [ + { + "name": "createSms", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [] }, - "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", - "x-example": false, - "default": true - }, - "in": "query" - } - ] - } - }, - "\/messaging\/topics\/{topicId}\/subscribers": { - "get": { - "summary": "List subscribers", - "operationId": "messagingListSubscribers", - "tags": [ - "messaging" - ], - "description": "Get a list of all subscribers from the current Appwrite project.", - "responses": { - "200": { - "description": "Subscriber list", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/subscriberList" + "parameters": [ + "messageId", + "content", + "topics", + "users", + "targets", + "draft", + "scheduledAt" + ], + "required": [ + "messageId", + "content" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/message" } + ], + "description": "Create a new SMS message.", + "demo": "messaging\/create-sms.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createSMS" } + }, + { + "name": "createSMS", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "messageId", + "content", + "topics", + "users", + "targets", + "draft", + "scheduledAt" + ], + "required": [ + "messageId", + "content" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/message" + } + ], + "description": "Create a new SMS message.", + "demo": "messaging\/create-sms.md", + "public": true } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "listSubscribers", - "group": "subscribers", - "weight": 224, - "cookies": false, - "type": "", - "demo": "messaging\/list-subscribers.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "subscribers.read", - "platforms": [ - "console", - "server" ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-subscribers.md", "auth": { "Project": [] } @@ -31680,94 +30998,175 @@ "Key": [] } ], - "parameters": [ - { - "name": "topicId", - "description": "Topic ID. The topic ID subscribed to.", - "required": true, - "schema": { - "type": "string", - "x-example": "<TOPIC_ID>" - }, - "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, provider, type, enabled", - "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", - "x-example": "<SEARCH>", - "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", - "x-example": false, - "default": true - }, - "in": "query" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "messageId": { + "type": "string", + "description": "Message 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.", + "x-example": "<MESSAGE_ID>" + }, + "content": { + "type": "string", + "description": "SMS Content.", + "x-example": "<CONTENT>" + }, + "topics": { + "type": "array", + "description": "List of Topic IDs.", + "x-example": null, + "items": { + "type": "string" + } + }, + "users": { + "type": "array", + "description": "List of User IDs.", + "x-example": null, + "items": { + "type": "string" + } + }, + "targets": { + "type": "array", + "description": "List of Targets IDs.", + "x-example": null, + "items": { + "type": "string" + } + }, + "draft": { + "type": "boolean", + "description": "Is message a draft", + "x-example": false + }, + "scheduledAt": { + "type": "string", + "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "messageId", + "content" + ] + } + } } - ] - }, - "post": { - "summary": "Create subscriber", - "operationId": "messagingCreateSubscriber", + } + } + }, + "\/messaging\/messages\/sms\/{messageId}": { + "patch": { + "summary": "Update SMS", + "operationId": "messagingUpdateSms", "tags": [ "messaging" ], - "description": "Create a new subscriber.", + "description": "Update an SMS message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", "responses": { - "201": { - "description": "Subscriber", + "200": { + "description": "Message", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/subscriber" + "$ref": "#\/components\/schemas\/message" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "createSubscriber", - "group": "subscribers", - "weight": 223, + "method": "updateSms", + "group": "messages", + "weight": 220, "cookies": false, "type": "", - "demo": "messaging\/create-subscriber.md", + "demo": "messaging\/update-sms.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "subscribers.write", + "scope": "messages.write", "platforms": [ - "server", - "client", "console", "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-subscriber.md", + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-sms.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateSMS" + }, + "methods": [ + { + "name": "updateSms", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "messageId", + "topics", + "users", + "targets", + "content", + "draft", + "scheduledAt" + ], + "required": [ + "messageId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/message" + } + ], + "description": "Update an SMS message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", + "demo": "messaging\/update-sms.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateSMS" + } + }, + { + "name": "updateSMS", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "messageId", + "topics", + "users", + "targets", + "content", + "draft", + "scheduledAt" + ], + "required": [ + "messageId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/message" + } + ], + "description": "Update an SMS message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", + "demo": "messaging\/update-sms.md", + "public": true + } + ], "auth": { "Project": [] } @@ -31775,18 +31174,17 @@ "security": [ { "Project": [], - "JWT": [], "Key": [] } ], "parameters": [ { - "name": "topicId", - "description": "Topic ID. The topic ID to subscribe to.", + "name": "messageId", + "description": "Message ID.", "required": true, "schema": { "type": "string", - "x-example": "<TOPIC_ID>" + "x-example": "<MESSAGE_ID>" }, "in": "path" } @@ -31797,42 +31195,73 @@ "schema": { "type": "object", "properties": { - "subscriberId": { + "topics": { + "type": "array", + "description": "List of Topic IDs.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "users": { + "type": "array", + "description": "List of User IDs.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "targets": { + "type": "array", + "description": "List of Targets IDs.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "content": { "type": "string", - "description": "Subscriber ID. Choose a custom Subscriber ID or a new Subscriber ID.", - "x-example": "<SUBSCRIBER_ID>" + "description": "Email Content.", + "x-example": "<CONTENT>", + "x-nullable": true }, - "targetId": { + "draft": { + "type": "boolean", + "description": "Is message a draft", + "x-example": false, + "x-nullable": true + }, + "scheduledAt": { "type": "string", - "description": "Target ID. The target ID to link to the specified Topic ID.", - "x-example": "<TARGET_ID>" + "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", + "x-example": null, + "x-nullable": true } - }, - "required": [ - "subscriberId", - "targetId" - ] + } } } } } } }, - "\/messaging\/topics\/{topicId}\/subscribers\/{subscriberId}": { + "\/messaging\/messages\/{messageId}": { "get": { - "summary": "Get subscriber", - "operationId": "messagingGetSubscriber", + "summary": "Get message", + "operationId": "messagingGetMessage", "tags": [ "messaging" ], - "description": "Get a subscriber by its unique ID.\n", + "description": "Get a message by its unique ID.\n", "responses": { "200": { - "description": "Subscriber", + "description": "Message", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/subscriber" + "$ref": "#\/components\/schemas\/message" } } } @@ -31840,23 +31269,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "getSubscriber", - "group": "subscribers", - "weight": 226, + "method": "getMessage", + "group": "messages", + "weight": 218, "cookies": false, "type": "", - "demo": "messaging\/get-subscriber.md", + "demo": "messaging\/get-message.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "subscribers.read", + "scope": "messages.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/get-subscriber.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/get-message.md", "auth": { "Project": [] } @@ -31869,34 +31298,24 @@ ], "parameters": [ { - "name": "topicId", - "description": "Topic ID. The topic ID subscribed to.", - "required": true, - "schema": { - "type": "string", - "x-example": "<TOPIC_ID>" - }, - "in": "path" - }, - { - "name": "subscriberId", - "description": "Subscriber ID.", + "name": "messageId", + "description": "Message ID.", "required": true, "schema": { "type": "string", - "x-example": "<SUBSCRIBER_ID>" + "x-example": "<MESSAGE_ID>" }, "in": "path" } ] }, "delete": { - "summary": "Delete subscriber", - "operationId": "messagingDeleteSubscriber", + "summary": "Delete message", + "operationId": "messagingDelete", "tags": [ "messaging" ], - "description": "Delete a subscriber by its unique ID.", + "description": "Delete a message. If the message is not a draft or scheduled, but has been sent, this will not recall the message.", "responses": { "204": { "description": "No content" @@ -31904,25 +31323,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteSubscriber", - "group": "subscribers", - "weight": 227, + "method": "delete", + "group": "messages", + "weight": 222, "cookies": false, "type": "", - "demo": "messaging\/delete-subscriber.md", + "demo": "messaging\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "subscribers.write", + "scope": "messages.write", "platforms": [ - "server", - "client", "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-subscriber.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-message.md", "auth": { "Project": [] } @@ -31930,49 +31347,38 @@ "security": [ { "Project": [], - "JWT": [], "Key": [] } ], "parameters": [ { - "name": "topicId", - "description": "Topic ID. The topic ID subscribed to.", - "required": true, - "schema": { - "type": "string", - "x-example": "<TOPIC_ID>" - }, - "in": "path" - }, - { - "name": "subscriberId", - "description": "Subscriber ID.", + "name": "messageId", + "description": "Message ID.", "required": true, "schema": { "type": "string", - "x-example": "<SUBSCRIBER_ID>" + "x-example": "<MESSAGE_ID>" }, "in": "path" } ] } }, - "\/migrations": { + "\/messaging\/messages\/{messageId}\/logs": { "get": { - "summary": "List migrations", - "operationId": "migrationsList", + "summary": "List message logs", + "operationId": "messagingListMessageLogs", "tags": [ - "migrations" + "messaging" ], - "description": "List all migrations in the current project. This endpoint returns a list of all migrations including their status, progress, and any errors that occurred during the migration process.", + "description": "Get the message activity logs listed by its unique ID.", "responses": { "200": { - "description": "Migrations List", + "description": "Logs List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/migrationList" + "$ref": "#\/components\/schemas\/logList" } } } @@ -31980,35 +31386,47 @@ }, "deprecated": false, "x-appwrite": { - "method": "list", - "group": null, - "weight": 183, + "method": "listMessageLogs", + "group": "logs", + "weight": 216, "cookies": false, "type": "", - "demo": "migrations\/list.md", + "demo": "messaging\/list-message-logs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.read", + "scope": "messages.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/list-migrations.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-message-logs.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ + { + "name": "messageId", + "description": "Message ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<MESSAGE_ID>" + }, + "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\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: status, stage, source, destination, resources, resourceId, resourceType, statusCounters, resourceData, errors", + "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", @@ -32019,17 +31437,6 @@ }, "in": "query" }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "x-example": "<SEARCH>", - "default": "" - }, - "in": "query" - }, { "name": "total", "description": "When set to false, the total count returned will be 0 and will not be calculated.", @@ -32044,21 +31451,21 @@ ] } }, - "\/migrations\/appwrite": { - "post": { - "summary": "Create Appwrite migration", - "operationId": "migrationsCreateAppwriteMigration", + "\/messaging\/messages\/{messageId}\/targets": { + "get": { + "summary": "List message targets", + "operationId": "messagingListTargets", "tags": [ - "migrations" + "messaging" ], - "description": "Migrate data from another Appwrite project to your current project. This endpoint allows you to migrate resources like databases, collections, documents, users, and files from an existing Appwrite project. ", + "description": "Get a list of the targets associated with a message.", "responses": { - "202": { - "description": "Migration", + "200": { + "description": "Target list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/migration" + "$ref": "#\/components\/schemas\/targetList" } } } @@ -32066,112 +31473,86 @@ }, "deprecated": false, "x-appwrite": { - "method": "createAppwriteMigration", - "group": null, - "weight": 177, + "method": "listTargets", + "group": "messages", + "weight": 217, "cookies": false, "type": "", - "demo": "migrations\/create-appwrite-migration.md", + "demo": "messaging\/list-targets.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", + "scope": "messages.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-appwrite.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-message-targets.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "resources": { - "type": "array", - "description": "List of resources to migrate", - "x-example": null, - "items": { - "type": "string", - "enum": [ - "user", - "team", - "membership", - "database", - "table", - "column", - "index", - "row", - "document", - "attribute", - "collection", - "bucket", - "file", - "function", - "deployment", - "environment-variable", - "site", - "site-deployment", - "site-variable" - ], - "x-enum-name": null, - "x-enum-keys": [] - } - }, - "endpoint": { - "type": "string", - "description": "Source Appwrite endpoint", - "x-example": "https:\/\/example.com", - "format": "url" - }, - "projectId": { - "type": "string", - "description": "Source Project ID", - "x-example": "<PROJECT_ID>" - }, - "apiKey": { - "type": "string", - "description": "Source API Key", - "x-example": "<API_KEY>" - } - }, - "required": [ - "resources", - "endpoint", - "projectId", - "apiKey" - ] - } - } + "parameters": [ + { + "name": "messageId", + "description": "Message ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<MESSAGE_ID>" + }, + "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: userId, providerId, identifier, providerType", + "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", + "x-example": false, + "default": true + }, + "in": "query" } - } + ] } }, - "\/migrations\/appwrite\/report": { + "\/messaging\/providers": { "get": { - "summary": "Get Appwrite migration report", - "operationId": "migrationsGetAppwriteReport", + "summary": "List providers", + "operationId": "messagingListProviders", "tags": [ - "migrations" + "messaging" ], - "description": "Generate a report of the data in an Appwrite project before migrating. This endpoint analyzes the source project and returns information about the resources that can be migrated.", + "description": "Get a list of all providers from the current Appwrite project.", "responses": { "200": { - "description": "Migration Report", + "description": "Provider list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/migrationReport" + "$ref": "#\/components\/schemas\/providerList" } } } @@ -32179,146 +31560,191 @@ }, "deprecated": false, "x-appwrite": { - "method": "getAppwriteReport", - "group": null, - "weight": 185, + "method": "listProviders", + "group": "providers", + "weight": 186, "cookies": false, "type": "", - "demo": "migrations\/get-appwrite-report.md", + "demo": "messaging\/list-providers.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", + "scope": "providers.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-appwrite-report.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-providers.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "resources", - "description": "List of resources to migrate", - "required": true, + "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, provider, type, enabled", + "required": false, "schema": { "type": "array", "items": { - "type": "string", - "enum": [ - "user", - "team", - "membership", - "database", - "table", - "column", - "index", - "row", - "document", - "attribute", - "collection", - "bucket", - "file", - "function", - "deployment", - "environment-variable", - "site", - "site-deployment", - "site-variable" - ], - "x-enum-name": null, - "x-enum-keys": [] - } - }, - "in": "query" - }, - { - "name": "endpoint", - "description": "Source's Appwrite Endpoint", - "required": true, - "schema": { - "type": "string", - "format": "url", - "x-example": "https:\/\/example.com" + "type": "string" + }, + "default": [] }, "in": "query" }, { - "name": "projectID", - "description": "Source's Project ID", - "required": true, + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<SEARCH>", + "default": "" }, "in": "query" }, { - "name": "key", - "description": "Source's API Key", - "required": true, + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, "schema": { - "type": "string", - "x-example": "<KEY>" + "type": "boolean", + "x-example": false, + "default": true }, "in": "query" } ] } }, - "\/migrations\/csv\/exports": { + "\/messaging\/providers\/apns": { "post": { - "summary": "Export documents to CSV", - "operationId": "migrationsCreateCSVExport", + "summary": "Create APNS provider", + "operationId": "messagingCreateApnsProvider", "tags": [ - "migrations" + "messaging" ], - "description": "Export documents to a CSV file from your Appwrite database. This endpoint allows you to export documents to a CSV file stored in a secure internal bucket. You'll receive an email with a download link when the export is complete.", + "description": "Create a new Apple Push Notification service provider.", "responses": { - "202": { - "description": "Migration", + "201": { + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/migration" + "$ref": "#\/components\/schemas\/provider" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "createCSVExport", - "group": null, - "weight": 182, + "method": "createApnsProvider", + "group": "providers", + "weight": 185, "cookies": false, "type": "", - "demo": "migrations\/create-csv-export.md", + "demo": "messaging\/create-apns-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", + "scope": "providers.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-csv-export.md", + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-apns-provider.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createAPNSProvider" + }, + "methods": [ + { + "name": "createApnsProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "providerId", + "name", + "authKey", + "authKeyId", + "teamId", + "bundleId", + "sandbox", + "enabled" + ], + "required": [ + "providerId", + "name" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Create a new Apple Push Notification service provider.", + "demo": "messaging\/create-apns-provider.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createAPNSProvider" + } + }, + { + "name": "createAPNSProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "providerId", + "name", + "authKey", + "authKeyId", + "teamId", + "bundleId", + "sandbox", + "enabled" + ], + "required": [ + "providerId", + "name" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Create a new Apple Push Notification service provider.", + "demo": "messaging\/create-apns-provider.md", + "public": true + } + ], "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "requestBody": { @@ -32327,61 +31753,51 @@ "schema": { "type": "object", "properties": { - "resourceId": { + "providerId": { "type": "string", - "description": "Composite ID in the format {databaseId:collectionId}, identifying a collection within a database to export.", - "x-example": "<ID1:ID2>" + "description": "Provider 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.", + "x-example": "<PROVIDER_ID>" }, - "filename": { + "name": { "type": "string", - "description": "The name of the file to be created for the export, excluding the .csv extension.", - "x-example": "<FILENAME>" - }, - "columns": { - "type": "array", - "description": "List of attributes to export. If empty, all attributes will be exported. You can use the `*` wildcard to export all attributes from the collection.", - "x-example": null, - "items": { - "type": "string" - } + "description": "Provider name.", + "x-example": "<NAME>" }, - "queries": { - "type": "array", - "description": "Array of query strings generated using the Query class provided by the SDK to filter documents to export. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long.", - "x-example": null, - "items": { - "type": "string" - } + "authKey": { + "type": "string", + "description": "APNS authentication key.", + "x-example": "<AUTH_KEY>" }, - "delimiter": { + "authKeyId": { "type": "string", - "description": "The character that separates each column value. Default is comma.", - "x-example": "<DELIMITER>" + "description": "APNS authentication key ID.", + "x-example": "<AUTH_KEY_ID>" }, - "enclosure": { + "teamId": { "type": "string", - "description": "The character that encloses each column value. Default is double quotes.", - "x-example": "<ENCLOSURE>" + "description": "APNS team ID.", + "x-example": "<TEAM_ID>" }, - "escape": { + "bundleId": { "type": "string", - "description": "The escape character for the enclosure character. Default is double quotes.", - "x-example": "<ESCAPE>" + "description": "APNS bundle ID.", + "x-example": "<BUNDLE_ID>" }, - "header": { + "sandbox": { "type": "boolean", - "description": "Whether to include the header row with column names. Default is true.", + "description": "Use APNS sandbox environment.", "x-example": false }, - "notify": { + "enabled": { "type": "boolean", - "description": "Set to true to receive an email when the export is complete. Default is true.", - "x-example": false + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true } }, "required": [ - "resourceId", - "filename" + "providerId", + "name" ] } } @@ -32389,136 +31805,298 @@ } } }, - "\/migrations\/csv\/imports": { - "post": { - "summary": "Import documents from a CSV", - "operationId": "migrationsCreateCSVImport", + "\/messaging\/providers\/apns\/{providerId}": { + "patch": { + "summary": "Update APNS provider", + "operationId": "messagingUpdateApnsProvider", "tags": [ - "migrations" + "messaging" ], - "description": "Import documents from a CSV file into your Appwrite database. This endpoint allows you to import documents from a CSV file uploaded to Appwrite Storage bucket.", + "description": "Update a Apple Push Notification service provider by its unique ID.", "responses": { - "202": { - "description": "Migration", + "200": { + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/migration" + "$ref": "#\/components\/schemas\/provider" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "createCSVImport", - "group": null, - "weight": 181, + "method": "updateApnsProvider", + "group": "providers", + "weight": 199, "cookies": false, "type": "", - "demo": "migrations\/create-csv-import.md", + "demo": "messaging\/update-apns-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", + "scope": "providers.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-csv-import.md", + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-apns-provider.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateAPNSProvider" + }, + "methods": [ + { + "name": "updateApnsProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "providerId", + "name", + "enabled", + "authKey", + "authKeyId", + "teamId", + "bundleId", + "sandbox" + ], + "required": [ + "providerId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Update a Apple Push Notification service provider by its unique ID.", + "demo": "messaging\/update-apns-provider.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateAPNSProvider" + } + }, + { + "name": "updateAPNSProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "providerId", + "name", + "enabled", + "authKey", + "authKeyId", + "teamId", + "bundleId", + "sandbox" + ], + "required": [ + "providerId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Update a Apple Push Notification service provider by its unique ID.", + "demo": "messaging\/update-apns-provider.md", + "public": true + } + ], "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "bucketId": { - "type": "string", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", - "x-example": "<BUCKET_ID>" - }, - "fileId": { + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { "type": "string", - "description": "File ID.", - "x-example": "<FILE_ID>" + "description": "Provider name.", + "x-example": "<NAME>" }, - "resourceId": { + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + }, + "authKey": { "type": "string", - "description": "Composite ID in the format {databaseId:collectionId}, identifying a collection within a database.", - "x-example": "<ID1:ID2>" + "description": "APNS authentication key.", + "x-example": "<AUTH_KEY>" }, - "internalFile": { + "authKeyId": { + "type": "string", + "description": "APNS authentication key ID.", + "x-example": "<AUTH_KEY_ID>" + }, + "teamId": { + "type": "string", + "description": "APNS team ID.", + "x-example": "<TEAM_ID>" + }, + "bundleId": { + "type": "string", + "description": "APNS bundle ID.", + "x-example": "<BUNDLE_ID>" + }, + "sandbox": { "type": "boolean", - "description": "Is the file stored in an internal bucket?", - "x-example": false + "description": "Use APNS sandbox environment.", + "x-example": false, + "x-nullable": true } - }, - "required": [ - "bucketId", - "fileId", - "resourceId" - ] + } } } } } } }, - "\/migrations\/firebase": { + "\/messaging\/providers\/fcm": { "post": { - "summary": "Create Firebase migration", - "operationId": "migrationsCreateFirebaseMigration", + "summary": "Create FCM provider", + "operationId": "messagingCreateFcmProvider", "tags": [ - "migrations" + "messaging" ], - "description": "Migrate data from a Firebase project to your Appwrite project. This endpoint allows you to migrate resources like authentication and other supported services from a Firebase project. ", + "description": "Create a new Firebase Cloud Messaging provider.", "responses": { - "202": { - "description": "Migration", + "201": { + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/migration" + "$ref": "#\/components\/schemas\/provider" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "createFirebaseMigration", - "group": null, - "weight": 178, + "method": "createFcmProvider", + "group": "providers", + "weight": 184, "cookies": false, "type": "", - "demo": "migrations\/create-firebase-migration.md", + "demo": "messaging\/create-fcm-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", + "scope": "providers.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-firebase.md", + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-fcm-provider.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createFCMProvider" + }, + "methods": [ + { + "name": "createFcmProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "providerId", + "name", + "serviceAccountJSON", + "enabled" + ], + "required": [ + "providerId", + "name" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Create a new Firebase Cloud Messaging provider.", + "demo": "messaging\/create-fcm-provider.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createFCMProvider" + } + }, + { + "name": "createFCMProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "providerId", + "name", + "serviceAccountJSON", + "enabled" + ], + "required": [ + "providerId", + "name" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Create a new Firebase Cloud Messaging provider.", + "demo": "messaging\/create-fcm-provider.md", + "public": true + } + ], "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "requestBody": { @@ -32527,37 +32105,32 @@ "schema": { "type": "object", "properties": { - "resources": { - "type": "array", - "description": "List of resources to migrate", - "x-example": null, - "items": { - "type": "string", - "enum": [ - "user", - "database", - "table", - "column", - "row", - "document", - "attribute", - "collection", - "bucket", - "file" - ], - "x-enum-name": null, - "x-enum-keys": [] - } + "providerId": { + "type": "string", + "description": "Provider 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.", + "x-example": "<PROVIDER_ID>" }, - "serviceAccount": { + "name": { "type": "string", - "description": "JSON of the Firebase service account credentials", - "x-example": "<SERVICE_ACCOUNT>" + "description": "Provider name.", + "x-example": "<NAME>" + }, + "serviceAccountJSON": { + "type": "object", + "description": "FCM service account JSON.", + "x-example": "{}", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true } }, "required": [ - "resources", - "serviceAccount" + "providerId", + "name" ] } } @@ -32565,108 +32138,174 @@ } } }, - "\/migrations\/firebase\/report": { - "get": { - "summary": "Get Firebase migration report", - "operationId": "migrationsGetFirebaseReport", + "\/messaging\/providers\/fcm\/{providerId}": { + "patch": { + "summary": "Update FCM provider", + "operationId": "messagingUpdateFcmProvider", "tags": [ - "migrations" + "messaging" ], - "description": "Generate a report of the data in a Firebase project before migrating. This endpoint analyzes the source project and returns information about the resources that can be migrated.", + "description": "Update a Firebase Cloud Messaging provider by its unique ID.", "responses": { "200": { - "description": "Migration Report", + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/migrationReport" + "$ref": "#\/components\/schemas\/provider" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "getFirebaseReport", - "group": null, - "weight": 186, + "method": "updateFcmProvider", + "group": "providers", + "weight": 198, "cookies": false, "type": "", - "demo": "migrations\/get-firebase-report.md", + "demo": "messaging\/update-fcm-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", + "scope": "providers.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-firebase-report.md", + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-fcm-provider.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateFCMProvider" + }, + "methods": [ + { + "name": "updateFcmProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "providerId", + "name", + "enabled", + "serviceAccountJSON" + ], + "required": [ + "providerId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Update a Firebase Cloud Messaging provider by its unique ID.", + "demo": "messaging\/update-fcm-provider.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateFCMProvider" + } + }, + { + "name": "updateFCMProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "providerId", + "name", + "enabled", + "serviceAccountJSON" + ], + "required": [ + "providerId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Update a Firebase Cloud Messaging provider by its unique ID.", + "demo": "messaging\/update-fcm-provider.md", + "public": true + } + ], "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "resources", - "description": "List of resources to migrate", - "required": true, - "schema": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "user", - "database", - "table", - "column", - "row", - "document", - "attribute", - "collection", - "bucket", - "file" - ], - "x-enum-name": null, - "x-enum-keys": [] - } - }, - "in": "query" - }, - { - "name": "serviceAccount", - "description": "JSON of the Firebase service account credentials", + "name": "providerId", + "description": "Provider ID.", "required": true, "schema": { "type": "string", - "x-example": "<SERVICE_ACCOUNT>" + "x-example": "<PROVIDER_ID>" }, - "in": "query" + "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Provider name.", + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + }, + "serviceAccountJSON": { + "type": "object", + "description": "FCM service account JSON.", + "x-example": "{}", + "x-nullable": true + } + } + } + } + } + } } }, - "\/migrations\/nhost": { + "\/messaging\/providers\/mailgun": { "post": { - "summary": "Create NHost migration", - "operationId": "migrationsCreateNHostMigration", + "summary": "Create Mailgun provider", + "operationId": "messagingCreateMailgunProvider", "tags": [ - "migrations" + "messaging" ], - "description": "Migrate data from an NHost project to your Appwrite project. This endpoint allows you to migrate resources like authentication, databases, and other supported services from an NHost project. ", + "description": "Create a new Mailgun provider.", "responses": { - "202": { - "description": "Migration", + "201": { + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/migration" + "$ref": "#\/components\/schemas\/provider" } } } @@ -32674,29 +32313,31 @@ }, "deprecated": false, "x-appwrite": { - "method": "createNHostMigration", - "group": null, - "weight": 180, + "method": "createMailgunProvider", + "group": "providers", + "weight": 175, "cookies": false, "type": "", - "demo": "migrations\/create-n-host-migration.md", + "demo": "messaging\/create-mailgun-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", + "scope": "providers.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-nhost.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-mailgun-provider.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "requestBody": { @@ -32705,74 +32346,64 @@ "schema": { "type": "object", "properties": { - "resources": { - "type": "array", - "description": "List of resources to migrate", - "x-example": null, - "items": { - "type": "string", - "enum": [ - "user", - "database", - "table", - "column", - "index", - "row", - "document", - "attribute", - "collection", - "bucket", - "file" - ], - "x-enum-name": null, - "x-enum-keys": [] - } + "providerId": { + "type": "string", + "description": "Provider 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.", + "x-example": "<PROVIDER_ID>" }, - "subdomain": { + "name": { "type": "string", - "description": "Source's Subdomain", - "x-example": "<SUBDOMAIN>" + "description": "Provider name.", + "x-example": "<NAME>" }, - "region": { + "apiKey": { "type": "string", - "description": "Source's Region", - "x-example": "<REGION>" + "description": "Mailgun API Key.", + "x-example": "<API_KEY>" }, - "adminSecret": { + "domain": { "type": "string", - "description": "Source's Admin Secret", - "x-example": "<ADMIN_SECRET>" + "description": "Mailgun Domain.", + "x-example": "<DOMAIN>" }, - "database": { + "isEuRegion": { + "type": "boolean", + "description": "Set as EU region.", + "x-example": false, + "x-nullable": true + }, + "fromName": { "type": "string", - "description": "Source's Database Name", - "x-example": "<DATABASE>" + "description": "Sender Name.", + "x-example": "<FROM_NAME>" }, - "username": { + "fromEmail": { "type": "string", - "description": "Source's Database Username", - "x-example": "<USERNAME>" + "description": "Sender email address.", + "x-example": "email@example.com", + "format": "email" }, - "password": { + "replyToName": { "type": "string", - "description": "Source's Database Password", - "x-example": "<PASSWORD>" + "description": "Name set in the reply to field for the mail. Default value is sender name. Reply to name must have reply to email as well.", + "x-example": "<REPLY_TO_NAME>" }, - "port": { - "type": "integer", - "description": "Source's Database Port", - "x-example": null, - "format": "int32" + "replyToEmail": { + "type": "string", + "description": "Email set in the reply to field for the mail. Default value is sender email. Reply to email must have reply to name as well.", + "x-example": "email@example.com", + "format": "email" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true } }, "required": [ - "resources", - "subdomain", - "region", - "adminSecret", - "database", - "username", - "password" + "providerId", + "name" ] } } @@ -32780,21 +32411,21 @@ } } }, - "\/migrations\/nhost\/report": { - "get": { - "summary": "Get NHost migration report", - "operationId": "migrationsGetNHostReport", - "tags": [ - "migrations" + "\/messaging\/providers\/mailgun\/{providerId}": { + "patch": { + "summary": "Update Mailgun provider", + "operationId": "messagingUpdateMailgunProvider", + "tags": [ + "messaging" ], - "description": "Generate a detailed report of the data in an NHost project before migrating. This endpoint analyzes the source project and returns information about the resources that can be migrated. ", + "description": "Update a Mailgun provider by its unique ID.", "responses": { "200": { - "description": "Migration Report", + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/migrationReport" + "$ref": "#\/components\/schemas\/provider" } } } @@ -32802,148 +32433,121 @@ }, "deprecated": false, "x-appwrite": { - "method": "getNHostReport", - "group": null, - "weight": 188, + "method": "updateMailgunProvider", + "group": "providers", + "weight": 189, "cookies": false, "type": "", - "demo": "migrations\/get-n-host-report.md", + "demo": "messaging\/update-mailgun-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", + "scope": "providers.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-nhost-report.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-mailgun-provider.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "resources", - "description": "List of resources to migrate.", - "required": true, - "schema": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "user", - "database", - "table", - "column", - "index", - "row", - "document", - "attribute", - "collection", - "bucket", - "file" - ], - "x-enum-name": null, - "x-enum-keys": [] - } - }, - "in": "query" - }, - { - "name": "subdomain", - "description": "Source's Subdomain.", - "required": true, - "schema": { - "type": "string", - "x-example": "<SUBDOMAIN>" - }, - "in": "query" - }, - { - "name": "region", - "description": "Source's Region.", - "required": true, - "schema": { - "type": "string", - "x-example": "<REGION>" - }, - "in": "query" - }, - { - "name": "adminSecret", - "description": "Source's Admin Secret.", - "required": true, - "schema": { - "type": "string", - "x-example": "<ADMIN_SECRET>" - }, - "in": "query" - }, - { - "name": "database", - "description": "Source's Database Name.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE>" - }, - "in": "query" - }, - { - "name": "username", - "description": "Source's Database Username.", - "required": true, - "schema": { - "type": "string", - "x-example": "<USERNAME>" - }, - "in": "query" - }, - { - "name": "password", - "description": "Source's Database Password.", + "name": "providerId", + "description": "Provider ID.", "required": true, "schema": { "type": "string", - "x-example": "<PASSWORD>" - }, - "in": "query" - }, - { - "name": "port", - "description": "Source's Database Port.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 5432 + "x-example": "<PROVIDER_ID>" }, - "in": "query" + "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Provider name.", + "x-example": "<NAME>" + }, + "apiKey": { + "type": "string", + "description": "Mailgun API Key.", + "x-example": "<API_KEY>" + }, + "domain": { + "type": "string", + "description": "Mailgun Domain.", + "x-example": "<DOMAIN>" + }, + "isEuRegion": { + "type": "boolean", + "description": "Set as EU region.", + "x-example": false, + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + }, + "fromName": { + "type": "string", + "description": "Sender Name.", + "x-example": "<FROM_NAME>" + }, + "fromEmail": { + "type": "string", + "description": "Sender email address.", + "x-example": "email@example.com", + "format": "email" + }, + "replyToName": { + "type": "string", + "description": "Name set in the reply to field for the mail. Default value is sender name.", + "x-example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "type": "string", + "description": "Email set in the reply to field for the mail. Default value is sender email.", + "x-example": "<REPLY_TO_EMAIL>" + } + } + } + } + } + } } }, - "\/migrations\/supabase": { + "\/messaging\/providers\/msg91": { "post": { - "summary": "Create Supabase migration", - "operationId": "migrationsCreateSupabaseMigration", + "summary": "Create Msg91 provider", + "operationId": "messagingCreateMsg91Provider", "tags": [ - "migrations" + "messaging" ], - "description": "Migrate data from a Supabase project to your Appwrite project. This endpoint allows you to migrate resources like authentication, databases, and other supported services from a Supabase project. ", + "description": "Create a new MSG91 provider.", "responses": { - "202": { - "description": "Migration", + "201": { + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/migration" + "$ref": "#\/components\/schemas\/provider" } } } @@ -32951,29 +32555,31 @@ }, "deprecated": false, "x-appwrite": { - "method": "createSupabaseMigration", - "group": null, + "method": "createMsg91Provider", + "group": "providers", "weight": 179, "cookies": false, "type": "", - "demo": "migrations\/create-supabase-migration.md", + "demo": "messaging\/create-msg-91-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", + "scope": "providers.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-supabase.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-msg91-provider.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "requestBody": { @@ -32982,69 +32588,41 @@ "schema": { "type": "object", "properties": { - "resources": { - "type": "array", - "description": "List of resources to migrate", - "x-example": null, - "items": { - "type": "string", - "enum": [ - "user", - "database", - "table", - "column", - "index", - "row", - "document", - "attribute", - "collection", - "bucket", - "file" - ], - "x-enum-name": null, - "x-enum-keys": [] - } - }, - "endpoint": { + "providerId": { "type": "string", - "description": "Source's Supabase Endpoint", - "x-example": "https:\/\/example.com", - "format": "url" + "description": "Provider 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.", + "x-example": "<PROVIDER_ID>" }, - "apiKey": { + "name": { "type": "string", - "description": "Source's API Key", - "x-example": "<API_KEY>" + "description": "Provider name.", + "x-example": "<NAME>" }, - "databaseHost": { + "templateId": { "type": "string", - "description": "Source's Database Host", - "x-example": "<DATABASE_HOST>" + "description": "Msg91 template ID", + "x-example": "<TEMPLATE_ID>" }, - "username": { + "senderId": { "type": "string", - "description": "Source's Database Username", - "x-example": "<USERNAME>" + "description": "Msg91 sender ID.", + "x-example": "<SENDER_ID>" }, - "password": { + "authKey": { "type": "string", - "description": "Source's Database Password", - "x-example": "<PASSWORD>" + "description": "Msg91 auth key.", + "x-example": "<AUTH_KEY>" }, - "port": { - "type": "integer", - "description": "Source's Database Port", - "x-example": null, - "format": "int32" + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true } }, "required": [ - "resources", - "endpoint", - "apiKey", - "databaseHost", - "username", - "password" + "providerId", + "name" ] } } @@ -33052,21 +32630,21 @@ } } }, - "\/migrations\/supabase\/report": { - "get": { - "summary": "Get Supabase migration report", - "operationId": "migrationsGetSupabaseReport", + "\/messaging\/providers\/msg91\/{providerId}": { + "patch": { + "summary": "Update Msg91 provider", + "operationId": "messagingUpdateMsg91Provider", "tags": [ - "migrations" + "messaging" ], - "description": "Generate a report of the data in a Supabase project before migrating. This endpoint analyzes the source project and returns information about the resources that can be migrated. ", + "description": "Update a MSG91 provider by its unique ID.", "responses": { "200": { - "description": "Migration Report", + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/migrationReport" + "$ref": "#\/components\/schemas\/provider" } } } @@ -33074,139 +32652,99 @@ }, "deprecated": false, "x-appwrite": { - "method": "getSupabaseReport", - "group": null, - "weight": 187, + "method": "updateMsg91Provider", + "group": "providers", + "weight": 193, "cookies": false, "type": "", - "demo": "migrations\/get-supabase-report.md", + "demo": "messaging\/update-msg-91-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", + "scope": "providers.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-supabase-report.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-msg91-provider.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "resources", - "description": "List of resources to migrate", - "required": true, - "schema": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "user", - "database", - "table", - "column", - "index", - "row", - "document", - "attribute", - "collection", - "bucket", - "file" - ], - "x-enum-name": null, - "x-enum-keys": [] - } - }, - "in": "query" - }, - { - "name": "endpoint", - "description": "Source's Supabase Endpoint.", - "required": true, - "schema": { - "type": "string", - "format": "url", - "x-example": "https:\/\/example.com" - }, - "in": "query" - }, - { - "name": "apiKey", - "description": "Source's API Key.", - "required": true, - "schema": { - "type": "string", - "x-example": "<API_KEY>" - }, - "in": "query" - }, - { - "name": "databaseHost", - "description": "Source's Database Host.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_HOST>" - }, - "in": "query" - }, - { - "name": "username", - "description": "Source's Database Username.", - "required": true, - "schema": { - "type": "string", - "x-example": "<USERNAME>" - }, - "in": "query" - }, - { - "name": "password", - "description": "Source's Database Password.", + "name": "providerId", + "description": "Provider ID.", "required": true, "schema": { "type": "string", - "x-example": "<PASSWORD>" - }, - "in": "query" - }, - { - "name": "port", - "description": "Source's Database Port.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 5432 + "x-example": "<PROVIDER_ID>" }, - "in": "query" + "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Provider name.", + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + }, + "templateId": { + "type": "string", + "description": "Msg91 template ID.", + "x-example": "<TEMPLATE_ID>" + }, + "senderId": { + "type": "string", + "description": "Msg91 sender ID.", + "x-example": "<SENDER_ID>" + }, + "authKey": { + "type": "string", + "description": "Msg91 auth key.", + "x-example": "<AUTH_KEY>" + } + } + } + } + } + } } }, - "\/migrations\/{migrationId}": { - "get": { - "summary": "Get migration", - "operationId": "migrationsGet", + "\/messaging\/providers\/resend": { + "post": { + "summary": "Create Resend provider", + "operationId": "messagingCreateResendProvider", "tags": [ - "migrations" + "messaging" ], - "description": "Get a migration by its unique ID. This endpoint returns detailed information about a specific migration including its current status, progress, and any errors that occurred during the migration process. ", + "description": "Create a new Resend provider.", "responses": { - "200": { - "description": "Migration", + "201": { + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/migration" + "$ref": "#\/components\/schemas\/provider" } } } @@ -33214,171 +32752,108 @@ }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": null, - "weight": 184, + "method": "createResendProvider", + "group": "providers", + "weight": 177, "cookies": false, "type": "", - "demo": "migrations\/get.md", + "demo": "messaging\/create-resend-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.read", + "scope": "providers.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/get-migration.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-resend-provider.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] - } - ], - "parameters": [ - { - "name": "migrationId", - "description": "Migration unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<MIGRATION_ID>" - }, - "in": "path" + "Project": [], + "Key": [] } - ] - }, - "patch": { - "summary": "Update retry migration", - "operationId": "migrationsRetry", - "tags": [ - "migrations" ], - "description": "Retry a failed migration. This endpoint allows you to retry a migration that has previously failed.", - "responses": { - "202": { - "description": "Migration", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/migration" - } + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "type": "string", + "description": "Provider 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.", + "x-example": "<PROVIDER_ID>" + }, + "name": { + "type": "string", + "description": "Provider name.", + "x-example": "<NAME>" + }, + "apiKey": { + "type": "string", + "description": "Resend API key.", + "x-example": "<API_KEY>" + }, + "fromName": { + "type": "string", + "description": "Sender Name.", + "x-example": "<FROM_NAME>" + }, + "fromEmail": { + "type": "string", + "description": "Sender email address.", + "x-example": "email@example.com", + "format": "email" + }, + "replyToName": { + "type": "string", + "description": "Name set in the reply to field for the mail. Default value is sender name.", + "x-example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "type": "string", + "description": "Email set in the reply to field for the mail. Default value is sender email.", + "x-example": "email@example.com", + "format": "email" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "providerId", + "name" + ] } } } - }, - "deprecated": false, - "x-appwrite": { - "method": "retry", - "group": null, - "weight": 189, - "cookies": false, - "type": "", - "demo": "migrations\/retry.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/retry-migration.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "migrationId", - "description": "Migration unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<MIGRATION_ID>" - }, - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete migration", - "operationId": "migrationsDelete", - "tags": [ - "migrations" - ], - "description": "Delete a migration by its unique ID. This endpoint allows you to remove a migration from your project's migration history. ", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "method": "delete", - "group": null, - "weight": 190, - "cookies": false, - "type": "", - "demo": "migrations\/delete.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/delete-migration.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "migrationId", - "description": "Migration ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<MIGRATION_ID>" - }, - "in": "path" - } - ] + } } }, - "\/organizations": { - "get": { - "summary": "List Orgnizations", - "operationId": "organizationsList", + "\/messaging\/providers\/resend\/{providerId}": { + "patch": { + "summary": "Update Resend provider", + "operationId": "messagingUpdateResendProvider", "tags": [ - "organizations" + "messaging" ], - "description": "Get a list of all the teams in which the current user is a member. You can use the parameters to filter your results.", + "description": "Update a Resend provider by its unique ID.", "responses": { "200": { - "description": "Organizations list", + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/organizationList" + "$ref": "#\/components\/schemas\/provider" } } } @@ -33386,79 +32861,110 @@ }, "deprecated": false, "x-appwrite": { - "method": "list", - "group": null, - "weight": 692, + "method": "updateResendProvider", + "group": "providers", + "weight": 191, "cookies": false, "type": "", - "demo": "organizations\/list.md", + "demo": "messaging\/update-resend-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "providers.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/list-teams.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-resend-provider.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "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, total, billingPlan, paymentMethodId, backupPaymentMethodId, platform", - "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, + "name": "providerId", + "description": "Provider ID.", + "required": true, "schema": { "type": "string", - "x-example": "<SEARCH>", - "default": "" + "x-example": "<PROVIDER_ID>" }, - "in": "query" + "in": "path" } - ] - }, + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Provider name.", + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + }, + "apiKey": { + "type": "string", + "description": "Resend API key.", + "x-example": "<API_KEY>" + }, + "fromName": { + "type": "string", + "description": "Sender Name.", + "x-example": "<FROM_NAME>" + }, + "fromEmail": { + "type": "string", + "description": "Sender email address.", + "x-example": "email@example.com", + "format": "email" + }, + "replyToName": { + "type": "string", + "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", + "x-example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "type": "string", + "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", + "x-example": "<REPLY_TO_EMAIL>" + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/sendgrid": { "post": { - "summary": "Create Organization", - "operationId": "organizationsCreate", + "summary": "Create Sendgrid provider", + "operationId": "messagingCreateSendgridProvider", "tags": [ - "organizations" + "messaging" ], - "description": "Create a new organization.\n", + "description": "Create a new Sendgrid provider.", "responses": { "201": { - "description": "Organization, or PaymentAuthentication", + "description": "Provider", "content": { "application\/json": { "schema": { - "oneOf": [ - { - "$ref": "#\/components\/schemas\/organization" - }, - { - "$ref": "#\/components\/schemas\/paymentAuthentication" - } - ] + "$ref": "#\/components\/schemas\/provider" } } } @@ -33466,29 +32972,31 @@ }, "deprecated": false, "x-appwrite": { - "method": "create", - "group": null, - "weight": 691, + "method": "createSendgridProvider", + "group": "providers", + "weight": 176, "cookies": false, "type": "", - "demo": "organizations\/create.md", - "rate-limit": 10, + "demo": "messaging\/create-sendgrid-provider.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": "providers.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-sendgrid-provider.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "requestBody": { @@ -33497,76 +33005,53 @@ "schema": { "type": "object", "properties": { - "organizationId": { + "providerId": { "type": "string", - "description": "Organization 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.", - "x-example": "<ORGANIZATION_ID>" + "description": "Provider 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.", + "x-example": "<PROVIDER_ID>" }, "name": { "type": "string", - "description": "Organization name. Max length: 128 chars.", + "description": "Provider name.", "x-example": "<NAME>" }, - "billingPlan": { + "apiKey": { "type": "string", - "description": "Organization billing plan chosen", - "x-example": "tier-0" + "description": "Sendgrid API key.", + "x-example": "<API_KEY>" }, - "paymentMethodId": { + "fromName": { "type": "string", - "description": "Payment method ID. Required for pro plans when trial is not available and user doesn't have default payment method set.", - "x-example": "<PAYMENT_METHOD_ID>", - "x-nullable": true + "description": "Sender Name.", + "x-example": "<FROM_NAME>" }, - "billingAddressId": { + "fromEmail": { "type": "string", - "description": "Unique ID of billing address", - "x-example": "<BILLING_ADDRESS_ID>", - "x-nullable": true - }, - "invites": { - "type": "array", - "description": "Additional member invites", - "x-example": null, - "items": { - "type": "string" - } + "description": "Sender email address.", + "x-example": "email@example.com", + "format": "email" }, - "couponId": { + "replyToName": { "type": "string", - "description": "Coupon id", - "x-example": "<COUPON_ID>", - "x-nullable": true + "description": "Name set in the reply to field for the mail. Default value is sender name.", + "x-example": "<REPLY_TO_NAME>" }, - "taxId": { + "replyToEmail": { "type": "string", - "description": "Tax Id associated to billing.", - "x-example": "<TAX_ID>", - "x-nullable": true + "description": "Email set in the reply to field for the mail. Default value is sender email.", + "x-example": "email@example.com", + "format": "email" }, - "budget": { - "type": "integer", - "description": "Budget limit for additional usage set for the organization", - "x-example": 0, - "format": "int32", + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, "x-nullable": true - }, - "platform": { - "type": "string", - "description": "Platform type", - "x-example": "appwrite", - "enum": [ - "appwrite", - "imagine" - ], - "x-enum-name": null, - "x-enum-keys": [] } }, "required": [ - "organizationId", - "name", - "billingPlan" + "providerId", + "name" ] } } @@ -33574,21 +33059,21 @@ } } }, - "\/organizations\/estimations\/create-organization": { + "\/messaging\/providers\/sendgrid\/{providerId}": { "patch": { - "summary": "Estimate create Organization", - "operationId": "organizationsEstimationCreateOrganization", + "summary": "Update Sendgrid provider", + "operationId": "messagingUpdateSendgridProvider", "tags": [ - "organizations" + "messaging" ], - "description": "Get estimation for creating an organization.", + "description": "Update a Sendgrid provider by its unique ID.", "responses": { "200": { - "description": "Estimation", + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/estimation" + "$ref": "#\/components\/schemas\/provider" } } } @@ -33596,29 +33081,43 @@ }, "deprecated": false, "x-appwrite": { - "method": "estimationCreateOrganization", - "group": null, - "weight": 725, + "method": "updateSendgridProvider", + "group": "providers", + "weight": 190, "cookies": false, "type": "", - "demo": "organizations\/estimation-create-organization.md", - "rate-limit": 10, + "demo": "messaging\/update-sendgrid-provider.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": "providers.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/estimation-create-organization.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-sendgrid-provider.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROVIDER_ID>" + }, + "in": "path" } ], "requestBody": { @@ -33627,195 +33126,532 @@ "schema": { "type": "object", "properties": { - "billingPlan": { + "name": { "type": "string", - "description": "Organization billing plan chosen", - "x-example": "tier-0" + "description": "Provider name.", + "x-example": "<NAME>" }, - "paymentMethodId": { - "type": "string", - "description": "Payment method ID. Required for pro plans when trial is not available and user doesn't have default payment method set.", - "x-example": "<PAYMENT_METHOD_ID>", + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, "x-nullable": true }, - "invites": { - "type": "array", - "description": "Additional member invites", - "x-example": null, - "items": { - "type": "string" - } + "apiKey": { + "type": "string", + "description": "Sendgrid API key.", + "x-example": "<API_KEY>" }, - "couponId": { + "fromName": { "type": "string", - "description": "Coupon id", - "x-example": "<COUPON_ID>", - "x-nullable": true + "description": "Sender Name.", + "x-example": "<FROM_NAME>" }, - "platform": { + "fromEmail": { "type": "string", - "description": "Platform type", - "x-example": "appwrite", - "enum": [ - "appwrite", - "imagine" - ], - "x-enum-name": null, - "x-enum-keys": [] + "description": "Sender email address.", + "x-example": "email@example.com", + "format": "email" + }, + "replyToName": { + "type": "string", + "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", + "x-example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "type": "string", + "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", + "x-example": "<REPLY_TO_EMAIL>" } - }, - "required": [ - "billingPlan" - ] + } } } } } } }, - "\/organizations\/{organizationId}": { - "delete": { - "summary": "Delete team", - "operationId": "organizationsDelete", + "\/messaging\/providers\/smtp": { + "post": { + "summary": "Create SMTP provider", + "operationId": "messagingCreateSmtpProvider", "tags": [ - "organizations" + "messaging" ], - "description": "Delete an organization.", + "description": "Create a new SMTP provider.", "responses": { - "204": { - "description": "No content" + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "delete", - "group": null, - "weight": 693, + "method": "createSmtpProvider", + "group": "providers", + "weight": 178, "cookies": false, "type": "", - "demo": "organizations\/delete.md", + "demo": "messaging\/create-smtp-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "organizations.write", + "scope": "providers.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team.md", + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-smtp-provider.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createSMTPProvider" + }, + "methods": [ + { + "name": "createSmtpProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "providerId", + "name", + "host", + "port", + "username", + "password", + "encryption", + "autoTLS", + "mailer", + "fromName", + "fromEmail", + "replyToName", + "replyToEmail", + "enabled" + ], + "required": [ + "providerId", + "name", + "host" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Create a new SMTP provider.", + "demo": "messaging\/create-smtp-provider.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createSMTPProvider" + } + }, + { + "name": "createSMTPProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "providerId", + "name", + "host", + "port", + "username", + "password", + "encryption", + "autoTLS", + "mailer", + "fromName", + "fromEmail", + "replyToName", + "replyToEmail", + "enabled" + ], + "required": [ + "providerId", + "name", + "host" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Create a new SMTP provider.", + "demo": "messaging\/create-smtp-provider.md", + "public": true + } + ], "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], - "parameters": [ - { - "name": "organizationId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<ORGANIZATION_ID>" - }, - "in": "path" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "type": "string", + "description": "Provider 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.", + "x-example": "<PROVIDER_ID>" + }, + "name": { + "type": "string", + "description": "Provider name.", + "x-example": "<NAME>" + }, + "host": { + "type": "string", + "description": "SMTP hosts. Either a single hostname or multiple semicolon-delimited hostnames. You can also specify a different port for each host such as `smtp1.example.com:25;smtp2.example.com`. You can also specify encryption type, for example: `tls:\/\/smtp1.example.com:587;ssl:\/\/smtp2.example.com:465\"`. Hosts will be tried in order.", + "x-example": "<HOST>" + }, + "port": { + "type": "integer", + "description": "The default SMTP server port.", + "x-example": 1, + "format": "int32" + }, + "username": { + "type": "string", + "description": "Authentication username.", + "x-example": "<USERNAME>" + }, + "password": { + "type": "string", + "description": "Authentication password.", + "x-example": "<PASSWORD>" + }, + "encryption": { + "type": "string", + "description": "Encryption type. Can be omitted, 'ssl', or 'tls'", + "x-example": "none", + "enum": [ + "none", + "ssl", + "tls" + ], + "x-enum-name": "SmtpEncryption", + "x-enum-keys": [] + }, + "autoTLS": { + "type": "boolean", + "description": "Enable SMTP AutoTLS feature.", + "x-example": false + }, + "mailer": { + "type": "string", + "description": "The value to use for the X-Mailer header.", + "x-example": "<MAILER>" + }, + "fromName": { + "type": "string", + "description": "Sender Name.", + "x-example": "<FROM_NAME>" + }, + "fromEmail": { + "type": "string", + "description": "Sender email address.", + "x-example": "email@example.com", + "format": "email" + }, + "replyToName": { + "type": "string", + "description": "Name set in the reply to field for the mail. Default value is sender name.", + "x-example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "type": "string", + "description": "Email set in the reply to field for the mail. Default value is sender email.", + "x-example": "email@example.com", + "format": "email" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "providerId", + "name", + "host" + ] + } + } } - ] + } } }, - "\/organizations\/{organizationId}\/aggregations": { - "get": { - "summary": "List aggregations", - "operationId": "organizationsListAggregations", + "\/messaging\/providers\/smtp\/{providerId}": { + "patch": { + "summary": "Update SMTP provider", + "operationId": "messagingUpdateSmtpProvider", "tags": [ - "organizations" + "messaging" ], - "description": "Get a list of all aggregations for an organization.", + "description": "Update a SMTP provider by its unique ID.", "responses": { "200": { - "description": "Aggregation team list", + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/aggregationTeamList" + "$ref": "#\/components\/schemas\/provider" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "listAggregations", - "group": null, - "weight": 708, + "method": "updateSmtpProvider", + "group": "providers", + "weight": 192, "cookies": false, "type": "", - "demo": "organizations\/list-aggregations.md", + "demo": "messaging\/update-smtp-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "providers.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/list-aggregations.md", + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-smtp-provider.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateSMTPProvider" + }, + "methods": [ + { + "name": "updateSmtpProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "providerId", + "name", + "host", + "port", + "username", + "password", + "encryption", + "autoTLS", + "mailer", + "fromName", + "fromEmail", + "replyToName", + "replyToEmail", + "enabled" + ], + "required": [ + "providerId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Update a SMTP provider by its unique ID.", + "demo": "messaging\/update-smtp-provider.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateSMTPProvider" + } + }, + { + "name": "updateSMTPProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "providerId", + "name", + "host", + "port", + "username", + "password", + "encryption", + "autoTLS", + "mailer", + "fromName", + "fromEmail", + "replyToName", + "replyToEmail", + "enabled" + ], + "required": [ + "providerId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Update a SMTP provider by its unique ID.", + "demo": "messaging\/update-smtp-provider.md", + "public": true + } + ], "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", + "name": "providerId", + "description": "Provider ID.", "required": true, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" + "x-example": "<PROVIDER_ID>" }, "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\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: teamId, aggregationId, from, to", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Provider name.", + "x-example": "<NAME>" + }, + "host": { + "type": "string", + "description": "SMTP hosts. Either a single hostname or multiple semicolon-delimited hostnames. You can also specify a different port for each host such as `smtp1.example.com:25;smtp2.example.com`. You can also specify encryption type, for example: `tls:\/\/smtp1.example.com:587;ssl:\/\/smtp2.example.com:465\"`. Hosts will be tried in order.", + "x-example": "<HOST>" + }, + "port": { + "type": "integer", + "description": "SMTP port.", + "x-example": 1, + "format": "int32", + "x-nullable": true + }, + "username": { + "type": "string", + "description": "Authentication username.", + "x-example": "<USERNAME>" + }, + "password": { + "type": "string", + "description": "Authentication password.", + "x-example": "<PASSWORD>" + }, + "encryption": { + "type": "string", + "description": "Encryption type. Can be 'ssl' or 'tls'", + "x-example": "none", + "enum": [ + "none", + "ssl", + "tls" + ], + "x-enum-name": "SmtpEncryption", + "x-enum-keys": [] + }, + "autoTLS": { + "type": "boolean", + "description": "Enable SMTP AutoTLS feature.", + "x-example": false, + "x-nullable": true + }, + "mailer": { + "type": "string", + "description": "The value to use for the X-Mailer header.", + "x-example": "<MAILER>" + }, + "fromName": { + "type": "string", + "description": "Sender Name.", + "x-example": "<FROM_NAME>" + }, + "fromEmail": { + "type": "string", + "description": "Sender email address.", + "x-example": "email@example.com", + "format": "email" + }, + "replyToName": { + "type": "string", + "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", + "x-example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "type": "string", + "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", + "x-example": "<REPLY_TO_EMAIL>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } } }, - "\/organizations\/{organizationId}\/aggregations\/{aggregationId}": { - "get": { - "summary": "Get aggregation", - "operationId": "organizationsGetAggregation", + "\/messaging\/providers\/telesign": { + "post": { + "summary": "Create Telesign provider", + "operationId": "messagingCreateTelesignProvider", "tags": [ - "organizations" + "messaging" ], - "description": "Get a specific aggregation using it's aggregation ID.", + "description": "Create a new Telesign provider.", "responses": { - "200": { - "description": "AggregationTeam", + "201": { + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/aggregationTeam" + "$ref": "#\/components\/schemas\/provider" } } } @@ -33823,93 +33659,97 @@ }, "deprecated": false, "x-appwrite": { - "method": "getAggregation", - "group": null, - "weight": 709, + "method": "createTelesignProvider", + "group": "providers", + "weight": 180, "cookies": false, "type": "", - "demo": "organizations\/get-aggregation.md", + "demo": "messaging\/create-telesign-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "providers.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-aggregation.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-telesign-provider.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "x-example": "<ORGANIZATION_ID>" - }, - "in": "path" - }, - { - "name": "aggregationId", - "description": "Invoice unique ID", - "required": true, - "schema": { - "type": "string", - "x-example": "<AGGREGATION_ID>" - }, - "in": "path" - }, - { - "name": "limit", - "description": "Maximum number of project aggregations to return in response. By default will return maximum 5 results. Maximum of 10 results allowed per request.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "x-example": 0, - "default": 5 - }, - "in": "query" - }, - { - "name": "offset", - "description": "Offset value. The default value is 0. Use this param to manage pagination.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 0 - }, - "in": "query" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "type": "string", + "description": "Provider 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.", + "x-example": "<PROVIDER_ID>" + }, + "name": { + "type": "string", + "description": "Provider name.", + "x-example": "<NAME>" + }, + "from": { + "type": "string", + "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "x-example": "+12065550100", + "format": "phone" + }, + "customerId": { + "type": "string", + "description": "Telesign customer ID.", + "x-example": "<CUSTOMER_ID>" + }, + "apiKey": { + "type": "string", + "description": "Telesign API key.", + "x-example": "<API_KEY>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } } - ] + } } }, - "\/organizations\/{organizationId}\/billing-address": { + "\/messaging\/providers\/telesign\/{providerId}": { "patch": { - "summary": "Set team's billing address", - "operationId": "organizationsSetBillingAddress", + "summary": "Update Telesign provider", + "operationId": "messagingUpdateTelesignProvider", "tags": [ - "organizations" + "messaging" ], - "description": "Set a billing address for an organization.", + "description": "Update a Telesign provider by its unique ID.", "responses": { "200": { - "description": "Organization", + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/organization" + "$ref": "#\/components\/schemas\/provider" } } } @@ -33917,39 +33757,41 @@ }, "deprecated": false, "x-appwrite": { - "method": "setBillingAddress", - "group": null, - "weight": 701, + "method": "updateTelesignProvider", + "group": "providers", + "weight": 194, "cookies": false, "type": "", - "demo": "organizations\/set-billing-address.md", + "demo": "messaging\/update-telesign-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "providers.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/set-billing-address.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-telesign-provider.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", + "name": "providerId", + "description": "Provider ID.", "required": true, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" + "x-example": "<PROVIDER_ID>" }, "in": "path" } @@ -33960,88 +33802,152 @@ "schema": { "type": "object", "properties": { - "billingAddressId": { + "name": { "type": "string", - "description": "Unique ID of billing address", - "x-example": "<BILLING_ADDRESS_ID>" + "description": "Provider name.", + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + }, + "customerId": { + "type": "string", + "description": "Telesign customer ID.", + "x-example": "<CUSTOMER_ID>" + }, + "apiKey": { + "type": "string", + "description": "Telesign API key.", + "x-example": "<API_KEY>" + }, + "from": { + "type": "string", + "description": "Sender number.", + "x-example": "<FROM>" } - }, - "required": [ - "billingAddressId" - ] + } } } } } - }, - "delete": { - "summary": "Delete team's billing address", - "operationId": "organizationsDeleteBillingAddress", + } + }, + "\/messaging\/providers\/textmagic": { + "post": { + "summary": "Create Textmagic provider", + "operationId": "messagingCreateTextmagicProvider", "tags": [ - "organizations" + "messaging" ], - "description": "Delete a team's billing address.", + "description": "Create a new Textmagic provider.", "responses": { - "204": { - "description": "No content" + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteBillingAddress", - "group": null, - "weight": 702, + "method": "createTextmagicProvider", + "group": "providers", + "weight": 181, "cookies": false, "type": "", - "demo": "organizations\/delete-billing-address.md", + "demo": "messaging\/create-textmagic-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "providers.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/delete-billing-address.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-textmagic-provider.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "x-example": "<ORGANIZATION_ID>" - }, - "in": "path" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "type": "string", + "description": "Provider 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.", + "x-example": "<PROVIDER_ID>" + }, + "name": { + "type": "string", + "description": "Provider name.", + "x-example": "<NAME>" + }, + "from": { + "type": "string", + "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "x-example": "+12065550100", + "format": "phone" + }, + "username": { + "type": "string", + "description": "Textmagic username.", + "x-example": "<USERNAME>" + }, + "apiKey": { + "type": "string", + "description": "Textmagic apiKey.", + "x-example": "<API_KEY>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } } - ] + } } }, - "\/organizations\/{organizationId}\/billing-addresses\/{billingAddressId}": { - "get": { - "summary": "Get billing address", - "operationId": "organizationsGetBillingAddress", + "\/messaging\/providers\/textmagic\/{providerId}": { + "patch": { + "summary": "Update Textmagic provider", + "operationId": "messagingUpdateTextmagicProvider", "tags": [ - "organizations" + "messaging" ], - "description": "Get a billing address using it's ID.", + "description": "Update a Textmagic provider by its unique ID.", "responses": { "200": { - "description": "BillingAddress", + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/billingAddress" + "$ref": "#\/components\/schemas\/provider" } } } @@ -34049,70 +33955,99 @@ }, "deprecated": false, "x-appwrite": { - "method": "getBillingAddress", - "group": null, - "weight": 700, + "method": "updateTextmagicProvider", + "group": "providers", + "weight": 195, "cookies": false, "type": "", - "demo": "organizations\/get-billing-address.md", + "demo": "messaging\/update-textmagic-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.read", + "scope": "providers.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-billing-address.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-textmagic-provider.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "x-example": "<ORGANIZATION_ID>" - }, - "in": "path" - }, - { - "name": "billingAddressId", - "description": "Unique ID of billing address", + "name": "providerId", + "description": "Provider ID.", "required": true, "schema": { "type": "string", - "x-example": "<BILLING_ADDRESS_ID>" + "x-example": "<PROVIDER_ID>" }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Provider name.", + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + }, + "username": { + "type": "string", + "description": "Textmagic username.", + "x-example": "<USERNAME>" + }, + "apiKey": { + "type": "string", + "description": "Textmagic apiKey.", + "x-example": "<API_KEY>" + }, + "from": { + "type": "string", + "description": "Sender number.", + "x-example": "<FROM>" + } + } + } + } + } + } } }, - "\/organizations\/{organizationId}\/billing-email": { - "patch": { - "summary": "Set team's billing email", - "operationId": "organizationsSetBillingEmail", + "\/messaging\/providers\/twilio": { + "post": { + "summary": "Create Twilio provider", + "operationId": "messagingCreateTwilioProvider", "tags": [ - "organizations" + "messaging" ], - "description": "Set the current billing email for the organization.", + "description": "Create a new Twilio provider.", "responses": { - "200": { - "description": "Organization", + "201": { + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/organization" + "$ref": "#\/components\/schemas\/provider" } } } @@ -34120,41 +34055,31 @@ }, "deprecated": false, "x-appwrite": { - "method": "setBillingEmail", - "group": null, - "weight": 720, + "method": "createTwilioProvider", + "group": "providers", + "weight": 182, "cookies": false, "type": "", - "demo": "organizations\/set-billing-email.md", + "demo": "messaging\/create-twilio-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "providers.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/set-billing-email.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-twilio-provider.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "x-example": "<ORGANIZATION_ID>" - }, - "in": "path" + "Project": [], + "Key": [] } ], "requestBody": { @@ -34163,15 +34088,42 @@ "schema": { "type": "object", "properties": { - "billingEmail": { + "providerId": { "type": "string", - "description": "Billing email for the organization.", - "x-example": "email@example.com", - "format": "email" + "description": "Provider 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.", + "x-example": "<PROVIDER_ID>" + }, + "name": { + "type": "string", + "description": "Provider name.", + "x-example": "<NAME>" + }, + "from": { + "type": "string", + "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "x-example": "+12065550100", + "format": "phone" + }, + "accountSid": { + "type": "string", + "description": "Twilio account secret ID.", + "x-example": "<ACCOUNT_SID>" + }, + "authToken": { + "type": "string", + "description": "Twilio authentication token.", + "x-example": "<AUTH_TOKEN>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true } }, "required": [ - "billingEmail" + "providerId", + "name" ] } } @@ -34179,21 +34131,21 @@ } } }, - "\/organizations\/{organizationId}\/budget": { + "\/messaging\/providers\/twilio\/{providerId}": { "patch": { - "summary": "Update organization budget", - "operationId": "organizationsUpdateBudget", + "summary": "Update Twilio provider", + "operationId": "messagingUpdateTwilioProvider", "tags": [ - "organizations" + "messaging" ], - "description": "Update the budget limit for an organization.", + "description": "Update a Twilio provider by its unique ID.", "responses": { "200": { - "description": "Organization", + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/organization" + "$ref": "#\/components\/schemas\/provider" } } } @@ -34201,39 +34153,41 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateBudget", - "group": null, - "weight": 697, + "method": "updateTwilioProvider", + "group": "providers", + "weight": 196, "cookies": false, "type": "", - "demo": "organizations\/update-budget.md", + "demo": "messaging\/update-twilio-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "providers.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/update-budget.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-twilio-provider.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization Unique ID", + "name": "providerId", + "description": "Provider ID.", "required": true, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" + "x-example": "<PROVIDER_ID>" }, "in": "path" } @@ -34244,46 +34198,54 @@ "schema": { "type": "object", "properties": { - "budget": { - "type": "integer", - "description": "Budget limit for additional usage set for the organization", - "x-example": 0, - "format": "int32", + "name": { + "type": "string", + "description": "Provider name.", + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, "x-nullable": true }, - "alerts": { - "type": "array", - "description": "Budget alert limit percentage", - "x-example": null, - "items": { - "type": "integer" - } + "accountSid": { + "type": "string", + "description": "Twilio account secret ID.", + "x-example": "<ACCOUNT_SID>" + }, + "authToken": { + "type": "string", + "description": "Twilio authentication token.", + "x-example": "<AUTH_TOKEN>" + }, + "from": { + "type": "string", + "description": "Sender number.", + "x-example": "<FROM>" } - }, - "required": [ - "budget" - ] + } } } } } } }, - "\/organizations\/{organizationId}\/credits": { - "get": { - "summary": "List credits", - "operationId": "organizationsListCredits", + "\/messaging\/providers\/vonage": { + "post": { + "summary": "Create Vonage provider", + "operationId": "messagingCreateVonageProvider", "tags": [ - "organizations" + "messaging" ], - "description": "List all credits for an organization.\n", + "description": "Create a new Vonage provider.", "responses": { - "200": { - "description": "CreditList", + "201": { + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/creditList" + "$ref": "#\/components\/schemas\/provider" } } } @@ -34291,71 +34253,97 @@ }, "deprecated": false, "x-appwrite": { - "method": "listCredits", - "group": null, - "weight": 712, + "method": "createVonageProvider", + "group": "providers", + "weight": 183, "cookies": false, "type": "", - "demo": "organizations\/list-credits.md", + "demo": "messaging\/create-vonage-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.read", + "scope": "providers.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/list-credits.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-vonage-provider.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "x-example": "<ORGANIZATION_ID>" - }, - "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\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: teamId, couponId, credits, expiration, status", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "type": "string", + "description": "Provider 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.", + "x-example": "<PROVIDER_ID>" + }, + "name": { + "type": "string", + "description": "Provider name.", + "x-example": "<NAME>" + }, + "from": { + "type": "string", + "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "x-example": "+12065550100", + "format": "phone" + }, + "apiKey": { + "type": "string", + "description": "Vonage API key.", + "x-example": "<API_KEY>" + }, + "apiSecret": { + "type": "string", + "description": "Vonage API secret.", + "x-example": "<API_SECRET>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } } - ] - }, - "post": { - "summary": "Add credits from coupon", - "operationId": "organizationsAddCredit", + } + } + }, + "\/messaging\/providers\/vonage\/{providerId}": { + "patch": { + "summary": "Update Vonage provider", + "operationId": "messagingUpdateVonageProvider", "tags": [ - "organizations" + "messaging" ], - "description": "Add credit to an organization using a coupon.", + "description": "Update a Vonage provider by its unique ID.", "responses": { - "201": { - "description": "Credit", + "200": { + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/credit" + "$ref": "#\/components\/schemas\/provider" } } } @@ -34363,39 +34351,41 @@ }, "deprecated": false, "x-appwrite": { - "method": "addCredit", - "group": null, - "weight": 713, + "method": "updateVonageProvider", + "group": "providers", + "weight": 197, "cookies": false, "type": "", - "demo": "organizations\/add-credit.md", - "rate-limit": 10, + "demo": "messaging\/update-vonage-provider.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "providers.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/add-credit.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-vonage-provider.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", + "name": "providerId", + "description": "Provider ID.", "required": true, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" + "x-example": "<PROVIDER_ID>" }, "in": "path" } @@ -34406,36 +34396,54 @@ "schema": { "type": "object", "properties": { - "couponId": { + "name": { "type": "string", - "description": "ID of the coupon", - "x-example": "<COUPON_ID>" + "description": "Provider name.", + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + }, + "apiKey": { + "type": "string", + "description": "Vonage API key.", + "x-example": "<API_KEY>" + }, + "apiSecret": { + "type": "string", + "description": "Vonage API secret.", + "x-example": "<API_SECRET>" + }, + "from": { + "type": "string", + "description": "Sender number.", + "x-example": "<FROM>" } - }, - "required": [ - "couponId" - ] + } } } } } } }, - "\/organizations\/{organizationId}\/credits\/available": { + "\/messaging\/providers\/{providerId}": { "get": { - "summary": "Get available credits", - "operationId": "organizationsGetAvailableCredits", + "summary": "Get provider", + "operationId": "messagingGetProvider", "tags": [ - "organizations" + "messaging" ], - "description": "Get total available valid credits for an organization.", + "description": "Get a provider by its unique ID.\n", "responses": { "200": { - "description": "CreditAvailable", + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/creditAvailable" + "$ref": "#\/components\/schemas\/provider" } } } @@ -34443,60 +34451,116 @@ }, "deprecated": false, "x-appwrite": { - "method": "getAvailableCredits", - "group": null, - "weight": 711, + "method": "getProvider", + "group": "providers", + "weight": 188, "cookies": false, "type": "", - "demo": "organizations\/get-available-credits.md", + "demo": "messaging\/get-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.read", + "scope": "providers.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-available-credits.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/get-provider.md", "auth": { "Project": [] } }, "security": [ { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROVIDER_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete provider", + "operationId": "messagingDeleteProvider", + "tags": [ + "messaging" + ], + "description": "Delete a provider by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteProvider", + "group": "providers", + "weight": 200, + "cookies": false, + "type": "", + "demo": "messaging\/delete-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-provider.md", + "auth": { "Project": [] } + }, + "security": [ + { + "Project": [], + "Key": [] + } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", + "name": "providerId", + "description": "Provider ID.", "required": true, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" + "x-example": "<PROVIDER_ID>" }, "in": "path" } ] } }, - "\/organizations\/{organizationId}\/credits\/{creditId}": { + "\/messaging\/providers\/{providerId}\/logs": { "get": { - "summary": "Get credit details", - "operationId": "organizationsGetCredit", + "summary": "List provider logs", + "operationId": "messagingListProviderLogs", "tags": [ - "organizations" + "messaging" ], - "description": "Get credit details.", + "description": "Get the provider activity logs listed by its unique ID.", "responses": { "200": { - "description": "Credit", + "description": "Logs List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/credit" + "$ref": "#\/components\/schemas\/logList" } } } @@ -34504,70 +34568,86 @@ }, "deprecated": false, "x-appwrite": { - "method": "getCredit", - "group": null, - "weight": 710, + "method": "listProviderLogs", + "group": "providers", + "weight": 187, "cookies": false, "type": "", - "demo": "organizations\/get-credit.md", + "demo": "messaging\/list-provider-logs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.read", + "scope": "providers.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-credit.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-provider-logs.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", + "name": "providerId", + "description": "Provider ID.", "required": true, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" + "x-example": "<PROVIDER_ID>" }, "in": "path" }, { - "name": "creditId", - "description": "Credit Unique ID", - "required": true, + "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": "string", - "x-example": "<CREDIT_ID>" + "type": "array", + "items": { + "type": "string" + }, + "default": [] }, - "in": "path" + "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", + "x-example": false, + "default": true + }, + "in": "query" } ] } }, - "\/organizations\/{organizationId}\/estimations\/delete-organization": { - "patch": { - "summary": "Estimate delete team", - "operationId": "organizationsEstimationDeleteOrganization", + "\/messaging\/subscribers\/{subscriberId}\/logs": { + "get": { + "summary": "List subscriber logs", + "operationId": "messagingListSubscriberLogs", "tags": [ - "organizations" + "messaging" ], - "description": "Get estimation for deleting an organization.", + "description": "Get the subscriber activity logs listed by its unique ID.", "responses": { "200": { - "description": "EstimationDeleteOrganization", + "description": "Logs List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/estimationDeleteOrganization" + "$ref": "#\/components\/schemas\/logList" } } } @@ -34575,60 +34655,86 @@ }, "deprecated": false, "x-appwrite": { - "method": "estimationDeleteOrganization", - "group": null, - "weight": 726, + "method": "listSubscriberLogs", + "group": "subscribers", + "weight": 209, "cookies": false, "type": "", - "demo": "organizations\/estimation-delete-organization.md", - "rate-limit": 10, + "demo": "messaging\/list-subscriber-logs.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "organizations.write", + "scope": "subscribers.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/estimation-delete-organization.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-subscriber-logs.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Team ID.", + "name": "subscriberId", + "description": "Subscriber ID.", "required": true, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" + "x-example": "<SUBSCRIBER_ID>" }, "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). 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", + "x-example": false, + "default": true + }, + "in": "query" } ] } }, - "\/organizations\/{organizationId}\/estimations\/update-plan": { - "patch": { - "summary": "Estimate for update plan", - "operationId": "organizationsEstimationUpdatePlan", + "\/messaging\/topics": { + "get": { + "summary": "List topics", + "operationId": "messagingListTopics", "tags": [ - "organizations" + "messaging" ], - "description": "Get estimation for updating the organization plan.", + "description": "Get a list of all topics from the current Appwrite project.", "responses": { "200": { - "description": "EstimationUpdatePlan", + "description": "Topic list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/estimationUpdatePlan" + "$ref": "#\/components\/schemas\/topicList" } } } @@ -34636,93 +34742,85 @@ }, "deprecated": false, "x-appwrite": { - "method": "estimationUpdatePlan", - "group": null, - "weight": 724, + "method": "listTopics", + "group": "topics", + "weight": 202, "cookies": false, "type": "", - "demo": "organizations\/estimation-update-plan.md", - "rate-limit": 10, + "demo": "messaging\/list-topics.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "topics.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/estimation-update-plan.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-topics.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", - "required": true, + "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, description, emailTotal, smsTotal, pushTotal", + "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", - "x-example": "<ORGANIZATION_ID>" + "x-example": "<SEARCH>", + "default": "" }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "billingPlan": { - "type": "string", - "description": "Organization billing plan chosen", - "x-example": "tier-0" - }, - "invites": { - "type": "array", - "description": "Additional member invites", - "x-example": null, - "items": { - "type": "string" - } - }, - "couponId": { - "type": "string", - "description": "Coupon id", - "x-example": "<COUPON_ID>", - "x-nullable": true - } - }, - "required": [ - "billingPlan" - ] - } - } + "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", + "x-example": false, + "default": true + }, + "in": "query" } - } - } - }, - "\/organizations\/{organizationId}\/feedbacks\/downgrade": { + ] + }, "post": { - "summary": "Create downgrade feedback", - "operationId": "organizationsCreateDowngradeFeedback", + "summary": "Create topic", + "operationId": "messagingCreateTopic", "tags": [ - "organizations" + "messaging" ], - "description": "Submit feedback about downgrading from a paid plan to a lower tier. This helps the team understand user experience and improve the platform.\n", + "description": "Create a new topic.", "responses": { "201": { - "description": "Downgrade Feedback", + "description": "Topic", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/downgradeFeedback" + "$ref": "#\/components\/schemas\/topic" } } } @@ -34730,41 +34828,31 @@ }, "deprecated": false, "x-appwrite": { - "method": "createDowngradeFeedback", - "group": null, - "weight": 727, + "method": "createTopic", + "group": "topics", + "weight": 201, "cookies": false, "type": "", - "demo": "organizations\/create-downgrade-feedback.md", + "demo": "messaging\/create-topic.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "topics.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/create-downgrade-feedback.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-topic.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization Unique ID", - "required": true, - "schema": { - "type": "string", - "x-example": "<ORGANIZATION_ID>" - }, - "in": "path" + "Project": [], + "Key": [] } ], "requestBody": { @@ -34773,32 +34861,28 @@ "schema": { "type": "object", "properties": { - "reason": { - "type": "string", - "description": "Feedback reason", - "x-example": "<REASON>" - }, - "message": { + "topicId": { "type": "string", - "description": "Feedback message", - "x-example": "<MESSAGE>" + "description": "Topic ID. Choose a custom Topic ID or a new Topic ID.", + "x-example": "<TOPIC_ID>" }, - "fromPlanId": { + "name": { "type": "string", - "description": "Plan downgrading from", - "x-example": "<FROM_PLAN_ID>" + "description": "Topic Name.", + "x-example": "<NAME>" }, - "toPlanId": { - "type": "string", - "description": "Plan downgrading to", - "x-example": "<TO_PLAN_ID>" + "subscribe": { + "type": "array", + "description": "An array of role strings with subscribe permission. By default all users are granted with any subscribe permission. [learn more about roles](https:\/\/appwrite.io\/docs\/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.", + "x-example": "[\"any\"]", + "items": { + "type": "string" + } } }, "required": [ - "reason", - "message", - "fromPlanId", - "toPlanId" + "topicId", + "name" ] } } @@ -34806,21 +34890,21 @@ } } }, - "\/organizations\/{organizationId}\/invoices": { + "\/messaging\/topics\/{topicId}": { "get": { - "summary": "List invoices", - "operationId": "organizationsListInvoices", + "summary": "Get topic", + "operationId": "messagingGetTopic", "tags": [ - "organizations" + "messaging" ], - "description": "List all invoices for an organization.", + "description": "Get a topic by its unique ID.\n", "responses": { "200": { - "description": "Billing invoices list", + "description": "Topic", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/invoiceList" + "$ref": "#\/components\/schemas\/topic" } } } @@ -34828,73 +34912,60 @@ }, "deprecated": false, "x-appwrite": { - "method": "listInvoices", - "group": null, - "weight": 715, + "method": "getTopic", + "group": "topics", + "weight": 204, "cookies": false, "type": "", - "demo": "organizations\/list-invoices.md", + "demo": "messaging\/get-topic.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.read", + "scope": "topics.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/list-invoices.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/get-topic.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", + "name": "topicId", + "description": "Topic ID.", "required": true, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" + "x-example": "<TOPIC_ID>" }, "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\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: teamId, aggregationId, amount, currency, from, to, dueAt, attempts, status, grossAmount", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" } ] - } - }, - "\/organizations\/{organizationId}\/invoices\/{invoiceId}": { - "get": { - "summary": "Get invoice", - "operationId": "organizationsGetInvoice", + }, + "patch": { + "summary": "Update topic", + "operationId": "messagingUpdateTopic", "tags": [ - "organizations" + "messaging" ], - "description": "Get an invoice by its unique ID.", + "description": "Update a topic by its unique ID.\n", "responses": { "200": { - "description": "Invoice", + "description": "Topic", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/invoice" + "$ref": "#\/components\/schemas\/topic" } } } @@ -34902,141 +34973,142 @@ }, "deprecated": false, "x-appwrite": { - "method": "getInvoice", - "group": null, - "weight": 714, + "method": "updateTopic", + "group": "topics", + "weight": 205, "cookies": false, "type": "", - "demo": "organizations\/get-invoice.md", + "demo": "messaging\/update-topic.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.read", + "scope": "topics.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-invoice.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-topic.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "x-example": "<ORGANIZATION_ID>" - }, - "in": "path" - }, - { - "name": "invoiceId", - "description": "Invoice unique ID", + "name": "topicId", + "description": "Topic ID.", "required": true, "schema": { "type": "string", - "x-example": "<INVOICE_ID>" + "x-example": "<TOPIC_ID>" }, "in": "path" } - ] - } - }, - "\/organizations\/{organizationId}\/invoices\/{invoiceId}\/download": { - "get": { - "summary": "Download invoice in PDF", - "operationId": "organizationsGetInvoiceDownload", - "tags": [ - "organizations" ], - "description": "Download invoice in PDF", - "responses": { - "200": { - "description": "paymentMethod", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/paymentMethod" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Topic Name.", + "x-example": "<NAME>", + "x-nullable": true + }, + "subscribe": { + "type": "array", + "description": "An array of role strings with subscribe permission. By default all users are granted with any subscribe permission. [learn more about roles](https:\/\/appwrite.io\/docs\/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.", + "x-example": "[\"any\"]", + "items": { + "type": "string" + }, + "x-nullable": true + } } } } } + } + }, + "delete": { + "summary": "Delete topic", + "operationId": "messagingDeleteTopic", + "tags": [ + "messaging" + ], + "description": "Delete a topic by its unique ID.", + "responses": { + "204": { + "description": "No content" + } }, "deprecated": false, "x-appwrite": { - "method": "getInvoiceDownload", - "group": null, - "weight": 718, + "method": "deleteTopic", + "group": "topics", + "weight": 206, "cookies": false, "type": "", - "demo": "organizations\/get-invoice-download.md", + "demo": "messaging\/delete-topic.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.read", + "scope": "topics.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-invoice-download.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-topic.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "x-example": "<ORGANIZATION_ID>" - }, - "in": "path" - }, - { - "name": "invoiceId", - "description": "Invoice unique ID", + "name": "topicId", + "description": "Topic ID.", "required": true, "schema": { "type": "string", - "x-example": "<INVOICE_ID>" + "x-example": "<TOPIC_ID>" }, "in": "path" } ] } }, - "\/organizations\/{organizationId}\/invoices\/{invoiceId}\/payments": { - "post": { - "summary": "Initiate payment for failed invoice to pay live from console", - "operationId": "organizationsCreateInvoicePayment", + "\/messaging\/topics\/{topicId}\/logs": { + "get": { + "summary": "List topic logs", + "operationId": "messagingListTopicLogs", "tags": [ - "organizations" + "messaging" ], - "description": "Initiate payment for failed invoice to pay live from console", + "description": "Get the topic activity logs listed by its unique ID.", "responses": { "200": { - "description": "Invoice", + "description": "Logs List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/invoice" + "$ref": "#\/components\/schemas\/logList" } } } @@ -35044,89 +35116,86 @@ }, "deprecated": false, "x-appwrite": { - "method": "createInvoicePayment", - "group": null, - "weight": 719, + "method": "listTopicLogs", + "group": "topics", + "weight": 203, "cookies": false, "type": "", - "demo": "organizations\/create-invoice-payment.md", - "rate-limit": 10, - "rate-time": 86400, + "demo": "messaging\/list-topic-logs.md", + "rate-limit": 0, + "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "topics.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/create-invoice-payment.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-topic-logs.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", + "name": "topicId", + "description": "Topic ID.", "required": true, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" + "x-example": "<TOPIC_ID>" }, "in": "path" }, { - "name": "invoiceId", - "description": "Invoice unique ID", - "required": true, + "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": "string", - "x-example": "<INVOICE_ID>" + "type": "array", + "items": { + "type": "string" + }, + "default": [] }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "paymentMethodId": { - "type": "string", - "description": "Payment method ID", - "x-example": "<PAYMENT_METHOD_ID>" - } - }, - "required": [ - "paymentMethodId" - ] - } - } + "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", + "x-example": false, + "default": true + }, + "in": "query" } - } + ] } }, - "\/organizations\/{organizationId}\/invoices\/{invoiceId}\/status": { - "patch": { - "summary": "Validate the payment for an invoice and update status", - "operationId": "organizationsValidateInvoice", + "\/messaging\/topics\/{topicId}\/subscribers": { + "get": { + "summary": "List subscribers", + "operationId": "messagingListSubscribers", "tags": [ - "organizations" + "messaging" ], - "description": "Validates the payment linked with the invoice and updates the invoice status if the payment status is changed.", + "description": "Get a list of all subscribers from the current Appwrite project.", "responses": { "200": { - "description": "Invoice", + "description": "Subscriber list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/invoice" + "$ref": "#\/components\/schemas\/subscriberList" } } } @@ -35134,70 +35203,95 @@ }, "deprecated": false, "x-appwrite": { - "method": "validateInvoice", - "group": null, - "weight": 716, + "method": "listSubscribers", + "group": "subscribers", + "weight": 208, "cookies": false, "type": "", - "demo": "organizations\/validate-invoice.md", + "demo": "messaging\/list-subscribers.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "subscribers.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/update-invoice-status.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-subscribers.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", + "name": "topicId", + "description": "Topic ID. The topic ID subscribed to.", "required": true, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" + "x-example": "<TOPIC_ID>" }, "in": "path" }, { - "name": "invoiceId", - "description": "Invoice unique ID", - "required": true, + "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: targetId, topicId, userId, providerType", + "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", - "x-example": "<INVOICE_ID>" + "x-example": "<SEARCH>", + "default": "" }, - "in": "path" + "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", + "x-example": false, + "default": true + }, + "in": "query" } ] - } - }, - "\/organizations\/{organizationId}\/invoices\/{invoiceId}\/view": { - "get": { - "summary": "View invoice in PDF", - "operationId": "organizationsGetInvoiceView", + }, + "post": { + "summary": "Create subscriber", + "operationId": "messagingCreateSubscriber", "tags": [ - "organizations" + "messaging" ], - "description": "View invoice in PDF", + "description": "Create a new subscriber.", "responses": { - "200": { - "description": "paymentMethod", + "201": { + "description": "Subscriber", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/paymentMethod" + "$ref": "#\/components\/schemas\/subscriber" } } } @@ -35205,70 +35299,90 @@ }, "deprecated": false, "x-appwrite": { - "method": "getInvoiceView", - "group": null, - "weight": 717, + "method": "createSubscriber", + "group": "subscribers", + "weight": 207, "cookies": false, "type": "", - "demo": "organizations\/get-invoice-view.md", + "demo": "messaging\/create-subscriber.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.read", + "scope": "subscribers.write", "platforms": [ - "console" + "server", + "client", + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-invoice-view.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-subscriber.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "JWT": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "x-example": "<ORGANIZATION_ID>" - }, - "in": "path" - }, - { - "name": "invoiceId", - "description": "Invoice unique ID", + "name": "topicId", + "description": "Topic ID. The topic ID to subscribe to.", "required": true, "schema": { "type": "string", - "x-example": "<INVOICE_ID>" + "x-example": "<TOPIC_ID>" }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "subscriberId": { + "type": "string", + "description": "Subscriber ID. Choose a custom Subscriber ID or a new Subscriber ID.", + "x-example": "<SUBSCRIBER_ID>" + }, + "targetId": { + "type": "string", + "description": "Target ID. The target ID to link to the specified Topic ID.", + "x-example": "<TARGET_ID>" + } + }, + "required": [ + "subscriberId", + "targetId" + ] + } + } + } + } } }, - "\/organizations\/{organizationId}\/keys": { + "\/messaging\/topics\/{topicId}\/subscribers\/{subscriberId}": { "get": { - "summary": "List organization keys", - "operationId": "organizationsListKeys", + "summary": "Get subscriber", + "operationId": "messagingGetSubscriber", "tags": [ - "organizations" + "messaging" ], - "description": "Get a list of all API keys from the current organization. ", + "description": "Get a subscriber by its unique ID.\n", "responses": { "200": { - "description": "API Keys List", + "description": "Subscriber", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/keyList" + "$ref": "#\/components\/schemas\/subscriber" } } } @@ -35276,178 +35390,139 @@ }, "deprecated": false, "x-appwrite": { - "method": "listKeys", - "group": "keys", - "weight": 730, + "method": "getSubscriber", + "group": "subscribers", + "weight": 210, "cookies": false, "type": "", - "demo": "organizations\/list-keys.md", + "demo": "messaging\/get-subscriber.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "subscribers.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/get-subscriber.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization Unique ID", + "name": "topicId", + "description": "Topic ID. The topic ID subscribed to.", "required": true, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" + "x-example": "<TOPIC_ID>" }, "in": "path" }, { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "x-example": false, - "default": true + "name": "subscriberId", + "description": "Subscriber ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<SUBSCRIBER_ID>" }, - "in": "query" + "in": "path" } ] }, - "post": { - "summary": "Create organization key", - "operationId": "organizationsCreateKey", + "delete": { + "summary": "Delete subscriber", + "operationId": "messagingDeleteSubscriber", "tags": [ - "organizations" + "messaging" ], - "description": "Create a new organization API key.", + "description": "Delete a subscriber by its unique ID.", "responses": { - "201": { - "description": "Key", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/key" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "createKey", - "group": "keys", - "weight": 728, + "method": "deleteSubscriber", + "group": "subscribers", + "weight": 211, "cookies": false, "type": "", - "demo": "organizations\/create-key.md", + "demo": "messaging\/delete-subscriber.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": "subscribers.write", "platforms": [ - "console" + "server", + "client", + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-subscriber.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "JWT": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization Unique ID", + "name": "topicId", + "description": "Topic ID. The topic ID subscribed to.", "required": true, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" + "x-example": "<TOPIC_ID>" + }, + "in": "path" + }, + { + "name": "subscriberId", + "description": "Subscriber ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<SUBSCRIBER_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Key name. Max length: 128 chars.", - "x-example": "<NAME>" - }, - "scopes": { - "type": "array", - "description": "Key scopes list. Maximum of 100 scopes are allowed.", - "x-example": null, - "items": { - "type": "string", - "enum": [ - "platforms.read", - "platforms.write", - "projects.read", - "projects.write", - "keys.read", - "keys.write", - "devKeys.read", - "devKeys.write", - "webhooks.read", - "webhooks.write", - "domains.read", - "domains.write" - ], - "x-enum-name": null, - "x-enum-keys": [] - } - }, - "expire": { - "type": "string", - "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "name", - "scopes" - ] - } - } - } - } + ] } }, - "\/organizations\/{organizationId}\/keys\/{keyId}": { + "\/migrations": { "get": { - "summary": "Get organization key", - "operationId": "organizationsGetKey", + "summary": "List migrations", + "operationId": "migrationsList", "tags": [ - "organizations" + "migrations" ], - "description": "Get a key by its unique ID. This endpoint returns details about a specific API key in your organization including it's scopes.", + "description": "List all migrations in the current project. This endpoint returns a list of all migrations including their status, progress, and any errors that occurred during the migration process.", "responses": { "200": { - "description": "Key", + "description": "Migrations List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/key" + "$ref": "#\/components\/schemas\/migrationList" } } } @@ -35455,21 +35530,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getKey", - "group": "keys", - "weight": 732, + "method": "list", + "group": null, + "weight": 167, "cookies": false, "type": "", - "demo": "organizations\/get-key.md", + "demo": "migrations\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "migrations.read", "platforms": [ "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/list-migrations.md", "auth": { "Project": [] } @@ -35481,41 +35557,58 @@ ], "parameters": [ { - "name": "organizationId", - "description": "Organization Unique ID", - "required": true, + "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: status, stage, source, destination, resources, resourceId, resourceType, statusCounters, resourceData, errors", + "required": false, "schema": { - "type": "string", - "x-example": "<ORGANIZATION_ID>" + "type": "array", + "items": { + "type": "string" + }, + "default": [] }, - "in": "path" + "in": "query" }, { - "name": "keyId", - "description": "Key unique ID.", - "required": true, + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, "schema": { "type": "string", - "x-example": "<KEY_ID>" + "x-example": "<SEARCH>", + "default": "" }, - "in": "path" + "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", + "x-example": false, + "default": true + }, + "in": "query" } ] - }, - "put": { - "summary": "Update organization key", - "operationId": "organizationsUpdateKey", + } + }, + "\/migrations\/appwrite": { + "post": { + "summary": "Create Appwrite migration", + "operationId": "migrationsCreateAppwriteMigration", "tags": [ - "organizations" + "migrations" ], - "description": "Update a key by its unique ID. Use this endpoint to update the name, scopes, or expiration time of an API key.", + "description": "Migrate data from another Appwrite project to your current project. This endpoint allows you to migrate resources like databases, collections, documents, users, and files from an existing Appwrite project. ", "responses": { - "200": { - "description": "Key", + "202": { + "description": "Migration", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/key" + "$ref": "#\/components\/schemas\/migration" } } } @@ -35523,21 +35616,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateKey", - "group": "keys", - "weight": 729, + "method": "createAppwriteMigration", + "group": null, + "weight": 161, "cookies": false, "type": "", - "demo": "organizations\/update-key.md", + "demo": "migrations\/create-appwrite-migration.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": "migrations.write", "platforms": [ "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-appwrite.md", "auth": { "Project": [] } @@ -35547,108 +35641,112 @@ "Project": [] } ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization Unique ID", - "required": true, - "schema": { - "type": "string", - "x-example": "<ORGANIZATION_ID>" - }, - "in": "path" - }, - { - "name": "keyId", - "description": "Key unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<KEY_ID>" - }, - "in": "path" - } - ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "Key name. Max length: 128 chars.", - "x-example": "<NAME>" - }, - "scopes": { + "resources": { "type": "array", - "description": "Key scopes list. Maximum of 100 scopes are allowed.", + "description": "List of resources to migrate", "x-example": null, "items": { "type": "string", "enum": [ - "platforms.read", - "platforms.write", - "projects.read", - "projects.write", - "keys.read", - "keys.write", - "devKeys.read", - "devKeys.write", - "webhooks.read", - "webhooks.write", - "domains.read", - "domains.write" + "user", + "team", + "membership", + "database", + "table", + "column", + "index", + "row", + "document", + "attribute", + "collection", + "documentsdb", + "vectordb", + "bucket", + "file", + "function", + "deployment", + "environment-variable", + "site", + "site-deployment", + "site-variable" ], - "x-enum-name": null, + "x-enum-name": "AppwriteMigrationResource", "x-enum-keys": [] } }, - "expire": { + "endpoint": { "type": "string", - "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", - "x-example": null, - "x-nullable": true + "description": "Source Appwrite endpoint", + "x-example": "https:\/\/example.com", + "format": "url" + }, + "projectId": { + "type": "string", + "description": "Source Project ID", + "x-example": "<PROJECT_ID>" + }, + "apiKey": { + "type": "string", + "description": "Source API Key", + "x-example": "<API_KEY>" } }, "required": [ - "name", - "scopes" + "resources", + "endpoint", + "projectId", + "apiKey" ] } } } } - }, - "delete": { - "summary": "Delete organization key", - "operationId": "organizationsDeleteKey", + } + }, + "\/migrations\/appwrite\/report": { + "get": { + "summary": "Get Appwrite migration report", + "operationId": "migrationsGetAppwriteReport", "tags": [ - "organizations" + "migrations" ], - "description": "Delete a key by its unique ID. Once deleted, the key can no longer be used to authenticate API calls.", + "description": "Generate a report of the data in an Appwrite project before migrating. This endpoint analyzes the source project and returns information about the resources that can be migrated.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Migration Report", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/migrationReport" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteKey", - "group": "keys", - "weight": 731, + "method": "getAppwriteReport", + "group": null, + "weight": 169, "cookies": false, "type": "", - "demo": "organizations\/delete-key.md", + "demo": "migrations\/get-appwrite-report.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": "migrations.write", "platforms": [ "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-appwrite-report.md", "auth": { "Project": [] } @@ -35660,43 +35758,91 @@ ], "parameters": [ { - "name": "organizationId", - "description": "Organization Unique ID", + "name": "resources", + "description": "List of resources to migrate", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "user", + "team", + "membership", + "database", + "table", + "column", + "index", + "row", + "document", + "attribute", + "collection", + "documentsdb", + "vectordb", + "bucket", + "file", + "function", + "deployment", + "environment-variable", + "site", + "site-deployment", + "site-variable" + ], + "x-enum-name": "AppwriteMigrationResource", + "x-enum-keys": [] + } + }, + "in": "query" + }, + { + "name": "endpoint", + "description": "Source's Appwrite Endpoint", "required": true, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" + "format": "url", + "x-example": "https:\/\/example.com" }, - "in": "path" + "in": "query" }, { - "name": "keyId", - "description": "Key unique ID.", + "name": "projectID", + "description": "Source's Project ID", "required": true, "schema": { "type": "string", - "x-example": "<KEY_ID>" + "x-example": "<PROJECT_ID>" }, - "in": "path" + "in": "query" + }, + { + "name": "key", + "description": "Source's API Key", + "required": true, + "schema": { + "type": "string", + "x-example": "<KEY>" + }, + "in": "query" } ] } }, - "\/organizations\/{organizationId}\/payment-method": { - "patch": { - "summary": "Set team's payment method", - "operationId": "organizationsSetDefaultPaymentMethod", + "\/migrations\/csv\/exports": { + "post": { + "summary": "Export documents to CSV", + "operationId": "migrationsCreateCSVExport", "tags": [ - "organizations" + "migrations" ], - "description": "Set a organization's default payment method.", + "description": "Export documents to a CSV file from your Appwrite database. This endpoint allows you to export documents to a CSV file stored in a secure internal bucket. You'll receive an email with a download link when the export is complete.", "responses": { - "200": { - "description": "Organization", + "202": { + "description": "Migration", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/organization" + "$ref": "#\/components\/schemas\/migration" } } } @@ -35704,22 +35850,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "setDefaultPaymentMethod", + "method": "createCSVExport", "group": null, - "weight": 704, + "weight": 166, "cookies": false, "type": "", - "demo": "organizations\/set-default-payment-method.md", + "demo": "migrations\/create-csv-export.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "migrations.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/set-default-payment-method.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-csv-export.md", "auth": { "Project": [] } @@ -35729,52 +35875,89 @@ "Project": [] } ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "x-example": "<ORGANIZATION_ID>" - }, - "in": "path" - } - ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "paymentMethodId": { + "resourceId": { "type": "string", - "description": "Unique ID of payment method", - "x-example": "<PAYMENT_METHOD_ID>" + "description": "Composite ID in the format {databaseId:collectionId}, identifying a collection within a database to export.", + "x-example": "<ID1:ID2>" + }, + "filename": { + "type": "string", + "description": "The name of the file to be created for the export, excluding the .csv extension.", + "x-example": "<FILENAME>" + }, + "columns": { + "type": "array", + "description": "List of attributes to export. If empty, all attributes will be exported. You can use the `*` wildcard to export all attributes from the collection.", + "x-example": null, + "items": { + "type": "string" + } + }, + "queries": { + "type": "array", + "description": "Array of query strings generated using the Query class provided by the SDK to filter documents to export. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long.", + "x-example": null, + "items": { + "type": "string" + } + }, + "delimiter": { + "type": "string", + "description": "The character that separates each column value. Default is comma.", + "x-example": "<DELIMITER>" + }, + "enclosure": { + "type": "string", + "description": "The character that encloses each column value. Default is double quotes.", + "x-example": "<ENCLOSURE>" + }, + "escape": { + "type": "string", + "description": "The escape character for the enclosure character. Default is double quotes.", + "x-example": "<ESCAPE>" + }, + "header": { + "type": "boolean", + "description": "Whether to include the header row with column names. Default is true.", + "x-example": false + }, + "notify": { + "type": "boolean", + "description": "Set to true to receive an email when the export is complete. Default is true.", + "x-example": false } }, "required": [ - "paymentMethodId" + "resourceId", + "filename" ] } } } } - }, - "delete": { - "summary": "Delete team's default payment method", - "operationId": "organizationsDeleteDefaultPaymentMethod", + } + }, + "\/migrations\/csv\/imports": { + "post": { + "summary": "Import documents from a CSV", + "operationId": "migrationsCreateCSVImport", "tags": [ - "organizations" + "migrations" ], - "description": "Delete the default payment method for an organization.", + "description": "Import documents from a CSV file into your Appwrite database. This endpoint allows you to import documents from a CSV file uploaded to Appwrite Storage bucket.", "responses": { - "200": { - "description": "Organization", + "202": { + "description": "Migration", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/organization" + "$ref": "#\/components\/schemas\/migration" } } } @@ -35782,22 +35965,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteDefaultPaymentMethod", + "method": "createCSVImport", "group": null, - "weight": 706, + "weight": 165, "cookies": false, "type": "", - "demo": "organizations\/delete-default-payment-method.md", + "demo": "migrations\/create-csv-import.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "migrations.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/delete-default-payment-method.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-csv-import.md", "auth": { "Project": [] } @@ -35807,35 +35990,59 @@ "Project": [] } ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "x-example": "<ORGANIZATION_ID>" - }, - "in": "path" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "bucketId": { + "type": "string", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "x-example": "<BUCKET_ID>" + }, + "fileId": { + "type": "string", + "description": "File ID.", + "x-example": "<FILE_ID>" + }, + "resourceId": { + "type": "string", + "description": "Composite ID in the format {databaseId:collectionId}, identifying a collection within a database.", + "x-example": "<ID1:ID2>" + }, + "internalFile": { + "type": "boolean", + "description": "Is the file stored in an internal bucket?", + "x-example": false + } + }, + "required": [ + "bucketId", + "fileId", + "resourceId" + ] + } + } } - ] + } } }, - "\/organizations\/{organizationId}\/payment-method\/backup": { - "patch": { - "summary": "Set team's backup payment method", - "operationId": "organizationsSetBackupPaymentMethod", + "\/migrations\/firebase": { + "post": { + "summary": "Create Firebase migration", + "operationId": "migrationsCreateFirebaseMigration", "tags": [ - "organizations" + "migrations" ], - "description": "Set an organization's backup payment method.\n", + "description": "Migrate data from a Firebase project to your Appwrite project. This endpoint allows you to migrate resources like authentication and other supported services from a Firebase project. ", "responses": { - "200": { - "description": "Organization", + "202": { + "description": "Migration", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/organization" + "$ref": "#\/components\/schemas\/migration" } } } @@ -35843,22 +36050,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "setBackupPaymentMethod", + "method": "createFirebaseMigration", "group": null, - "weight": 705, + "weight": 162, "cookies": false, "type": "", - "demo": "organizations\/set-backup-payment-method.md", + "demo": "migrations\/create-firebase-migration.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "migrations.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/set-backup-payment-method.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-firebase.md", "auth": { "Project": [] } @@ -35868,52 +36075,65 @@ "Project": [] } ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "x-example": "<ORGANIZATION_ID>" - }, - "in": "path" - } - ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "paymentMethodId": { + "resources": { + "type": "array", + "description": "List of resources to migrate", + "x-example": null, + "items": { + "type": "string", + "enum": [ + "user", + "database", + "table", + "column", + "row", + "document", + "attribute", + "collection", + "bucket", + "file" + ], + "x-enum-name": "FirebaseMigrationResource", + "x-enum-keys": [] + } + }, + "serviceAccount": { "type": "string", - "description": "Unique ID of payment method", - "x-example": "<PAYMENT_METHOD_ID>" + "description": "JSON of the Firebase service account credentials", + "x-example": "<SERVICE_ACCOUNT>" } }, "required": [ - "paymentMethodId" + "resources", + "serviceAccount" ] } } } } - }, - "delete": { - "summary": "Delete team's backup payment method", - "operationId": "organizationsDeleteBackupPaymentMethod", + } + }, + "\/migrations\/firebase\/report": { + "get": { + "summary": "Get Firebase migration report", + "operationId": "migrationsGetFirebaseReport", "tags": [ - "organizations" + "migrations" ], - "description": "Delete a backup payment method for an organization.", + "description": "Generate a report of the data in a Firebase project before migrating. This endpoint analyzes the source project and returns information about the resources that can be migrated.", "responses": { "200": { - "description": "Organization", + "description": "Migration Report", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/organization" + "$ref": "#\/components\/schemas\/migrationReport" } } } @@ -35921,22 +36141,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteBackupPaymentMethod", + "method": "getFirebaseReport", "group": null, - "weight": 707, + "weight": 170, "cookies": false, "type": "", - "demo": "organizations\/delete-backup-payment-method.md", + "demo": "migrations\/get-firebase-report.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "migrations.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/delete-backup-payment-method.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-firebase-report.md", "auth": { "Project": [] } @@ -35948,33 +36168,59 @@ ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", + "name": "resources", + "description": "List of resources to migrate", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "user", + "database", + "table", + "column", + "row", + "document", + "attribute", + "collection", + "bucket", + "file" + ], + "x-enum-name": "FirebaseMigrationResource", + "x-enum-keys": [] + } + }, + "in": "query" + }, + { + "name": "serviceAccount", + "description": "JSON of the Firebase service account credentials", "required": true, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" + "x-example": "<SERVICE_ACCOUNT>" }, - "in": "path" + "in": "query" } ] } }, - "\/organizations\/{organizationId}\/payment-methods\/{paymentMethodId}": { - "get": { - "summary": "Get payment method", - "operationId": "organizationsGetPaymentMethod", + "\/migrations\/nhost": { + "post": { + "summary": "Create NHost migration", + "operationId": "migrationsCreateNHostMigration", "tags": [ - "organizations" + "migrations" ], - "description": "Get an organization's payment method using it's payment method ID.", + "description": "Migrate data from an NHost project to your Appwrite project. This endpoint allows you to migrate resources like authentication, databases, and other supported services from an NHost project. ", "responses": { - "200": { - "description": "paymentMethod", + "202": { + "description": "Migration", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/paymentMethod" + "$ref": "#\/components\/schemas\/migration" } } } @@ -35982,22 +36228,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getPaymentMethod", + "method": "createNHostMigration", "group": null, - "weight": 703, + "weight": 164, "cookies": false, "type": "", - "demo": "organizations\/get-payment-method.md", + "demo": "migrations\/create-n-host-migration.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.read", + "scope": "migrations.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-payment-method.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-nhost.md", "auth": { "Project": [] } @@ -36007,45 +36253,102 @@ "Project": [] } ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "x-example": "<ORGANIZATION_ID>" - }, - "in": "path" - }, - { - "name": "paymentMethodId", - "description": "Unique ID of payment method", - "required": true, - "schema": { - "type": "string", - "x-example": "<PAYMENT_METHOD_ID>" - }, - "in": "path" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "resources": { + "type": "array", + "description": "List of resources to migrate", + "x-example": null, + "items": { + "type": "string", + "enum": [ + "user", + "database", + "table", + "column", + "index", + "row", + "document", + "attribute", + "collection", + "bucket", + "file" + ], + "x-enum-name": "NHostMigrationResource", + "x-enum-keys": [] + } + }, + "subdomain": { + "type": "string", + "description": "Source's Subdomain", + "x-example": "<SUBDOMAIN>" + }, + "region": { + "type": "string", + "description": "Source's Region", + "x-example": "<REGION>" + }, + "adminSecret": { + "type": "string", + "description": "Source's Admin Secret", + "x-example": "<ADMIN_SECRET>" + }, + "database": { + "type": "string", + "description": "Source's Database Name", + "x-example": "<DATABASE>" + }, + "username": { + "type": "string", + "description": "Source's Database Username", + "x-example": "<USERNAME>" + }, + "password": { + "type": "string", + "description": "Source's Database Password", + "x-example": "<PASSWORD>" + }, + "port": { + "type": "integer", + "description": "Source's Database Port", + "x-example": null, + "format": "int32" + } + }, + "required": [ + "resources", + "subdomain", + "region", + "adminSecret", + "database", + "username", + "password" + ] + } + } } - ] + } } }, - "\/organizations\/{organizationId}\/plan": { + "\/migrations\/nhost\/report": { "get": { - "summary": "Get organization billing plan details", - "operationId": "organizationsGetPlan", + "summary": "Get NHost migration report", + "operationId": "migrationsGetNHostReport", "tags": [ - "organizations" + "migrations" ], - "description": "Get the details of the current billing plan for an organization.", + "description": "Generate a detailed report of the data in an NHost project before migrating. This endpoint analyzes the source project and returns information about the resources that can be migrated. ", "responses": { "200": { - "description": "billingPlan", + "description": "Migration Report", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/billingPlan" + "$ref": "#\/components\/schemas\/migrationReport" } } } @@ -36053,22 +36356,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getPlan", + "method": "getNHostReport", "group": null, - "weight": 694, + "weight": 172, "cookies": false, "type": "", - "demo": "organizations\/get-plan.md", + "demo": "migrations\/get-n-host-report.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "migrations.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-plan.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-nhost-report.md", "auth": { "Project": [] } @@ -36080,31 +36383,121 @@ ], "parameters": [ { - "name": "organizationId", - "description": "Organization Unique ID", + "name": "resources", + "description": "List of resources to migrate.", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "user", + "database", + "table", + "column", + "index", + "row", + "document", + "attribute", + "collection", + "bucket", + "file" + ], + "x-enum-name": "NHostMigrationResource", + "x-enum-keys": [] + } + }, + "in": "query" + }, + { + "name": "subdomain", + "description": "Source's Subdomain.", "required": true, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" + "x-example": "<SUBDOMAIN>" }, - "in": "path" + "in": "query" + }, + { + "name": "region", + "description": "Source's Region.", + "required": true, + "schema": { + "type": "string", + "x-example": "<REGION>" + }, + "in": "query" + }, + { + "name": "adminSecret", + "description": "Source's Admin Secret.", + "required": true, + "schema": { + "type": "string", + "x-example": "<ADMIN_SECRET>" + }, + "in": "query" + }, + { + "name": "database", + "description": "Source's Database Name.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE>" + }, + "in": "query" + }, + { + "name": "username", + "description": "Source's Database Username.", + "required": true, + "schema": { + "type": "string", + "x-example": "<USERNAME>" + }, + "in": "query" + }, + { + "name": "password", + "description": "Source's Database Password.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PASSWORD>" + }, + "in": "query" + }, + { + "name": "port", + "description": "Source's Database Port.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 5432 + }, + "in": "query" } ] - }, - "patch": { - "summary": "Update organization billing plan", - "operationId": "organizationsUpdatePlan", + } + }, + "\/migrations\/supabase": { + "post": { + "summary": "Create Supabase migration", + "operationId": "migrationsCreateSupabaseMigration", "tags": [ - "organizations" + "migrations" ], - "description": "Update the billing plan for an organization.", + "description": "Migrate data from a Supabase project to your Appwrite project. This endpoint allows you to migrate resources like authentication, databases, and other supported services from a Supabase project. ", "responses": { - "200": { - "description": "Organization", + "202": { + "description": "Migration", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/organization" + "$ref": "#\/components\/schemas\/migration" } } } @@ -36112,22 +36505,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updatePlan", + "method": "createSupabaseMigration", "group": null, - "weight": 695, + "weight": 163, "cookies": false, "type": "", - "demo": "organizations\/update-plan.md", - "rate-limit": 10, + "demo": "migrations\/create-supabase-migration.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "migrations.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/update-plan.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-supabase.md", "auth": { "Project": [] } @@ -36137,70 +36530,75 @@ "Project": [] } ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization Unique ID", - "required": true, - "schema": { - "type": "string", - "x-example": "<ORGANIZATION_ID>" - }, - "in": "path" - } - ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "billingPlan": { - "type": "string", - "description": "Organization billing plan chosen", - "x-example": "tier-0" - }, - "paymentMethodId": { - "type": "string", - "description": "Payment method ID. Required for pro plans when trial is not available and user doesn't have default payment method set.", - "x-example": "<PAYMENT_METHOD_ID>", - "x-nullable": true - }, - "billingAddressId": { - "type": "string", - "description": "Unique ID of billing address", - "x-example": "<BILLING_ADDRESS_ID>" - }, - "invites": { + "resources": { "type": "array", - "description": "Additional member invites", + "description": "List of resources to migrate", "x-example": null, "items": { - "type": "string" + "type": "string", + "enum": [ + "user", + "database", + "table", + "column", + "index", + "row", + "document", + "attribute", + "collection", + "bucket", + "file" + ], + "x-enum-name": "SupabaseMigrationResource", + "x-enum-keys": [] } }, - "couponId": { + "endpoint": { "type": "string", - "description": "Coupon id", - "x-example": "<COUPON_ID>", - "x-nullable": true + "description": "Source's Supabase Endpoint", + "x-example": "https:\/\/example.com", + "format": "url" }, - "taxId": { + "apiKey": { "type": "string", - "description": "Tax Id associated to billing.", - "x-example": "<TAX_ID>", - "x-nullable": true + "description": "Source's API Key", + "x-example": "<API_KEY>" }, - "budget": { + "databaseHost": { + "type": "string", + "description": "Source's Database Host", + "x-example": "<DATABASE_HOST>" + }, + "username": { + "type": "string", + "description": "Source's Database Username", + "x-example": "<USERNAME>" + }, + "password": { + "type": "string", + "description": "Source's Database Password", + "x-example": "<PASSWORD>" + }, + "port": { "type": "integer", - "description": "Budget limit for additional usage set for the organization", - "x-example": 0, - "format": "int32", - "x-nullable": true + "description": "Source's Database Port", + "x-example": null, + "format": "int32" } }, "required": [ - "billingPlan" + "resources", + "endpoint", + "apiKey", + "databaseHost", + "username", + "password" ] } } @@ -36208,21 +36606,21 @@ } } }, - "\/organizations\/{organizationId}\/plan\/cancel": { - "patch": { - "summary": "Cancel organization plan change", - "operationId": "organizationsCancelDowngrade", + "\/migrations\/supabase\/report": { + "get": { + "summary": "Get Supabase migration report", + "operationId": "migrationsGetSupabaseReport", "tags": [ - "organizations" + "migrations" ], - "description": "Cancel the downgrade initiated for an organization.", + "description": "Generate a report of the data in a Supabase project before migrating. This endpoint analyzes the source project and returns information about the resources that can be migrated. ", "responses": { "200": { - "description": "Organization", + "description": "Migration Report", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/organization" + "$ref": "#\/components\/schemas\/migrationReport" } } } @@ -36230,22 +36628,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "cancelDowngrade", + "method": "getSupabaseReport", "group": null, - "weight": 696, + "weight": 171, "cookies": false, "type": "", - "demo": "organizations\/cancel-downgrade.md", + "demo": "migrations\/get-supabase-report.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "migrations.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/cancel-downgrade.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-supabase-report.md", "auth": { "Project": [] } @@ -36257,33 +36655,112 @@ ], "parameters": [ { - "name": "organizationId", - "description": "Organization Unique ID", + "name": "resources", + "description": "List of resources to migrate", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "user", + "database", + "table", + "column", + "index", + "row", + "document", + "attribute", + "collection", + "bucket", + "file" + ], + "x-enum-name": "SupabaseMigrationResource", + "x-enum-keys": [] + } + }, + "in": "query" + }, + { + "name": "endpoint", + "description": "Source's Supabase Endpoint.", "required": true, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" + "format": "url", + "x-example": "https:\/\/example.com" }, - "in": "path" + "in": "query" + }, + { + "name": "apiKey", + "description": "Source's API Key.", + "required": true, + "schema": { + "type": "string", + "x-example": "<API_KEY>" + }, + "in": "query" + }, + { + "name": "databaseHost", + "description": "Source's Database Host.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_HOST>" + }, + "in": "query" + }, + { + "name": "username", + "description": "Source's Database Username.", + "required": true, + "schema": { + "type": "string", + "x-example": "<USERNAME>" + }, + "in": "query" + }, + { + "name": "password", + "description": "Source's Database Password.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PASSWORD>" + }, + "in": "query" + }, + { + "name": "port", + "description": "Source's Database Port.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 5432 + }, + "in": "query" } ] } }, - "\/organizations\/{organizationId}\/regions": { + "\/migrations\/{migrationId}": { "get": { - "summary": "List Regions", - "operationId": "organizationsListRegions", + "summary": "Get migration", + "operationId": "migrationsGet", "tags": [ - "organizations" + "migrations" ], - "description": "Get all available regions for an organization.", + "description": "Get a migration by its unique ID. This endpoint returns detailed information about a specific migration including its current status, progress, and any errors that occurred during the migration process. ", "responses": { "200": { - "description": "Regions list", + "description": "Migration", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/consoleRegionList" + "$ref": "#\/components\/schemas\/migration" } } } @@ -36291,22 +36768,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "listRegions", + "method": "get", "group": null, - "weight": 723, + "weight": 168, "cookies": false, "type": "", - "demo": "organizations\/list-regions.md", + "demo": "migrations\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.read", + "scope": "migrations.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/list-regions.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/get-migration.md", "auth": { "Project": [] } @@ -36318,33 +36795,31 @@ ], "parameters": [ { - "name": "organizationId", - "description": "Team ID.", + "name": "migrationId", + "description": "Migration unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" + "x-example": "<MIGRATION_ID>" }, "in": "path" } ] - } - }, - "\/organizations\/{organizationId}\/roles": { - "get": { - "summary": "Get Scopes", - "operationId": "organizationsGetScopes", + }, + "patch": { + "summary": "Update retry migration", + "operationId": "migrationsRetry", "tags": [ - "organizations" + "migrations" ], - "description": "Get Scopes", + "description": "Retry a failed migration. This endpoint allows you to retry a migration that has previously failed.", "responses": { - "200": { - "description": "Roles", + "202": { + "description": "Migration", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/roles" + "$ref": "#\/components\/schemas\/migration" } } } @@ -36352,22 +36827,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getScopes", + "method": "retry", "group": null, - "weight": 722, + "weight": 173, "cookies": false, "type": "", - "demo": "organizations\/get-scopes.md", + "demo": "migrations\/retry.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "migrations.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-scopes.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/retry-migration.md", "auth": { "Project": [] } @@ -36379,67 +36854,47 @@ ], "parameters": [ { - "name": "organizationId", - "description": "Organization id", + "name": "migrationId", + "description": "Migration unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" + "x-example": "<MIGRATION_ID>" }, "in": "path" - }, - { - "name": "projectId", - "description": "Project id", - "required": false, - "schema": { - "type": "string", - "x-example": "<PROJECT_ID>", - "default": "" - }, - "in": "query" } ] - } - }, - "\/organizations\/{organizationId}\/taxId": { - "patch": { - "summary": "Set team's tax Id", - "operationId": "organizationsSetBillingTaxId", + }, + "delete": { + "summary": "Delete migration", + "operationId": "migrationsDelete", "tags": [ - "organizations" + "migrations" ], - "description": "Set an organization's billing tax ID.", + "description": "Delete a migration by its unique ID. This endpoint allows you to remove a migration from your project's migration history. ", "responses": { - "200": { - "description": "Organization", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/organization" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "setBillingTaxId", + "method": "delete", "group": null, - "weight": 698, + "weight": 174, "cookies": false, "type": "", - "demo": "organizations\/set-billing-tax-id.md", + "demo": "migrations\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "migrations.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/set-billing-tax-id.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/delete-migration.md", "auth": { "Project": [] } @@ -36451,52 +36906,33 @@ ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", + "name": "migrationId", + "description": "Migration ID.", "required": true, "schema": { "type": "string", - "x-example": "<ORGANIZATION_ID>" + "x-example": "<MIGRATION_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "taxId": { - "type": "string", - "description": "Tax Id associated to billing.", - "x-example": "<TAX_ID>" - } - }, - "required": [ - "taxId" - ] - } - } - } - } + ] } }, - "\/organizations\/{organizationId}\/usage": { + "\/organizations": { "get": { - "summary": "Get team's usage data", - "operationId": "organizationsGetUsage", + "summary": "List Orgnizations", + "operationId": "organizationsList", "tags": [ "organizations" ], - "description": "Get the usage data for an organization.", + "description": "Get a list of all the teams in which the current user is a member. You can use the parameters to filter your results.", "responses": { "200": { - "description": "UsageOrganization", + "description": "Organizations list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/usageOrganization" + "$ref": "#\/components\/schemas\/organizationList" } } } @@ -36504,12 +36940,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "getUsage", + "method": "list", "group": null, - "weight": 699, + "weight": 710, "cookies": false, "type": "", - "demo": "organizations\/get-usage.md", + "demo": "organizations\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -36519,7 +36955,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-usage.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/list-teams.md", "auth": { "Project": [] } @@ -36531,51 +36967,52 @@ ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "x-example": "<ORGANIZATION_ID>" - }, - "in": "path" - }, - { - "name": "startDate", - "description": "Starting date for the usage", + "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, total, billingPlan, paymentMethodId, backupPaymentMethodId, platform", "required": false, "schema": { - "type": "string" + "type": "array", + "items": { + "type": "string" + }, + "default": [] }, "in": "query" }, { - "name": "endDate", - "description": "End date for the usage", + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", "required": false, "schema": { - "type": "string" + "type": "string", + "x-example": "<SEARCH>", + "default": "" }, "in": "query" } ] - } - }, - "\/organizations\/{organizationId}\/validate": { - "patch": { - "summary": "Validate payment for the organization after creation or upgrade", - "operationId": "organizationsValidatePayment", + }, + "post": { + "summary": "Create Organization", + "operationId": "organizationsCreate", "tags": [ "organizations" ], - "description": "Validate payment for team after creation or upgrade.", + "description": "Create a new organization.\n", "responses": { - "200": { - "description": "Organization", + "201": { + "description": "Organization, or PaymentAuthentication", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/organization" + "oneOf": [ + { + "$ref": "#\/components\/schemas\/organization" + }, + { + "$ref": "#\/components\/schemas\/paymentAuthentication" + } + ] } } } @@ -36583,22 +37020,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "validatePayment", + "method": "create", "group": null, - "weight": 721, + "weight": 709, "cookies": false, "type": "", - "demo": "organizations\/validate-payment.md", - "rate-limit": 0, + "demo": "organizations\/create.md", + "rate-limit": 10, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "teams.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/validate-payment.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team.md", "auth": { "Project": [] } @@ -36608,24 +37045,39 @@ "Project": [] } ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "schema": { - "type": "string", - "x-example": "<ORGANIZATION_ID>" - }, - "in": "path" - } - ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { + "organizationId": { + "type": "string", + "description": "Organization 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.", + "x-example": "<ORGANIZATION_ID>" + }, + "name": { + "type": "string", + "description": "Organization name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "billingPlan": { + "type": "string", + "description": "Organization billing plan chosen", + "x-example": "tier-0" + }, + "paymentMethodId": { + "type": "string", + "description": "Payment method ID. Required for pro plans when trial is not available and user doesn't have default payment method set.", + "x-example": "<PAYMENT_METHOD_ID>", + "x-nullable": true + }, + "billingAddressId": { + "type": "string", + "description": "Unique ID of billing address", + "x-example": "<BILLING_ADDRESS_ID>", + "x-nullable": true + }, "invites": { "type": "array", "description": "Additional member invites", @@ -36633,29 +37085,64 @@ "items": { "type": "string" } + }, + "couponId": { + "type": "string", + "description": "Coupon id", + "x-example": "<COUPON_ID>", + "x-nullable": true + }, + "taxId": { + "type": "string", + "description": "Tax Id associated to billing.", + "x-example": "<TAX_ID>", + "x-nullable": true + }, + "budget": { + "type": "integer", + "description": "Budget limit for additional usage set for the organization", + "x-example": 0, + "format": "int32", + "x-nullable": true + }, + "platform": { + "type": "string", + "description": "Platform type", + "x-example": "appwrite", + "enum": [ + "appwrite", + "imagine" + ], + "x-enum-name": null, + "x-enum-keys": [] } - } + }, + "required": [ + "organizationId", + "name", + "billingPlan" + ] } } } } } }, - "\/project\/usage": { - "get": { - "summary": "Get project usage stats", - "operationId": "projectGetUsage", + "\/organizations\/estimations\/create-organization": { + "patch": { + "summary": "Estimate create Organization", + "operationId": "organizationsEstimationCreateOrganization", "tags": [ - "project" + "organizations" ], - "description": "Get comprehensive usage statistics for your project. View metrics including network requests, bandwidth, storage, function executions, database usage, and user activity. Specify a time range with startDate and endDate, and optionally set the data granularity with period (1h or 1d). The response includes both total counts and detailed breakdowns by resource, along with historical data over the specified period.", + "description": "Get estimation for creating an organization.", "responses": { "200": { - "description": "UsageProject", + "description": "Estimation", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/usageProject" + "$ref": "#\/components\/schemas\/estimation" } } } @@ -36663,22 +37150,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getUsage", + "method": "estimationCreateOrganization", "group": null, - "weight": 556, + "weight": 743, "cookies": false, "type": "", - "demo": "project\/get-usage.md", - "rate-limit": 0, + "demo": "organizations\/estimation-create-organization.md", + "rate-limit": 10, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.read", + "scope": "teams.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/project\/get-usage.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/estimation-create-organization.md", "auth": { "Project": [] } @@ -36688,86 +37175,89 @@ "Project": [] } ], - "parameters": [ - { - "name": "startDate", - "description": "Starting date for the usage", - "required": true, - "schema": { - "type": "string" - }, - "in": "query" - }, - { - "name": "endDate", - "description": "End date for the usage", - "required": true, - "schema": { - "type": "string" - }, - "in": "query" - }, - { - "name": "period", - "description": "Period used", - "required": false, - "schema": { - "type": "string", - "x-example": "1h", - "enum": [ - "1h", - "1d" - ], - "x-enum-name": "ProjectUsageRange", - "x-enum-keys": [ - "One Hour", - "One Day" - ], - "default": "1d" - }, - "in": "query" - } - ] - } - }, - "\/project\/variables": { - "get": { - "summary": "List variables", - "operationId": "projectListVariables", - "tags": [ - "project" - ], - "description": "Get a list of all project variables. These variables will be accessible in all Appwrite Functions at runtime.", - "responses": { - "200": { - "description": "Variables List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/variableList" - } + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "billingPlan": { + "type": "string", + "description": "Organization billing plan chosen", + "x-example": "tier-0" + }, + "paymentMethodId": { + "type": "string", + "description": "Payment method ID. Required for pro plans when trial is not available and user doesn't have default payment method set.", + "x-example": "<PAYMENT_METHOD_ID>", + "x-nullable": true + }, + "invites": { + "type": "array", + "description": "Additional member invites", + "x-example": null, + "items": { + "type": "string" + } + }, + "couponId": { + "type": "string", + "description": "Coupon id", + "x-example": "<COUPON_ID>", + "x-nullable": true + }, + "platform": { + "type": "string", + "description": "Platform type", + "x-example": "appwrite", + "enum": [ + "appwrite", + "imagine" + ], + "x-enum-name": null, + "x-enum-keys": [] + } + }, + "required": [ + "billingPlan" + ] } } } + } + } + }, + "\/organizations\/{organizationId}": { + "delete": { + "summary": "Delete team", + "operationId": "organizationsDelete", + "tags": [ + "organizations" + ], + "description": "Delete an organization.", + "responses": { + "204": { + "description": "No content" + } }, "deprecated": false, "x-appwrite": { - "method": "listVariables", + "method": "delete", "group": null, - "weight": 102, + "weight": 711, "cookies": false, "type": "", - "demo": "project\/list-variables.md", + "demo": "organizations\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.read", + "scope": "organizations.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/project\/list-variables.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team.md", "auth": { "Project": [] } @@ -36776,22 +37266,36 @@ { "Project": [] } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" + } ] - }, - "post": { - "summary": "Create variable", - "operationId": "projectCreateVariable", + } + }, + "\/organizations\/{organizationId}\/aggregations": { + "get": { + "summary": "List aggregations", + "operationId": "organizationsListAggregations", "tags": [ - "project" + "organizations" ], - "description": "Create a new project variable. This variable will be accessible in all Appwrite Functions at runtime.", + "description": "Get a list of all aggregations for an organization.", "responses": { - "201": { - "description": "Variable", + "200": { + "description": "Aggregation team list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/variable" + "$ref": "#\/components\/schemas\/aggregationTeamList" } } } @@ -36799,22 +37303,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "createVariable", + "method": "listAggregations", "group": null, - "weight": 101, + "weight": 726, "cookies": false, "type": "", - "demo": "project\/create-variable.md", + "demo": "organizations\/list-aggregations.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "teams.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/project\/create-variable.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/list-aggregations.md", "auth": { "Project": [] } @@ -36824,53 +37328,48 @@ "Project": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Variable key. Max length: 255 chars.", - "x-example": "<KEY>" - }, - "value": { - "type": "string", - "description": "Variable value. Max length: 8192 chars.", - "x-example": "<VALUE>" - }, - "secret": { - "type": "boolean", - "description": "Secret variables can be updated or deleted, but only projects can read them during build and runtime.", - "x-example": false - } - }, - "required": [ - "key", - "value" - ] - } - } + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<ORGANIZATION_ID>" + }, + "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\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: teamId, aggregationId, from, to", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" } - } + ] } }, - "\/project\/variables\/{variableId}": { + "\/organizations\/{organizationId}\/aggregations\/{aggregationId}": { "get": { - "summary": "Get variable", - "operationId": "projectGetVariable", + "summary": "Get aggregation", + "operationId": "organizationsGetAggregation", "tags": [ - "project" + "organizations" ], - "description": "Get a project variable by its unique ID.", + "description": "Get a specific aggregation using it's aggregation ID.", "responses": { "200": { - "description": "Variable", + "description": "AggregationTeam", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/variable" + "$ref": "#\/components\/schemas\/aggregationTeam" } } } @@ -36878,22 +37377,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getVariable", + "method": "getAggregation", "group": null, - "weight": 103, + "weight": 727, "cookies": false, "type": "", - "demo": "project\/get-variable.md", + "demo": "organizations\/get-aggregation.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.read", + "scope": "teams.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/project\/get-variable.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-aggregation.md", "auth": { "Project": [] } @@ -36905,31 +37404,66 @@ ], "parameters": [ { - "name": "variableId", - "description": "Variable unique ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "schema": { "type": "string", - "x-example": "<VARIABLE_ID>" + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "aggregationId", + "description": "Invoice unique ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<AGGREGATION_ID>" }, "in": "path" + }, + { + "name": "limit", + "description": "Maximum number of project aggregations to return in response. By default will return maximum 5 results. Maximum of 10 results allowed per request.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 5 + }, + "in": "query" + }, + { + "name": "offset", + "description": "Offset value. The default value is 0. Use this param to manage pagination.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 0 + }, + "in": "query" } ] - }, - "put": { - "summary": "Update variable", - "operationId": "projectUpdateVariable", + } + }, + "\/organizations\/{organizationId}\/billing-address": { + "patch": { + "summary": "Set team's billing address", + "operationId": "organizationsSetBillingAddress", "tags": [ - "project" + "organizations" ], - "description": "Update project variable by its unique ID. This variable will be accessible in all Appwrite Functions at runtime.", + "description": "Set a billing address for an organization.", "responses": { "200": { - "description": "Variable", + "description": "Organization", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/variable" + "$ref": "#\/components\/schemas\/organization" } } } @@ -36937,22 +37471,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateVariable", + "method": "setBillingAddress", "group": null, - "weight": 104, + "weight": 719, "cookies": false, "type": "", - "demo": "project\/update-variable.md", + "demo": "organizations\/set-billing-address.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "billing.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/project\/update-variable.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/set-billing-address.md", "auth": { "Project": [] } @@ -36964,12 +37498,12 @@ ], "parameters": [ { - "name": "variableId", - "description": "Variable unique ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "schema": { "type": "string", - "x-example": "<VARIABLE_ID>" + "x-example": "<ORGANIZATION_ID>" }, "in": "path" } @@ -36980,26 +37514,14 @@ "schema": { "type": "object", "properties": { - "key": { - "type": "string", - "description": "Variable key. Max length: 255 chars.", - "x-example": "<KEY>" - }, - "value": { + "billingAddressId": { "type": "string", - "description": "Variable value. Max length: 8192 chars.", - "x-example": "<VALUE>", - "x-nullable": true - }, - "secret": { - "type": "boolean", - "description": "Secret variables can be updated or deleted, but only projects can read them during build and runtime.", - "x-example": false, - "x-nullable": true + "description": "Unique ID of billing address", + "x-example": "<BILLING_ADDRESS_ID>" } }, "required": [ - "key" + "billingAddressId" ] } } @@ -37007,12 +37529,12 @@ } }, "delete": { - "summary": "Delete variable", - "operationId": "projectDeleteVariable", + "summary": "Delete team's billing address", + "operationId": "organizationsDeleteBillingAddress", "tags": [ - "project" + "organizations" ], - "description": "Delete a project variable by its unique ID. ", + "description": "Delete a team's billing address.", "responses": { "204": { "description": "No content" @@ -37020,22 +37542,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteVariable", + "method": "deleteBillingAddress", "group": null, - "weight": 105, + "weight": 720, "cookies": false, "type": "", - "demo": "project\/delete-variable.md", + "demo": "organizations\/delete-billing-address.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "billing.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/project\/delete-variable.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/delete-billing-address.md", "auth": { "Project": [] } @@ -37047,33 +37569,33 @@ ], "parameters": [ { - "name": "variableId", - "description": "Variable unique ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "schema": { "type": "string", - "x-example": "<VARIABLE_ID>" + "x-example": "<ORGANIZATION_ID>" }, "in": "path" } ] } }, - "\/projects": { + "\/organizations\/{organizationId}\/billing-addresses\/{billingAddressId}": { "get": { - "summary": "List projects", - "operationId": "projectsList", + "summary": "Get billing address", + "operationId": "organizationsGetBillingAddress", "tags": [ - "projects" + "organizations" ], - "description": "Get a list of all projects. You can use the query params to filter your results. ", + "description": "Get a billing address using it's ID.", "responses": { "200": { - "description": "Projects List", + "description": "BillingAddress", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/projectList" + "$ref": "#\/components\/schemas\/billingAddress" } } } @@ -37081,21 +37603,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "list", - "group": "projects", - "weight": 777, + "method": "getBillingAddress", + "group": null, + "weight": 718, "cookies": false, "type": "", - "demo": "projects\/list.md", + "demo": "organizations\/get-billing-address.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.read", + "scope": "billing.read", "platforms": [ "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-billing-address.md", "auth": { "Project": [] } @@ -37107,56 +37630,43 @@ ], "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, teamId, labels, search", - "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, + "name": "organizationId", + "description": "Organization ID", + "required": true, "schema": { "type": "string", - "x-example": "<SEARCH>", - "default": "" + "x-example": "<ORGANIZATION_ID>" }, - "in": "query" + "in": "path" }, { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, + "name": "billingAddressId", + "description": "Unique ID of billing address", + "required": true, "schema": { - "type": "boolean", - "x-example": false, - "default": true + "type": "string", + "x-example": "<BILLING_ADDRESS_ID>" }, - "in": "query" + "in": "path" } ] - }, - "post": { - "summary": "Create project", - "operationId": "projectsCreate", + } + }, + "\/organizations\/{organizationId}\/billing-email": { + "patch": { + "summary": "Set team's billing email", + "operationId": "organizationsSetBillingEmail", "tags": [ - "projects" + "organizations" ], - "description": "Create a new project. You can create a maximum of 100 projects per account. ", + "description": "Set the current billing email for the organization.", "responses": { - "201": { - "description": "Project", + "200": { + "description": "Organization", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/organization" } } } @@ -37164,22 +37674,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "create", - "group": "projects", - "weight": 775, + "method": "setBillingEmail", + "group": null, + "weight": 738, "cookies": false, "type": "", - "demo": "projects\/create.md", + "demo": "organizations\/set-billing-email.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "billing.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/create.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/set-billing-email.md", "auth": { "Project": [] } @@ -37189,93 +37699,33 @@ "Project": [] } ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "projectId": { - "type": "string", - "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, and hyphen. Can't start with a special char. Max length is 36 chars.", - "x-example": null - }, - "name": { - "type": "string", - "description": "Project name. Max length: 128 chars.", - "x-example": "<NAME>" - }, - "teamId": { - "type": "string", - "description": "Team unique ID.", - "x-example": "<TEAM_ID>" - }, - "region": { - "type": "string", - "description": "Project Region.", - "x-example": "fra", - "enum": [ - "fra", - "nyc", - "syd", - "sfo", - "sgp", - "tor" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "description": { - "type": "string", - "description": "Project description. Max length: 256 chars.", - "x-example": "<DESCRIPTION>" - }, - "logo": { - "type": "string", - "description": "Project logo.", - "x-example": "<LOGO>" - }, - "url": { - "type": "string", - "description": "Project URL.", - "x-example": "https:\/\/example.com", - "format": "url" - }, - "legalName": { - "type": "string", - "description": "Project legal Name. Max length: 256 chars.", - "x-example": "<LEGAL_NAME>" - }, - "legalCountry": { - "type": "string", - "description": "Project legal Country. Max length: 256 chars.", - "x-example": "<LEGAL_COUNTRY>" - }, - "legalState": { - "type": "string", - "description": "Project legal State. Max length: 256 chars.", - "x-example": "<LEGAL_STATE>" - }, - "legalCity": { - "type": "string", - "description": "Project legal City. Max length: 256 chars.", - "x-example": "<LEGAL_CITY>" - }, - "legalAddress": { - "type": "string", - "description": "Project legal Address. Max length: 256 chars.", - "x-example": "<LEGAL_ADDRESS>" - }, - "legalTaxId": { + "billingEmail": { "type": "string", - "description": "Project legal Tax ID. Max length: 256 chars.", - "x-example": "<LEGAL_TAX_ID>" + "description": "Billing email for the organization.", + "x-example": "email@example.com", + "format": "email" } }, "required": [ - "projectId", - "name", - "teamId" + "billingEmail" ] } } @@ -37283,80 +37733,21 @@ } } }, - "\/projects\/{projectId}": { - "get": { - "summary": "Get project", - "operationId": "projectsGet", + "\/organizations\/{organizationId}\/budget": { + "patch": { + "summary": "Update organization budget", + "operationId": "organizationsUpdateBudget", "tags": [ - "projects" - ], - "description": "Get a project by its unique ID. This endpoint allows you to retrieve the project's details, including its name, description, team, region, and other metadata. ", - "responses": { - "200": { - "description": "Project", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/project" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "get", - "group": "projects", - "weight": 57, - "cookies": false, - "type": "", - "demo": "projects\/get.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "projects.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/get.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "projectId", - "description": "Project unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PROJECT_ID>" - }, - "in": "path" - } - ] - }, - "patch": { - "summary": "Update project", - "operationId": "projectsUpdate", - "tags": [ - "projects" + "organizations" ], - "description": "Update a project by its unique ID.", + "description": "Update the budget limit for an organization.", "responses": { "200": { - "description": "Project", + "description": "Organization", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/organization" } } } @@ -37364,22 +37755,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "update", - "group": "projects", - "weight": 776, + "method": "updateBudget", + "group": null, + "weight": 715, "cookies": false, "type": "", - "demo": "projects\/update.md", + "demo": "organizations\/update-budget.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "billing.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/update-budget.md", "auth": { "Project": [] } @@ -37391,12 +37782,12 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization Unique ID", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<ORGANIZATION_ID>" }, "in": "path" } @@ -37407,96 +37798,69 @@ "schema": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "Project name. Max length: 128 chars.", - "x-example": "<NAME>" - }, - "description": { - "type": "string", - "description": "Project description. Max length: 256 chars.", - "x-example": "<DESCRIPTION>" - }, - "logo": { - "type": "string", - "description": "Project logo.", - "x-example": "<LOGO>" - }, - "url": { - "type": "string", - "description": "Project URL.", - "x-example": "https:\/\/example.com", - "format": "url" - }, - "legalName": { - "type": "string", - "description": "Project legal name. Max length: 256 chars.", - "x-example": "<LEGAL_NAME>" - }, - "legalCountry": { - "type": "string", - "description": "Project legal country. Max length: 256 chars.", - "x-example": "<LEGAL_COUNTRY>" - }, - "legalState": { - "type": "string", - "description": "Project legal state. Max length: 256 chars.", - "x-example": "<LEGAL_STATE>" - }, - "legalCity": { - "type": "string", - "description": "Project legal city. Max length: 256 chars.", - "x-example": "<LEGAL_CITY>" - }, - "legalAddress": { - "type": "string", - "description": "Project legal address. Max length: 256 chars.", - "x-example": "<LEGAL_ADDRESS>" + "budget": { + "type": "integer", + "description": "Budget limit for additional usage set for the organization", + "x-example": 0, + "format": "int32", + "x-nullable": true }, - "legalTaxId": { - "type": "string", - "description": "Project legal tax ID. Max length: 256 chars.", - "x-example": "<LEGAL_TAX_ID>" + "alerts": { + "type": "array", + "description": "Budget alert limit percentage", + "x-example": null, + "items": { + "type": "integer" + } } }, "required": [ - "name" + "budget" ] } } } } - }, - "delete": { - "summary": "Delete project", - "operationId": "projectsDelete", + } + }, + "\/organizations\/{organizationId}\/credits": { + "get": { + "summary": "List credits", + "operationId": "organizationsListCredits", "tags": [ - "projects" + "organizations" ], - "description": "Delete a project by its unique ID.", + "description": "List all credits for an organization.\n", "responses": { - "204": { - "description": "No content" + "200": { + "description": "CreditList", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/creditList" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": "projects", - "weight": 73, + "method": "listCredits", + "group": null, + "weight": 730, "cookies": false, "type": "", - "demo": "projects\/delete.md", + "demo": "organizations\/list-credits.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "billing.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/delete.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/list-credits.md", "auth": { "Project": [] } @@ -37508,120 +37872,67 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<ORGANIZATION_ID>" }, "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\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: teamId, couponId, credits, expiration, status", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" } ] - } - }, - "\/projects\/{projectId}\/api": { - "patch": { - "summary": "Update API status", - "operationId": "projectsUpdateApiStatus", + }, + "post": { + "summary": "Add credits from coupon", + "operationId": "organizationsAddCredit", "tags": [ - "projects" + "organizations" ], - "description": "Update the status of a specific API type. Use this endpoint to enable or disable API types such as REST, GraphQL and Realtime.", + "description": "Add credit to an organization using a coupon.", "responses": { - "200": { - "description": "Project", + "201": { + "description": "Credit", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/credit" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateApiStatus", - "group": "projects", - "weight": 60, + "method": "addCredit", + "group": null, + "weight": 731, "cookies": false, "type": "", - "demo": "projects\/update-api-status.md", - "rate-limit": 0, + "demo": "organizations\/add-credit.md", + "rate-limit": 10, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "billing.write", "platforms": [ "console" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-api-status.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "projects.updateAPIStatus" - }, - "methods": [ - { - "name": "updateApiStatus", - "namespace": "projects", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "projectId", - "api", - "status" - ], - "required": [ - "projectId", - "api", - "status" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/project" - } - ], - "description": "Update the status of a specific API type. Use this endpoint to enable or disable API types such as REST, GraphQL and Realtime.", - "demo": "projects\/update-api-status.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "projects.updateAPIStatus" - } - }, - { - "name": "updateAPIStatus", - "namespace": "projects", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "projectId", - "api", - "status" - ], - "required": [ - "projectId", - "api", - "status" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/project" - } - ], - "description": "Update the status of a specific API type. Use this endpoint to enable or disable API types such as REST, GraphQL and Realtime.", - "demo": "projects\/update-api-status.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/add-credit.md", "auth": { "Project": [] } @@ -37633,12 +37944,12 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<ORGANIZATION_ID>" }, "in": "path" } @@ -37649,27 +37960,14 @@ "schema": { "type": "object", "properties": { - "api": { + "couponId": { "type": "string", - "description": "API name.", - "x-example": "rest", - "enum": [ - "rest", - "graphql", - "realtime" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "status": { - "type": "boolean", - "description": "API status.", - "x-example": false + "description": "ID of the coupon", + "x-example": "<COUPON_ID>" } }, "required": [ - "api", - "status" + "couponId" ] } } @@ -37677,104 +37975,44 @@ } } }, - "\/projects\/{projectId}\/api\/all": { - "patch": { - "summary": "Update all API status", - "operationId": "projectsUpdateApiStatusAll", + "\/organizations\/{organizationId}\/credits\/available": { + "get": { + "summary": "Get available credits", + "operationId": "organizationsGetAvailableCredits", "tags": [ - "projects" + "organizations" ], - "description": "Update the status of all API types. Use this endpoint to enable or disable API types such as REST, GraphQL and Realtime all at once.", + "description": "Get total available valid credits for an organization.", "responses": { "200": { - "description": "Project", + "description": "CreditAvailable", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/creditAvailable" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateApiStatusAll", - "group": "projects", - "weight": 61, + "method": "getAvailableCredits", + "group": null, + "weight": 729, "cookies": false, "type": "", - "demo": "projects\/update-api-status-all.md", + "demo": "organizations\/get-available-credits.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "billing.read", "platforms": [ "console" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-api-status-all.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "projects.updateAPIStatusAll" - }, - "methods": [ - { - "name": "updateApiStatusAll", - "namespace": "projects", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "projectId", - "status" - ], - "required": [ - "projectId", - "status" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/project" - } - ], - "description": "Update the status of all API types. Use this endpoint to enable or disable API types such as REST, GraphQL and Realtime all at once.", - "demo": "projects\/update-api-status-all.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "projects.updateAPIStatusAll" - } - }, - { - "name": "updateAPIStatusAll", - "namespace": "projects", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "projectId", - "status" - ], - "required": [ - "projectId", - "status" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/project" - } - ], - "description": "Update the status of all API types. Use this endpoint to enable or disable API types such as REST, GraphQL and Realtime all at once.", - "demo": "projects\/update-api-status-all.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-available-credits.md", "auth": { "Project": [] } @@ -37786,52 +38024,33 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<ORGANIZATION_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "status": { - "type": "boolean", - "description": "API status.", - "x-example": false - } - }, - "required": [ - "status" - ] - } - } - } - } + ] } }, - "\/projects\/{projectId}\/auth\/duration": { - "patch": { - "summary": "Update project authentication duration", - "operationId": "projectsUpdateAuthDuration", + "\/organizations\/{organizationId}\/credits\/{creditId}": { + "get": { + "summary": "Get credit details", + "operationId": "organizationsGetCredit", "tags": [ - "projects" + "organizations" ], - "description": "Update how long sessions created within a project should stay active for.", + "description": "Get credit details.", "responses": { "200": { - "description": "Project", + "description": "Credit", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/credit" } } } @@ -37839,22 +38058,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateAuthDuration", - "group": "auth", - "weight": 66, + "method": "getCredit", + "group": null, + "weight": 728, "cookies": false, "type": "", - "demo": "projects\/update-auth-duration.md", + "demo": "organizations\/get-credit.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "billing.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-auth-duration.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-credit.md", "auth": { "Project": [] } @@ -37866,53 +38085,43 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "creditId", + "description": "Credit Unique ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<CREDIT_ID>" }, "in": "path" } + ] + } + }, + "\/organizations\/{organizationId}\/estimations\/delete-organization": { + "patch": { + "summary": "Estimate delete team", + "operationId": "organizationsEstimationDeleteOrganization", + "tags": [ + "organizations" ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "duration": { - "type": "integer", - "description": "Project session length in seconds. Max length: 31536000 seconds.", - "x-example": 0, - "format": "int32" - } - }, - "required": [ - "duration" - ] - } - } - } - } - } - }, - "\/projects\/{projectId}\/auth\/limit": { - "patch": { - "summary": "Update project users limit", - "operationId": "projectsUpdateAuthLimit", - "tags": [ - "projects" - ], - "description": "Update the maximum number of users allowed in this project. Set to 0 for unlimited users. ", + "description": "Get estimation for deleting an organization.", "responses": { "200": { - "description": "Project", + "description": "EstimationDeleteOrganization", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/estimationDeleteOrganization" } } } @@ -37920,22 +38129,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateAuthLimit", - "group": "auth", - "weight": 65, + "method": "estimationDeleteOrganization", + "group": null, + "weight": 744, "cookies": false, "type": "", - "demo": "projects\/update-auth-limit.md", - "rate-limit": 0, + "demo": "organizations\/estimation-delete-organization.md", + "rate-limit": 10, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "organizations.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-auth-limit.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/estimation-delete-organization.md", "auth": { "Project": [] } @@ -37947,53 +38156,33 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Team ID.", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<ORGANIZATION_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "limit": { - "type": "integer", - "description": "Set the max number of users allowed in this project. Use 0 for unlimited.", - "x-example": 0, - "format": "int32" - } - }, - "required": [ - "limit" - ] - } - } - } - } + ] } }, - "\/projects\/{projectId}\/auth\/max-sessions": { + "\/organizations\/{organizationId}\/estimations\/update-plan": { "patch": { - "summary": "Update project user sessions limit", - "operationId": "projectsUpdateAuthSessionsLimit", + "summary": "Estimate for update plan", + "operationId": "organizationsEstimationUpdatePlan", "tags": [ - "projects" + "organizations" ], - "description": "Update the maximum number of sessions allowed per user within the project, if the limit is hit the oldest session will be deleted to make room for new sessions.", + "description": "Get estimation for updating the organization plan.", "responses": { "200": { - "description": "Project", + "description": "EstimationUpdatePlan", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/estimationUpdatePlan" } } } @@ -38001,22 +38190,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateAuthSessionsLimit", - "group": "auth", - "weight": 71, + "method": "estimationUpdatePlan", + "group": null, + "weight": 742, "cookies": false, "type": "", - "demo": "projects\/update-auth-sessions-limit.md", - "rate-limit": 0, + "demo": "organizations\/estimation-update-plan.md", + "rate-limit": 10, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "billing.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-auth-sessions-limit.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/estimation-update-plan.md", "auth": { "Project": [] } @@ -38028,12 +38217,12 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<ORGANIZATION_ID>" }, "in": "path" } @@ -38044,15 +38233,28 @@ "schema": { "type": "object", "properties": { - "limit": { - "type": "integer", - "description": "Set the max number of users allowed in this project. Value allowed is between 1-100. Default is 10", - "x-example": 1, - "format": "int32" + "billingPlan": { + "type": "string", + "description": "Organization billing plan chosen", + "x-example": "tier-0" + }, + "invites": { + "type": "array", + "description": "Additional member invites", + "x-example": null, + "items": { + "type": "string" + } + }, + "couponId": { + "type": "string", + "description": "Coupon id", + "x-example": "<COUPON_ID>", + "x-nullable": true } }, "required": [ - "limit" + "billingPlan" ] } } @@ -38060,21 +38262,21 @@ } } }, - "\/projects\/{projectId}\/auth\/memberships-privacy": { - "patch": { - "summary": "Update project memberships privacy attributes", - "operationId": "projectsUpdateMembershipsPrivacy", + "\/organizations\/{organizationId}\/feedbacks\/downgrade": { + "post": { + "summary": "Create downgrade feedback", + "operationId": "organizationsCreateDowngradeFeedback", "tags": [ - "projects" + "organizations" ], - "description": "Update project membership privacy settings. Use this endpoint to control what user information is visible to other team members, such as user name, email, and MFA status. ", + "description": "Submit feedback about downgrading from a paid plan to a lower tier. This helps the team understand user experience and improve the platform.\n", "responses": { - "200": { - "description": "Project", + "201": { + "description": "Downgrade Feedback", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/downgradeFeedback" } } } @@ -38082,22 +38284,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateMembershipsPrivacy", - "group": "auth", - "weight": 64, + "method": "createDowngradeFeedback", + "group": null, + "weight": 745, "cookies": false, "type": "", - "demo": "projects\/update-memberships-privacy.md", + "demo": "organizations\/create-downgrade-feedback.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "billing.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-memberships-privacy.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/create-downgrade-feedback.md", "auth": { "Project": [] } @@ -38109,12 +38311,12 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization Unique ID", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<ORGANIZATION_ID>" }, "in": "path" } @@ -38125,26 +38327,32 @@ "schema": { "type": "object", "properties": { - "userName": { - "type": "boolean", - "description": "Set to true to show userName to members of a team.", - "x-example": false + "reason": { + "type": "string", + "description": "Feedback reason", + "x-example": "<REASON>" }, - "userEmail": { - "type": "boolean", - "description": "Set to true to show email to members of a team.", - "x-example": false + "message": { + "type": "string", + "description": "Feedback message", + "x-example": "<MESSAGE>" }, - "mfa": { - "type": "boolean", - "description": "Set to true to show mfa to members of a team.", - "x-example": false + "fromPlanId": { + "type": "string", + "description": "Plan downgrading from", + "x-example": "<FROM_PLAN_ID>" + }, + "toPlanId": { + "type": "string", + "description": "Plan downgrading to", + "x-example": "<TO_PLAN_ID>" } }, "required": [ - "userName", - "userEmail", - "mfa" + "reason", + "message", + "fromPlanId", + "toPlanId" ] } } @@ -38152,21 +38360,21 @@ } } }, - "\/projects\/{projectId}\/auth\/mock-numbers": { - "patch": { - "summary": "Update the mock numbers for the project", - "operationId": "projectsUpdateMockNumbers", + "\/organizations\/{organizationId}\/invoices": { + "get": { + "summary": "List invoices", + "operationId": "organizationsListInvoices", "tags": [ - "projects" + "organizations" ], - "description": "Update the list of mock phone numbers for testing. Use these numbers to bypass SMS verification in development. ", + "description": "List all invoices for an organization.", "responses": { "200": { - "description": "Project", + "description": "Billing invoices list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/invoiceList" } } } @@ -38174,22 +38382,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateMockNumbers", - "group": "auth", - "weight": 72, + "method": "listInvoices", + "group": null, + "weight": 733, "cookies": false, "type": "", - "demo": "projects\/update-mock-numbers.md", + "demo": "organizations\/list-invoices.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "billing.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-mock-numbers.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/list-invoices.md", "auth": { "Project": [] } @@ -38201,55 +38409,46 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<ORGANIZATION_ID>" }, "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\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: teamId, aggregationId, amount, currency, from, to, dueAt, attempts, status, grossAmount", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "numbers": { - "type": "array", - "description": "An array of mock numbers and their corresponding verification codes (OTPs). Each number should be a valid E.164 formatted phone number. Maximum of 10 numbers are allowed.", - "x-example": null, - "items": { - "type": "object" - } - } - }, - "required": [ - "numbers" - ] - } - } - } - } + ] } }, - "\/projects\/{projectId}\/auth\/password-dictionary": { - "patch": { - "summary": "Update authentication password dictionary status. Use this endpoint to enable or disable the dicitonary check for user password", - "operationId": "projectsUpdateAuthPasswordDictionary", + "\/organizations\/{organizationId}\/invoices\/{invoiceId}": { + "get": { + "summary": "Get invoice", + "operationId": "organizationsGetInvoice", "tags": [ - "projects" + "organizations" ], - "description": "Enable or disable checking user passwords against common passwords dictionary. This helps ensure users don't use common and insecure passwords. ", + "description": "Get an invoice by its unique ID.", "responses": { "200": { - "description": "Project", + "description": "Invoice", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/invoice" } } } @@ -38257,22 +38456,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateAuthPasswordDictionary", - "group": "auth", - "weight": 69, + "method": "getInvoice", + "group": null, + "weight": 732, "cookies": false, "type": "", - "demo": "projects\/update-auth-password-dictionary.md", + "demo": "organizations\/get-invoice.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "billing.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-auth-password-dictionary.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-invoice.md", "auth": { "Project": [] } @@ -38284,52 +38483,43 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "invoiceId", + "description": "Invoice unique ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<INVOICE_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "Set whether or not to enable checking user's password against most commonly used passwords. Default is false.", - "x-example": false - } - }, - "required": [ - "enabled" - ] - } - } - } - } + ] } }, - "\/projects\/{projectId}\/auth\/password-history": { - "patch": { - "summary": "Update authentication password history. Use this endpoint to set the number of password history to save and 0 to disable password history.", - "operationId": "projectsUpdateAuthPasswordHistory", + "\/organizations\/{organizationId}\/invoices\/{invoiceId}\/download": { + "get": { + "summary": "Download invoice in PDF", + "operationId": "organizationsGetInvoiceDownload", "tags": [ - "projects" + "organizations" ], - "description": "Update the authentication password history requirement. Use this endpoint to require new passwords to be different than the last X amount of previously used ones.", + "description": "Download invoice in PDF", "responses": { "200": { - "description": "Project", + "description": "paymentMethod", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/paymentMethod" } } } @@ -38337,22 +38527,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateAuthPasswordHistory", - "group": "auth", - "weight": 68, + "method": "getInvoiceDownload", + "group": null, + "weight": 736, "cookies": false, "type": "", - "demo": "projects\/update-auth-password-history.md", + "demo": "organizations\/get-invoice-download.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "billing.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-auth-password-history.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-invoice-download.md", "auth": { "Project": [] } @@ -38364,53 +38554,43 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "invoiceId", + "description": "Invoice unique ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<INVOICE_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "limit": { - "type": "integer", - "description": "Set the max number of passwords to store in user history. User can't choose a new password that is already stored in the password history list. Max number of passwords allowed in history is20. Default value is 0", - "x-example": 0, - "format": "int32" - } - }, - "required": [ - "limit" - ] - } - } - } - } + ] } }, - "\/projects\/{projectId}\/auth\/personal-data": { - "patch": { - "summary": "Update personal data check", - "operationId": "projectsUpdatePersonalDataCheck", + "\/organizations\/{organizationId}\/invoices\/{invoiceId}\/payments": { + "post": { + "summary": "Initiate payment for failed invoice to pay live from console", + "operationId": "organizationsCreateInvoicePayment", "tags": [ - "projects" + "organizations" ], - "description": "Enable or disable checking user passwords against their personal data. This helps prevent users from using personal information in their passwords. ", + "description": "Initiate payment for failed invoice to pay live from console", "responses": { "200": { - "description": "Project", + "description": "Invoice", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/invoice" } } } @@ -38418,22 +38598,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updatePersonalDataCheck", - "group": "auth", - "weight": 70, + "method": "createInvoicePayment", + "group": null, + "weight": 737, "cookies": false, "type": "", - "demo": "projects\/update-personal-data-check.md", - "rate-limit": 0, - "rate-time": 3600, + "demo": "organizations\/create-invoice-payment.md", + "rate-limit": 10, + "rate-time": 86400, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "billing.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-personal-data-check.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/create-invoice-payment.md", "auth": { "Project": [] } @@ -38445,12 +38625,22 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "invoiceId", + "description": "Invoice unique ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<INVOICE_ID>" }, "in": "path" } @@ -38461,14 +38651,14 @@ "schema": { "type": "object", "properties": { - "enabled": { - "type": "boolean", - "description": "Set whether or not to check a password for similarity with personal data. Default is false.", - "x-example": false + "paymentMethodId": { + "type": "string", + "description": "Payment method ID", + "x-example": "<PAYMENT_METHOD_ID>" } }, "required": [ - "enabled" + "paymentMethodId" ] } } @@ -38476,21 +38666,21 @@ } } }, - "\/projects\/{projectId}\/auth\/session-alerts": { + "\/organizations\/{organizationId}\/invoices\/{invoiceId}\/status": { "patch": { - "summary": "Update project sessions emails", - "operationId": "projectsUpdateSessionAlerts", + "summary": "Validate the payment for an invoice and update status", + "operationId": "organizationsValidateInvoice", "tags": [ - "projects" + "organizations" ], - "description": "Enable or disable session email alerts. When enabled, users will receive email notifications when new sessions are created.", + "description": "Validates the payment linked with the invoice and updates the invoice status if the payment status is changed.", "responses": { "200": { - "description": "Project", + "description": "Invoice", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/invoice" } } } @@ -38498,22 +38688,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateSessionAlerts", - "group": "auth", - "weight": 63, + "method": "validateInvoice", + "group": null, + "weight": 734, "cookies": false, "type": "", - "demo": "projects\/update-session-alerts.md", + "demo": "organizations\/validate-invoice.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "billing.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-session-alerts.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/update-invoice-status.md", "auth": { "Project": [] } @@ -38525,132 +38715,43 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" + }, + { + "name": "invoiceId", + "description": "Invoice unique ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<INVOICE_ID>" }, "in": "path" } + ] + } + }, + "\/organizations\/{organizationId}\/invoices\/{invoiceId}\/view": { + "get": { + "summary": "View invoice in PDF", + "operationId": "organizationsGetInvoiceView", + "tags": [ + "organizations" ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "alerts": { - "type": "boolean", - "description": "Set to true to enable session emails.", - "x-example": false - } - }, - "required": [ - "alerts" - ] - } - } - } - } - } - }, - "\/projects\/{projectId}\/auth\/session-invalidation": { - "patch": { - "summary": "Update invalidate session option of the project", - "operationId": "projectsUpdateSessionInvalidation", - "tags": [ - "projects" - ], - "description": "Invalidate all existing sessions. An optional auth security setting for projects, and enabled by default for console project.", - "responses": { - "200": { - "description": "Project", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/project" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "updateSessionInvalidation", - "group": "auth", - "weight": 99, - "cookies": false, - "type": "", - "demo": "projects\/update-session-invalidation.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-session-invalidation.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "projectId", - "description": "Project unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PROJECT_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "Update authentication session invalidation status. Use this endpoint to enable or disable session invalidation on password change", - "x-example": false - } - }, - "required": [ - "enabled" - ] - } - } - } - } - } - }, - "\/projects\/{projectId}\/auth\/{method}": { - "patch": { - "summary": "Update project auth method status. Use this endpoint to enable or disable a given auth method for this project.", - "operationId": "projectsUpdateAuthStatus", - "tags": [ - "projects" - ], - "description": "Update the status of a specific authentication method. Use this endpoint to enable or disable different authentication methods such as email, magic urls or sms in your project. ", + "description": "View invoice in PDF", "responses": { "200": { - "description": "Project", + "description": "paymentMethod", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/paymentMethod" } } } @@ -38658,22 +38759,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateAuthStatus", - "group": "auth", - "weight": 67, + "method": "getInvoiceView", + "group": null, + "weight": 735, "cookies": false, "type": "", - "demo": "projects\/update-auth-status.md", + "demo": "organizations\/get-invoice-view.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "billing.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-auth-status.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-invoice-view.md", "auth": { "Project": [] } @@ -38685,73 +38786,43 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<ORGANIZATION_ID>" }, "in": "path" }, { - "name": "method", - "description": "Auth Method. Possible values: email-password,magic-url,email-otp,anonymous,invites,jwt,phone", + "name": "invoiceId", + "description": "Invoice unique ID", "required": true, "schema": { "type": "string", - "x-example": "email-password", - "enum": [ - "email-password", - "magic-url", - "email-otp", - "anonymous", - "invites", - "jwt", - "phone" - ], - "x-enum-name": "AuthMethod", - "x-enum-keys": [] + "x-example": "<INVOICE_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "status": { - "type": "boolean", - "description": "Set the status of this auth method.", - "x-example": false - } - }, - "required": [ - "status" - ] - } - } - } - } + ] } }, - "\/projects\/{projectId}\/dev-keys": { + "\/organizations\/{organizationId}\/keys": { "get": { - "summary": "List dev keys", - "operationId": "projectsListDevKeys", + "summary": "List organization keys", + "operationId": "organizationsListKeys", "tags": [ - "projects" + "organizations" ], - "description": "List all the project\\'s dev keys. Dev keys are project specific and allow you to bypass rate limits and get better error logging during development.'", + "description": "Get a list of all API keys from the current organization. ", "responses": { "200": { - "description": "Dev Keys List", + "description": "API Keys List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/devKeyList" + "$ref": "#\/components\/schemas\/keyList" } } } @@ -38759,16 +38830,16 @@ }, "deprecated": false, "x-appwrite": { - "method": "listDevKeys", - "group": "devKeys", - "weight": 410, + "method": "listKeys", + "group": "keys", + "weight": 748, "cookies": false, "type": "", - "demo": "projects\/list-dev-keys.md", + "demo": "organizations\/list-keys.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "devKeys.read", + "scope": "teams.read", "platforms": [ "console" ], @@ -38785,44 +38856,42 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization Unique ID", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<ORGANIZATION_ID>" }, "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: accessedAt, expire", + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", "required": false, "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] + "type": "boolean", + "x-example": false, + "default": true }, "in": "query" } ] }, "post": { - "summary": "Create dev key", - "operationId": "projectsCreateDevKey", + "summary": "Create organization key", + "operationId": "organizationsCreateKey", "tags": [ - "projects" + "organizations" ], - "description": "Create a new project dev key. Dev keys are project specific and allow you to bypass rate limits and get better error logging during development. Strictly meant for development purposes only.", + "description": "Create a new organization API key.", "responses": { "201": { - "description": "DevKey", + "description": "Key", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/devKey" + "$ref": "#\/components\/schemas\/key" } } } @@ -38830,16 +38899,16 @@ }, "deprecated": false, "x-appwrite": { - "method": "createDevKey", - "group": "devKeys", - "weight": 407, + "method": "createKey", + "group": "keys", + "weight": 746, "cookies": false, "type": "", - "demo": "projects\/create-dev-key.md", + "demo": "organizations\/create-key.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "devKeys.write", + "scope": "teams.write", "platforms": [ "console" ], @@ -38856,12 +38925,12 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization Unique ID", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<ORGANIZATION_ID>" }, "in": "path" } @@ -38877,15 +38946,40 @@ "description": "Key name. Max length: 128 chars.", "x-example": "<NAME>" }, + "scopes": { + "type": "array", + "description": "Key scopes list. Maximum of 100 scopes are allowed.", + "x-example": null, + "items": { + "type": "string", + "enum": [ + "platforms.read", + "platforms.write", + "projects.read", + "projects.write", + "keys.read", + "keys.write", + "devKeys.read", + "devKeys.write", + "webhooks.read", + "webhooks.write", + "domains.read", + "domains.write" + ], + "x-enum-name": null, + "x-enum-keys": [] + } + }, "expire": { "type": "string", - "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format.", - "x-example": null + "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", + "x-example": null, + "x-nullable": true } }, "required": [ "name", - "expire" + "scopes" ] } } @@ -38893,21 +38987,21 @@ } } }, - "\/projects\/{projectId}\/dev-keys\/{keyId}": { + "\/organizations\/{organizationId}\/keys\/{keyId}": { "get": { - "summary": "Get dev key", - "operationId": "projectsGetDevKey", + "summary": "Get organization key", + "operationId": "organizationsGetKey", "tags": [ - "projects" + "organizations" ], - "description": "Get a project\\'s dev key by its unique ID. Dev keys are project specific and allow you to bypass rate limits and get better error logging during development.", + "description": "Get a key by its unique ID. This endpoint returns details about a specific API key in your organization including it's scopes.", "responses": { "200": { - "description": "DevKey", + "description": "Key", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/devKey" + "$ref": "#\/components\/schemas\/key" } } } @@ -38915,16 +39009,16 @@ }, "deprecated": false, "x-appwrite": { - "method": "getDevKey", - "group": "devKeys", - "weight": 409, + "method": "getKey", + "group": "keys", + "weight": 750, "cookies": false, "type": "", - "demo": "projects\/get-dev-key.md", + "demo": "organizations\/get-key.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "devKeys.read", + "scope": "teams.read", "platforms": [ "console" ], @@ -38941,12 +39035,12 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization Unique ID", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<ORGANIZATION_ID>" }, "in": "path" }, @@ -38963,19 +39057,19 @@ ] }, "put": { - "summary": "Update dev key", - "operationId": "projectsUpdateDevKey", + "summary": "Update organization key", + "operationId": "organizationsUpdateKey", "tags": [ - "projects" + "organizations" ], - "description": "Update a project\\'s dev key by its unique ID. Use this endpoint to update a project\\'s dev key name or expiration time.'", + "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": "DevKey", + "description": "Key", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/devKey" + "$ref": "#\/components\/schemas\/key" } } } @@ -38983,16 +39077,16 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateDevKey", - "group": "devKeys", - "weight": 408, + "method": "updateKey", + "group": "keys", + "weight": 747, "cookies": false, "type": "", - "demo": "projects\/update-dev-key.md", + "demo": "organizations\/update-key.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "devKeys.write", + "scope": "teams.write", "platforms": [ "console" ], @@ -39009,12 +39103,12 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization Unique ID", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<ORGANIZATION_ID>" }, "in": "path" }, @@ -39040,15 +39134,40 @@ "description": "Key name. Max length: 128 chars.", "x-example": "<NAME>" }, + "scopes": { + "type": "array", + "description": "Key scopes list. Maximum of 100 scopes are allowed.", + "x-example": null, + "items": { + "type": "string", + "enum": [ + "platforms.read", + "platforms.write", + "projects.read", + "projects.write", + "keys.read", + "keys.write", + "devKeys.read", + "devKeys.write", + "webhooks.read", + "webhooks.write", + "domains.read", + "domains.write" + ], + "x-enum-name": null, + "x-enum-keys": [] + } + }, "expire": { "type": "string", - "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format.", - "x-example": null + "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", + "x-example": null, + "x-nullable": true } }, "required": [ "name", - "expire" + "scopes" ] } } @@ -39056,12 +39175,12 @@ } }, "delete": { - "summary": "Delete dev key", - "operationId": "projectsDeleteDevKey", + "summary": "Delete organization key", + "operationId": "organizationsDeleteKey", "tags": [ - "projects" + "organizations" ], - "description": "Delete a project\\'s dev key by its unique ID. Once deleted, the key will no longer allow bypassing of rate limits and better logging of errors.", + "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" @@ -39069,16 +39188,16 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteDevKey", - "group": "devKeys", - "weight": 411, + "method": "deleteKey", + "group": "keys", + "weight": 749, "cookies": false, "type": "", - "demo": "projects\/delete-dev-key.md", + "demo": "organizations\/delete-key.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "devKeys.write", + "scope": "teams.write", "platforms": [ "console" ], @@ -39095,12 +39214,12 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization Unique ID", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<ORGANIZATION_ID>" }, "in": "path" }, @@ -39117,21 +39236,21 @@ ] } }, - "\/projects\/{projectId}\/jwts": { - "post": { - "summary": "Create JWT", - "operationId": "projectsCreateJWT", + "\/organizations\/{organizationId}\/payment-method": { + "patch": { + "summary": "Set team's payment method", + "operationId": "organizationsSetDefaultPaymentMethod", "tags": [ - "projects" + "organizations" ], - "description": "Create a new JWT token. This token can be used to authenticate users with custom scopes and expiration time. ", + "description": "Set a organization's default payment method.", "responses": { - "201": { - "description": "JWT", + "200": { + "description": "Organization", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/jwt" + "$ref": "#\/components\/schemas\/organization" } } } @@ -39139,22 +39258,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "createJWT", - "group": "auth", - "weight": 85, + "method": "setDefaultPaymentMethod", + "group": null, + "weight": 722, "cookies": false, "type": "", - "demo": "projects\/create-jwt.md", + "demo": "organizations\/set-default-payment-method.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "billing.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/create-jwt.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/set-default-payment-method.md", "auth": { "Project": [] } @@ -39166,12 +39285,12 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<ORGANIZATION_ID>" }, "in": "path" } @@ -39182,115 +39301,34 @@ "schema": { "type": "object", "properties": { - "scopes": { - "type": "array", - "description": "List of scopes allowed for JWT key. Maximum of 100 scopes are allowed.", - "x-example": null, - "items": { - "type": "string", - "enum": [ - "sessions.write", - "users.read", - "users.write", - "teams.read", - "teams.write", - "databases.read", - "databases.write", - "collections.read", - "collections.write", - "tables.read", - "tables.write", - "attributes.read", - "attributes.write", - "columns.read", - "columns.write", - "indexes.read", - "indexes.write", - "documents.read", - "documents.write", - "rows.read", - "rows.write", - "files.read", - "files.write", - "buckets.read", - "buckets.write", - "functions.read", - "functions.write", - "sites.read", - "sites.write", - "log.read", - "log.write", - "execution.read", - "execution.write", - "locale.read", - "avatars.read", - "health.read", - "providers.read", - "providers.write", - "messages.read", - "messages.write", - "topics.read", - "topics.write", - "subscribers.read", - "subscribers.write", - "targets.read", - "targets.write", - "rules.read", - "rules.write", - "schedules.read", - "schedules.write", - "migrations.read", - "migrations.write", - "vcs.read", - "vcs.write", - "assistant.read", - "tokens.read", - "tokens.write", - "policies.write", - "policies.read", - "archives.read", - "archives.write", - "restorations.read", - "restorations.write", - "domains.read", - "domains.write", - "events.read" - ], - "x-enum-name": null, - "x-enum-keys": [] - } - }, - "duration": { - "type": "integer", - "description": "Time in seconds before JWT expires. Default duration is 900 seconds, and maximum is 3600 seconds.", - "x-example": 0, - "format": "int32" + "paymentMethodId": { + "type": "string", + "description": "Unique ID of payment method", + "x-example": "<PAYMENT_METHOD_ID>" } }, "required": [ - "scopes" + "paymentMethodId" ] } } } } - } - }, - "\/projects\/{projectId}\/keys": { - "get": { - "summary": "List keys", - "operationId": "projectsListKeys", + }, + "delete": { + "summary": "Delete team's default payment method", + "operationId": "organizationsDeleteDefaultPaymentMethod", "tags": [ - "projects" + "organizations" ], - "description": "Get a list of all API keys from the current project. ", + "description": "Delete the default payment method for an organization.", "responses": { "200": { - "description": "API Keys List", + "description": "Organization", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/keyList" + "$ref": "#\/components\/schemas\/organization" } } } @@ -39298,22 +39336,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "listKeys", - "group": "keys", - "weight": 81, + "method": "deleteDefaultPaymentMethod", + "group": null, + "weight": 724, "cookies": false, "type": "", - "demo": "projects\/list-keys.md", + "demo": "organizations\/delete-default-payment-method.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "keys.read", + "scope": "billing.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/list-keys.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/delete-default-payment-method.md", "auth": { "Project": [] } @@ -39325,55 +39363,33 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<ORGANIZATION_ID>" }, "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: expire, accessedAt, name, scopes", - "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", - "x-example": false, - "default": true - }, - "in": "query" } ] - }, - "post": { - "summary": "Create key", - "operationId": "projectsCreateKey", + } + }, + "\/organizations\/{organizationId}\/payment-method\/backup": { + "patch": { + "summary": "Set team's backup payment method", + "operationId": "organizationsSetBackupPaymentMethod", "tags": [ - "projects" + "organizations" ], - "description": "Create a new API key. It's recommended to have multiple API keys with strict scopes for separate functions within your project.", + "description": "Set an organization's backup payment method.\n", "responses": { - "201": { - "description": "Key", + "200": { + "description": "Organization", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/key" + "$ref": "#\/components\/schemas\/organization" } } } @@ -39381,22 +39397,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "createKey", - "group": "keys", - "weight": 80, + "method": "setBackupPaymentMethod", + "group": null, + "weight": 723, "cookies": false, "type": "", - "demo": "projects\/create-key.md", + "demo": "organizations\/set-backup-payment-method.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "keys.write", + "scope": "billing.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/create-key.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/set-backup-payment-method.md", "auth": { "Project": [] } @@ -39408,12 +39424,12 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<ORGANIZATION_ID>" }, "in": "path" } @@ -39424,127 +39440,34 @@ "schema": { "type": "object", "properties": { - "keyId": { - "type": "string", - "description": "Key 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.", - "x-example": "<KEY_ID>" - }, - "name": { - "type": "string", - "description": "Key name. Max length: 128 chars.", - "x-example": "<NAME>" - }, - "scopes": { - "type": "array", - "description": "Key scopes list. Maximum of 100 scopes are allowed.", - "x-example": null, - "items": { - "type": "string", - "enum": [ - "sessions.write", - "users.read", - "users.write", - "teams.read", - "teams.write", - "databases.read", - "databases.write", - "collections.read", - "collections.write", - "tables.read", - "tables.write", - "attributes.read", - "attributes.write", - "columns.read", - "columns.write", - "indexes.read", - "indexes.write", - "documents.read", - "documents.write", - "rows.read", - "rows.write", - "files.read", - "files.write", - "buckets.read", - "buckets.write", - "functions.read", - "functions.write", - "sites.read", - "sites.write", - "log.read", - "log.write", - "execution.read", - "execution.write", - "locale.read", - "avatars.read", - "health.read", - "providers.read", - "providers.write", - "messages.read", - "messages.write", - "topics.read", - "topics.write", - "subscribers.read", - "subscribers.write", - "targets.read", - "targets.write", - "rules.read", - "rules.write", - "schedules.read", - "schedules.write", - "migrations.read", - "migrations.write", - "vcs.read", - "vcs.write", - "assistant.read", - "tokens.read", - "tokens.write", - "policies.write", - "policies.read", - "archives.read", - "archives.write", - "restorations.read", - "restorations.write", - "domains.read", - "domains.write", - "events.read" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "x-nullable": true - }, - "expire": { + "paymentMethodId": { "type": "string", - "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", - "x-example": null, - "x-nullable": true + "description": "Unique ID of payment method", + "x-example": "<PAYMENT_METHOD_ID>" } }, "required": [ - "name", - "scopes" + "paymentMethodId" ] } } } } - } - }, - "\/projects\/{projectId}\/keys\/{keyId}": { - "get": { - "summary": "Get key", - "operationId": "projectsGetKey", + }, + "delete": { + "summary": "Delete team's backup payment method", + "operationId": "organizationsDeleteBackupPaymentMethod", "tags": [ - "projects" + "organizations" ], - "description": "Get a key by its unique ID. This endpoint returns details about a specific API key in your project including it's scopes.", + "description": "Delete a backup payment method for an organization.", "responses": { "200": { - "description": "Key", + "description": "Organization", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/key" + "$ref": "#\/components\/schemas\/organization" } } } @@ -39552,22 +39475,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getKey", - "group": "keys", - "weight": 82, + "method": "deleteBackupPaymentMethod", + "group": null, + "weight": 725, "cookies": false, "type": "", - "demo": "projects\/get-key.md", + "demo": "organizations\/delete-backup-payment-method.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "keys.read", + "scope": "billing.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/get-key.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/delete-backup-payment-method.md", "auth": { "Project": [] } @@ -39579,41 +39502,33 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PROJECT_ID>" - }, - "in": "path" - }, - { - "name": "keyId", - "description": "Key unique ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "schema": { "type": "string", - "x-example": "<KEY_ID>" + "x-example": "<ORGANIZATION_ID>" }, "in": "path" } ] - }, - "put": { - "summary": "Update key", - "operationId": "projectsUpdateKey", + } + }, + "\/organizations\/{organizationId}\/payment-methods\/{paymentMethodId}": { + "get": { + "summary": "Get payment method", + "operationId": "organizationsGetPaymentMethod", "tags": [ - "projects" + "organizations" ], - "description": "Update a key by its unique ID. Use this endpoint to update the name, scopes, or expiration time of an API key. ", + "description": "Get an organization's payment method using it's payment method ID.", "responses": { "200": { - "description": "Key", + "description": "paymentMethod", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/key" + "$ref": "#\/components\/schemas\/paymentMethod" } } } @@ -39621,22 +39536,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateKey", - "group": "keys", - "weight": 83, + "method": "getPaymentMethod", + "group": null, + "weight": 721, "cookies": false, "type": "", - "demo": "projects\/update-key.md", + "demo": "organizations\/get-payment-method.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "keys.write", + "scope": "billing.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-key.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-payment-method.md", "auth": { "Project": [] } @@ -39648,162 +39563,66 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<ORGANIZATION_ID>" }, "in": "path" }, { - "name": "keyId", - "description": "Key unique ID.", + "name": "paymentMethodId", + "description": "Unique ID of payment method", "required": true, "schema": { "type": "string", - "x-example": "<KEY_ID>" + "x-example": "<PAYMENT_METHOD_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Key name. Max length: 128 chars.", - "x-example": "<NAME>" - }, - "scopes": { - "type": "array", - "description": "Key scopes list. Maximum of 100 events are allowed.", - "x-example": null, - "items": { - "type": "string", - "enum": [ - "sessions.write", - "users.read", - "users.write", - "teams.read", - "teams.write", - "databases.read", - "databases.write", - "collections.read", - "collections.write", - "tables.read", - "tables.write", - "attributes.read", - "attributes.write", - "columns.read", - "columns.write", - "indexes.read", - "indexes.write", - "documents.read", - "documents.write", - "rows.read", - "rows.write", - "files.read", - "files.write", - "buckets.read", - "buckets.write", - "functions.read", - "functions.write", - "sites.read", - "sites.write", - "log.read", - "log.write", - "execution.read", - "execution.write", - "locale.read", - "avatars.read", - "health.read", - "providers.read", - "providers.write", - "messages.read", - "messages.write", - "topics.read", - "topics.write", - "subscribers.read", - "subscribers.write", - "targets.read", - "targets.write", - "rules.read", - "rules.write", - "schedules.read", - "schedules.write", - "migrations.read", - "migrations.write", - "vcs.read", - "vcs.write", - "assistant.read", - "tokens.read", - "tokens.write", - "policies.write", - "policies.read", - "archives.read", - "archives.write", - "restorations.read", - "restorations.write", - "domains.read", - "domains.write", - "events.read" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "x-nullable": true - }, - "expire": { - "type": "string", - "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "name", - "scopes" - ] - } - } - } - } - }, - "delete": { - "summary": "Delete key", - "operationId": "projectsDeleteKey", + ] + } + }, + "\/organizations\/{organizationId}\/plan": { + "get": { + "summary": "Get organization billing plan details", + "operationId": "organizationsGetPlan", "tags": [ - "projects" + "organizations" ], - "description": "Delete a key by its unique ID. Once deleted, the key can no longer be used to authenticate API calls. ", + "description": "Get the details of the current billing plan for an organization.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "billingPlan", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/billingPlan" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteKey", - "group": "keys", - "weight": 84, + "method": "getPlan", + "group": null, + "weight": 712, "cookies": false, "type": "", - "demo": "projects\/delete-key.md", + "demo": "organizations\/get-plan.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "keys.write", + "scope": "teams.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/delete-key.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-plan.md", "auth": { "Project": [] } @@ -39815,43 +39634,31 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PROJECT_ID>" - }, - "in": "path" - }, - { - "name": "keyId", - "description": "Key unique ID.", + "name": "organizationId", + "description": "Organization Unique ID", "required": true, "schema": { "type": "string", - "x-example": "<KEY_ID>" + "x-example": "<ORGANIZATION_ID>" }, "in": "path" } ] - } - }, - "\/projects\/{projectId}\/labels": { - "put": { - "summary": "Update project labels", - "operationId": "projectsUpdateLabels", + }, + "patch": { + "summary": "Update organization billing plan", + "operationId": "organizationsUpdatePlan", "tags": [ - "projects" + "organizations" ], - "description": "Update the project labels by its unique ID. Labels can be used to easily filter projects in an organization.", + "description": "Update the billing plan for an organization.", "responses": { "200": { - "description": "Project", + "description": "Organization", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/organization" } } } @@ -39859,21 +39666,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateLabels", - "group": "projects", - "weight": 415, + "method": "updatePlan", + "group": null, + "weight": 713, "cookies": false, "type": "", - "demo": "projects\/update-labels.md", - "rate-limit": 0, + "demo": "organizations\/update-plan.md", + "rate-limit": 10, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "billing.write", "platforms": [ "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/update-plan.md", "auth": { "Project": [] } @@ -39885,12 +39693,12 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization Unique ID", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<ORGANIZATION_ID>" }, "in": "path" } @@ -39901,39 +39709,74 @@ "schema": { "type": "object", "properties": { - "labels": { + "billingPlan": { + "type": "string", + "description": "Organization billing plan chosen", + "x-example": "tier-0" + }, + "paymentMethodId": { + "type": "string", + "description": "Payment method ID. Required for pro plans when trial is not available and user doesn't have default payment method set.", + "x-example": "<PAYMENT_METHOD_ID>", + "x-nullable": true + }, + "billingAddressId": { + "type": "string", + "description": "Unique ID of billing address", + "x-example": "<BILLING_ADDRESS_ID>" + }, + "invites": { "type": "array", - "description": "Array of project labels. Replaces the previous labels. Maximum of 1000 labels are allowed, each up to 36 alphanumeric characters long.", + "description": "Additional member invites", "x-example": null, "items": { "type": "string" } - } - }, - "required": [ - "labels" - ] - } - } - } - } - } - }, - "\/projects\/{projectId}\/oauth2": { - "patch": { - "summary": "Update project OAuth2", - "operationId": "projectsUpdateOAuth2", + }, + "couponId": { + "type": "string", + "description": "Coupon id", + "x-example": "<COUPON_ID>", + "x-nullable": true + }, + "taxId": { + "type": "string", + "description": "Tax Id associated to billing.", + "x-example": "<TAX_ID>", + "x-nullable": true + }, + "budget": { + "type": "integer", + "description": "Budget limit for additional usage set for the organization", + "x-example": 0, + "format": "int32", + "x-nullable": true + } + }, + "required": [ + "billingPlan" + ] + } + } + } + } + } + }, + "\/organizations\/{organizationId}\/plan\/cancel": { + "patch": { + "summary": "Cancel organization plan change", + "operationId": "organizationsCancelDowngrade", "tags": [ - "projects" + "organizations" ], - "description": "Update the OAuth2 provider configurations. Use this endpoint to set up or update the OAuth2 provider credentials or enable\/disable providers. ", + "description": "Cancel the downgrade initiated for an organization.", "responses": { "200": { - "description": "Project", + "description": "Organization", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/organization" } } } @@ -39941,22 +39784,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2", - "group": "auth", - "weight": 62, + "method": "cancelDowngrade", + "group": null, + "weight": 714, "cookies": false, "type": "", - "demo": "projects\/update-o-auth-2.md", + "demo": "organizations\/cancel-downgrade.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "billing.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-oauth2.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/cancel-downgrade.md", "auth": { "Project": [] } @@ -39968,113 +39811,94 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization Unique ID", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<ORGANIZATION_ID>" }, "in": "path" } + ] + } + }, + "\/organizations\/{organizationId}\/regions": { + "get": { + "summary": "List Regions", + "operationId": "organizationsListRegions", + "tags": [ + "organizations" ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "provider": { - "type": "string", - "description": "Provider Name", - "x-example": "amazon", - "enum": [ - "amazon", - "apple", - "auth0", - "authentik", - "autodesk", - "bitbucket", - "bitly", - "box", - "dailymotion", - "discord", - "disqus", - "dropbox", - "etsy", - "facebook", - "figma", - "github", - "gitlab", - "google", - "linkedin", - "microsoft", - "notion", - "oidc", - "okta", - "paypal", - "paypalSandbox", - "podio", - "salesforce", - "slack", - "spotify", - "stripe", - "tradeshift", - "tradeshiftBox", - "twitch", - "wordpress", - "yahoo", - "yammer", - "yandex", - "zoho", - "zoom" - ], - "x-enum-name": "OAuthProvider", - "x-enum-keys": [] - }, - "appId": { - "type": "string", - "description": "Provider app ID. Max length: 256 chars.", - "x-example": "<APP_ID>", - "x-nullable": true - }, - "secret": { - "type": "string", - "description": "Provider secret key. Max length: 512 chars.", - "x-example": "<SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "Provider status. Set to 'false' to disable new session creation.", - "x-example": false, - "x-nullable": true - } - }, - "required": [ - "provider" - ] + "description": "Get all available regions for an organization.", + "responses": { + "200": { + "description": "Regions list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/consoleRegionList" + } } } } - } + }, + "deprecated": false, + "x-appwrite": { + "method": "listRegions", + "group": null, + "weight": 741, + "cookies": false, + "type": "", + "demo": "organizations\/list-regions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/list-regions.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<ORGANIZATION_ID>" + }, + "in": "path" + } + ] } }, - "\/projects\/{projectId}\/platforms": { + "\/organizations\/{organizationId}\/roles": { "get": { - "summary": "List platforms", - "operationId": "projectsListPlatforms", + "summary": "Get Scopes", + "operationId": "organizationsGetScopes", "tags": [ - "projects" + "organizations" ], - "description": "Get a list of all platforms in the project. This endpoint returns an array of all platforms and their configurations. ", + "description": "Get Scopes", "responses": { "200": { - "description": "Platforms List", + "description": "Roles", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/platformList" + "$ref": "#\/components\/schemas\/roles" } } } @@ -40082,22 +39906,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "listPlatforms", - "group": "platforms", - "weight": 87, + "method": "getScopes", + "group": null, + "weight": 740, "cookies": false, "type": "", - "demo": "projects\/list-platforms.md", + "demo": "organizations\/get-scopes.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.read", + "scope": "teams.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/list-platforms.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-scopes.md", "auth": { "Project": [] } @@ -40109,42 +39933,44 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization id", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<ORGANIZATION_ID>" }, "in": "path" }, { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "name": "projectId", + "description": "Project id", "required": false, "schema": { - "type": "boolean", - "x-example": false, - "default": true + "type": "string", + "x-example": "<PROJECT_ID>", + "default": "" }, "in": "query" } ] - }, - "post": { - "summary": "Create platform", - "operationId": "projectsCreatePlatform", + } + }, + "\/organizations\/{organizationId}\/taxId": { + "patch": { + "summary": "Set team's tax Id", + "operationId": "organizationsSetBillingTaxId", "tags": [ - "projects" + "organizations" ], - "description": "Create a new platform for your project. Use this endpoint to register a new platform where your users will run your application which will interact with the Appwrite API.", + "description": "Set an organization's billing tax ID.", "responses": { - "201": { - "description": "Platform", + "200": { + "description": "Organization", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/platform" + "$ref": "#\/components\/schemas\/organization" } } } @@ -40152,22 +39978,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "createPlatform", - "group": "platforms", - "weight": 86, + "method": "setBillingTaxId", + "group": null, + "weight": 716, "cookies": false, "type": "", - "demo": "projects\/create-platform.md", + "demo": "organizations\/set-billing-tax-id.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.write", + "scope": "billing.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/create-platform.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/set-billing-tax-id.md", "auth": { "Project": [] } @@ -40179,12 +40005,12 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<ORGANIZATION_ID>" }, "in": "path" } @@ -40195,54 +40021,14 @@ "schema": { "type": "object", "properties": { - "type": { - "type": "string", - "description": "Platform type. Possible values are: web, flutter-web, flutter-ios, flutter-android, flutter-linux, flutter-macos, flutter-windows, apple-ios, apple-macos, apple-watchos, apple-tvos, android, unity, react-native-ios, react-native-android.", - "x-example": "web", - "enum": [ - "web", - "flutter-web", - "flutter-ios", - "flutter-android", - "flutter-linux", - "flutter-macos", - "flutter-windows", - "apple-ios", - "apple-macos", - "apple-watchos", - "apple-tvos", - "android", - "unity", - "react-native-ios", - "react-native-android" - ], - "x-enum-name": "PlatformType", - "x-enum-keys": [] - }, - "name": { - "type": "string", - "description": "Platform name. Max length: 128 chars.", - "x-example": "<NAME>" - }, - "key": { - "type": "string", - "description": "Package name for Android or bundle ID for iOS or macOS. Max length: 256 chars.", - "x-example": "<KEY>" - }, - "store": { - "type": "string", - "description": "App store or Google Play store ID. Max length: 256 chars.", - "x-example": "<STORE>" - }, - "hostname": { + "taxId": { "type": "string", - "description": "Platform client hostname. Max length: 256 chars.", - "x-example": null + "description": "Tax Id associated to billing.", + "x-example": "<TAX_ID>" } }, "required": [ - "type", - "name" + "taxId" ] } } @@ -40250,21 +40036,21 @@ } } }, - "\/projects\/{projectId}\/platforms\/{platformId}": { + "\/organizations\/{organizationId}\/usage": { "get": { - "summary": "Get platform", - "operationId": "projectsGetPlatform", + "summary": "Get team's usage data", + "operationId": "organizationsGetUsage", "tags": [ - "projects" + "organizations" ], - "description": "Get a platform by its unique ID. This endpoint returns the platform's details, including its name, type, and key configurations. ", + "description": "Get the usage data for an organization.", "responses": { "200": { - "description": "Platform", + "description": "UsageOrganization", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/platform" + "$ref": "#\/components\/schemas\/usageOrganization" } } } @@ -40272,22 +40058,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getPlatform", - "group": "platforms", - "weight": 88, + "method": "getUsage", + "group": null, + "weight": 717, "cookies": false, "type": "", - "demo": "projects\/get-platform.md", + "demo": "organizations\/get-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.read", + "scope": "teams.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/get-platform.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-usage.md", "auth": { "Project": [] } @@ -40299,41 +40085,51 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<ORGANIZATION_ID>" }, "in": "path" }, { - "name": "platformId", - "description": "Platform unique ID.", - "required": true, + "name": "startDate", + "description": "Starting date for the usage", + "required": false, "schema": { - "type": "string", - "x-example": "<PLATFORM_ID>" + "type": "string" }, - "in": "path" + "in": "query" + }, + { + "name": "endDate", + "description": "End date for the usage", + "required": false, + "schema": { + "type": "string" + }, + "in": "query" } ] - }, - "put": { - "summary": "Update platform", - "operationId": "projectsUpdatePlatform", + } + }, + "\/organizations\/{organizationId}\/validate": { + "patch": { + "summary": "Validate payment for the organization after creation or upgrade", + "operationId": "organizationsValidatePayment", "tags": [ - "projects" + "organizations" ], - "description": "Update a platform by its unique ID. Use this endpoint to update the platform's name, key, platform store ID, or hostname. ", + "description": "Validate payment for team after creation or upgrade.", "responses": { "200": { - "description": "Platform", + "description": "Organization", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/platform" + "$ref": "#\/components\/schemas\/organization" } } } @@ -40341,22 +40137,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updatePlatform", - "group": "platforms", - "weight": 89, + "method": "validatePayment", + "group": null, + "weight": 739, "cookies": false, "type": "", - "demo": "projects\/update-platform.md", + "demo": "organizations\/validate-payment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.write", + "scope": "teams.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-platform.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/validate-payment.md", "auth": { "Project": [] } @@ -40368,22 +40164,12 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PROJECT_ID>" - }, - "in": "path" - }, - { - "name": "platformId", - "description": "Platform unique ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "schema": { "type": "string", - "x-example": "<PLATFORM_ID>" + "x-example": "<ORGANIZATION_ID>" }, "in": "path" } @@ -40394,65 +40180,59 @@ "schema": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "Platform name. Max length: 128 chars.", - "x-example": "<NAME>" - }, - "key": { - "type": "string", - "description": "Package name for android or bundle ID for iOS. Max length: 256 chars.", - "x-example": "<KEY>" - }, - "store": { - "type": "string", - "description": "App store or Google Play store ID. Max length: 256 chars.", - "x-example": "<STORE>" - }, - "hostname": { - "type": "string", - "description": "Platform client URL. Max length: 256 chars.", - "x-example": null + "invites": { + "type": "array", + "description": "Additional member invites", + "x-example": null, + "items": { + "type": "string" + } } - }, - "required": [ - "name" - ] + } } } } } - }, - "delete": { - "summary": "Delete platform", - "operationId": "projectsDeletePlatform", + } + }, + "\/project\/usage": { + "get": { + "summary": "Get project usage stats", + "operationId": "projectGetUsage", "tags": [ - "projects" + "project" ], - "description": "Delete a platform by its unique ID. This endpoint removes the platform and all its configurations from the project. ", + "description": "Get comprehensive usage statistics for your project. View metrics including network requests, bandwidth, storage, function executions, database usage, and user activity. Specify a time range with startDate and endDate, and optionally set the data granularity with period (1h or 1d). The response includes both total counts and detailed breakdowns by resource, along with historical data over the specified period.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "UsageProject", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/usageProject" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deletePlatform", - "group": "platforms", - "weight": 90, + "method": "getUsage", + "group": null, + "weight": 625, "cookies": false, "type": "", - "demo": "projects\/delete-platform.md", + "demo": "project\/get-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.write", + "scope": "projects.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/delete-platform.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/project\/get-usage.md", "auth": { "Project": [] } @@ -40464,43 +40244,61 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "startDate", + "description": "Starting date for the usage", "required": true, "schema": { - "type": "string", - "x-example": "<PROJECT_ID>" + "type": "string" }, - "in": "path" + "in": "query" }, { - "name": "platformId", - "description": "Platform unique ID.", + "name": "endDate", + "description": "End date for the usage", "required": true, "schema": { - "type": "string", - "x-example": "<PLATFORM_ID>" + "type": "string" }, - "in": "path" - } - ] - } - }, - "\/projects\/{projectId}\/schedules": { - "get": { - "summary": "List schedules", - "operationId": "projectsListSchedules", + "in": "query" + }, + { + "name": "period", + "description": "Period used", + "required": false, + "schema": { + "type": "string", + "x-example": "1h", + "enum": [ + "1h", + "1d" + ], + "x-enum-name": "ProjectUsageRange", + "x-enum-keys": [ + "One Hour", + "One Day" + ], + "default": "1d" + }, + "in": "query" + } + ] + } + }, + "\/project\/variables": { + "get": { + "summary": "List variables", + "operationId": "projectListVariables", "tags": [ - "projects" + "project" ], - "description": "Get a list of all the project's schedules. You can use the query params to filter your results.", + "description": "Get a list of all project variables. These variables will be accessible in all Appwrite Functions at runtime.", "responses": { "200": { - "description": "Schedules List", + "description": "Variables List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/scheduleList" + "$ref": "#\/components\/schemas\/variableList" } } } @@ -40508,22 +40306,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "listSchedules", - "group": "schedules", - "weight": 419, + "method": "listVariables", + "group": null, + "weight": 102, "cookies": false, "type": "", - "demo": "projects\/list-schedules.md", + "demo": "project\/list-variables.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "schedules.read", + "scope": "projects.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/list-schedules.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/project\/list-variables.md", "auth": { "Project": [] } @@ -40532,58 +40330,22 @@ { "Project": [] } - ], - "parameters": [ - { - "name": "projectId", - "description": "Project unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PROJECT_ID>" - }, - "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: resourceType, resourceId, projectId, schedule, active, region", - "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", - "x-example": false, - "default": true - }, - "in": "query" - } ] }, "post": { - "summary": "Create schedule", - "operationId": "projectsCreateSchedule", + "summary": "Create variable", + "operationId": "projectCreateVariable", "tags": [ - "projects" + "project" ], - "description": "Create a new schedule for a resource.", + "description": "Create a new project variable. This variable will be accessible in all Appwrite Functions at runtime.", "responses": { "201": { - "description": "Schedule", + "description": "Variable", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/schedule" + "$ref": "#\/components\/schemas\/variable" } } } @@ -40591,22 +40353,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "createSchedule", - "group": "schedules", - "weight": 778, + "method": "createVariable", + "group": null, + "weight": 101, "cookies": false, "type": "", - "demo": "projects\/create-schedule.md", + "demo": "project\/create-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "schedules.write", + "scope": "projects.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/create-schedule.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/project\/create-variable.md", "auth": { "Project": [] } @@ -40616,62 +40378,31 @@ "Project": [] } ], - "parameters": [ - { - "name": "projectId", - "description": "Project unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PROJECT_ID>" - }, - "in": "path" - } - ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "resourceType": { - "type": "string", - "description": "The resource type for the schedule. Possible values: function, execution, message, backup.", - "x-example": "function", - "enum": [ - "function", - "execution", - "message", - "backup" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "resourceId": { + "key": { "type": "string", - "description": "The resource ID to associate with this schedule.", - "x-example": "<RESOURCE_ID>" + "description": "Variable key. Max length: 255 chars.", + "x-example": "<KEY>" }, - "schedule": { + "value": { "type": "string", - "description": "Schedule CRON expression.", - "x-example": null + "description": "Variable value. Max length: 8192 chars.", + "x-example": "<VALUE>" }, - "active": { + "secret": { "type": "boolean", - "description": "Whether the schedule is active.", + "description": "Secret variables can be updated or deleted, but only projects can read them during build and runtime.", "x-example": false - }, - "data": { - "type": "object", - "description": "Schedule data as a JSON string. Used to store resource-specific context needed for execution.", - "x-example": "{}" } }, "required": [ - "resourceType", - "resourceId", - "schedule" + "key", + "value" ] } } @@ -40679,21 +40410,21 @@ } } }, - "\/projects\/{projectId}\/schedules\/{scheduleId}": { + "\/project\/variables\/{variableId}": { "get": { - "summary": "Get schedule", - "operationId": "projectsGetSchedule", + "summary": "Get variable", + "operationId": "projectGetVariable", "tags": [ - "projects" + "project" ], - "description": "Get a schedule by its unique ID.", + "description": "Get a project variable by its unique ID.", "responses": { "200": { - "description": "Schedule", + "description": "Variable", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/schedule" + "$ref": "#\/components\/schemas\/variable" } } } @@ -40701,22 +40432,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getSchedule", - "group": "schedules", - "weight": 418, + "method": "getVariable", + "group": null, + "weight": 103, "cookies": false, "type": "", - "demo": "projects\/get-schedule.md", + "demo": "project\/get-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "schedules.read", + "scope": "projects.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/get-schedule.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/project\/get-variable.md", "auth": { "Project": [] } @@ -40728,43 +40459,31 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PROJECT_ID>" - }, - "in": "path" - }, - { - "name": "scheduleId", - "description": "Schedule ID.", + "name": "variableId", + "description": "Variable unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<SCHEDULE_ID>" + "x-example": "<VARIABLE_ID>" }, "in": "path" } ] - } - }, - "\/projects\/{projectId}\/service": { - "patch": { - "summary": "Update service status", - "operationId": "projectsUpdateServiceStatus", + }, + "put": { + "summary": "Update variable", + "operationId": "projectUpdateVariable", "tags": [ - "projects" + "project" ], - "description": "Update the status of a specific service. Use this endpoint to enable or disable a service in your project. ", + "description": "Update project variable by its unique ID. This variable will be accessible in all Appwrite Functions at runtime.", "responses": { "200": { - "description": "Project", + "description": "Variable", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/variable" } } } @@ -40772,12 +40491,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateServiceStatus", - "group": "projects", - "weight": 58, + "method": "updateVariable", + "group": null, + "weight": 104, "cookies": false, "type": "", - "demo": "projects\/update-service-status.md", + "demo": "project\/update-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -40787,7 +40506,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-service-status.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/project\/update-variable.md", "auth": { "Project": [] } @@ -40799,12 +40518,12 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "variableId", + "description": "Variable unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<VARIABLE_ID>" }, "in": "path" } @@ -40815,59 +40534,100 @@ "schema": { "type": "object", "properties": { - "service": { + "key": { "type": "string", - "description": "Service name.", - "x-example": "account", - "enum": [ - "account", - "avatars", - "databases", - "tablesdb", - "locale", - "health", - "storage", - "teams", - "users", - "sites", - "functions", - "graphql", - "messaging" - ], - "x-enum-name": "ApiService", - "x-enum-keys": [] + "description": "Variable key. Max length: 255 chars.", + "x-example": "<KEY>" }, - "status": { + "value": { + "type": "string", + "description": "Variable value. Max length: 8192 chars.", + "x-example": "<VALUE>", + "x-nullable": true + }, + "secret": { "type": "boolean", - "description": "Service status.", - "x-example": false + "description": "Secret variables can be updated or deleted, but only projects can read them during build and runtime.", + "x-example": false, + "x-nullable": true } }, "required": [ - "service", - "status" + "key" ] } } } } + }, + "delete": { + "summary": "Delete variable", + "operationId": "projectDeleteVariable", + "tags": [ + "project" + ], + "description": "Delete a project variable by its unique ID. ", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteVariable", + "group": null, + "weight": 105, + "cookies": false, + "type": "", + "demo": "project\/delete-variable.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/project\/delete-variable.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<VARIABLE_ID>" + }, + "in": "path" + } + ] } }, - "\/projects\/{projectId}\/service\/all": { - "patch": { - "summary": "Update all service status", - "operationId": "projectsUpdateServiceStatusAll", + "\/projects": { + "get": { + "summary": "List projects", + "operationId": "projectsList", "tags": [ "projects" ], - "description": "Update the status of all services. Use this endpoint to enable or disable all optional services at once. ", + "description": "Get a list of all projects. You can use the query params to filter your results. ", "responses": { "200": { - "description": "Project", + "description": "Projects List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/project" + "$ref": "#\/components\/schemas\/projectList" } } } @@ -40875,22 +40635,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateServiceStatusAll", + "method": "list", "group": "projects", - "weight": 59, + "weight": 798, "cookies": false, "type": "", - "demo": "projects\/update-service-status-all.md", + "demo": "projects\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "projects.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-service-status-all.md", "auth": { "Project": [] } @@ -40902,47 +40661,51 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", - "required": true, + "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, teamId, labels, search", + "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", - "x-example": "<PROJECT_ID>" + "x-example": "<SEARCH>", + "default": "" }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "status": { - "type": "boolean", - "description": "Service status.", - "x-example": false - } - }, - "required": [ - "status" - ] - } - } + "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", + "x-example": false, + "default": true + }, + "in": "query" } - } - } - }, - "\/projects\/{projectId}\/smtp": { - "patch": { - "summary": "Update SMTP", - "operationId": "projectsUpdateSmtp", + ] + }, + "post": { + "summary": "Create project", + "operationId": "projectsCreate", "tags": [ "projects" ], - "description": "Update the SMTP configuration for your project. Use this endpoint to configure your project's SMTP provider with your custom settings for sending transactional emails. ", + "description": "Create a new project. You can create a maximum of 100 projects per account. ", "responses": { - "200": { + "201": { "description": "Project", "content": { "application\/json": { @@ -40953,14 +40716,14 @@ } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateSmtp", - "group": "templates", - "weight": 91, + "method": "create", + "group": "projects", + "weight": 796, "cookies": false, "type": "", - "demo": "projects\/update-smtp.md", + "demo": "projects\/create.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -40969,84 +40732,8 @@ "console" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-smtp.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "projects.updateSMTP" - }, - "methods": [ - { - "name": "updateSmtp", - "namespace": "projects", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "projectId", - "enabled", - "senderName", - "senderEmail", - "replyTo", - "host", - "port", - "username", - "password", - "secure" - ], - "required": [ - "projectId", - "enabled" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/project" - } - ], - "description": "Update the SMTP configuration for your project. Use this endpoint to configure your project's SMTP provider with your custom settings for sending transactional emails. ", - "demo": "projects\/update-smtp.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "projects.updateSMTP" - } - }, - { - "name": "updateSMTP", - "namespace": "projects", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "projectId", - "enabled", - "senderName", - "senderEmail", - "replyTo", - "host", - "port", - "username", - "password", - "secure" - ], - "required": [ - "projectId", - "enabled" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/project" - } - ], - "description": "Update the SMTP configuration for your project. Use this endpoint to configure your project's SMTP provider with your custom settings for sending transactional emails. ", - "demo": "projects\/update-smtp.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/create.md", "auth": { "Project": [] } @@ -41056,81 +40743,93 @@ "Project": [] } ], - "parameters": [ - { - "name": "projectId", - "description": "Project unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PROJECT_ID>" - }, - "in": "path" - } - ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "enabled": { - "type": "boolean", - "description": "Enable custom SMTP service", - "x-example": false + "projectId": { + "type": "string", + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, and hyphen. Can't start with a special char. Max length is 36 chars.", + "x-example": null }, - "senderName": { + "name": { "type": "string", - "description": "Name of the email sender", - "x-example": "<SENDER_NAME>" + "description": "Project name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "senderEmail": { + "teamId": { "type": "string", - "description": "Email of the sender", - "x-example": "email@example.com", - "format": "email" + "description": "Team unique ID.", + "x-example": "<TEAM_ID>" }, - "replyTo": { + "region": { "type": "string", - "description": "Reply to email", - "x-example": "email@example.com", - "format": "email" + "description": "Project Region.", + "x-example": "fra", + "enum": [ + "fra", + "nyc", + "syd", + "sfo", + "sgp", + "tor" + ], + "x-enum-name": null, + "x-enum-keys": [] }, - "host": { + "description": { "type": "string", - "description": "SMTP server host name", - "x-example": null + "description": "Project description. Max length: 256 chars.", + "x-example": "<DESCRIPTION>" }, - "port": { - "type": "integer", - "description": "SMTP server port", - "x-example": null, - "format": "int32" + "logo": { + "type": "string", + "description": "Project logo.", + "x-example": "<LOGO>" }, - "username": { + "url": { "type": "string", - "description": "SMTP server username", - "x-example": "<USERNAME>" + "description": "Project URL.", + "x-example": "https:\/\/example.com", + "format": "url" }, - "password": { + "legalName": { "type": "string", - "description": "SMTP server password", - "x-example": "<PASSWORD>" + "description": "Project legal Name. Max length: 256 chars.", + "x-example": "<LEGAL_NAME>" }, - "secure": { + "legalCountry": { "type": "string", - "description": "Does SMTP server use secure connection", - "x-example": "tls", - "enum": [ - "tls", - "ssl" - ], - "x-enum-name": "SMTPSecure", - "x-enum-keys": [] + "description": "Project legal Country. Max length: 256 chars.", + "x-example": "<LEGAL_COUNTRY>" + }, + "legalState": { + "type": "string", + "description": "Project legal State. Max length: 256 chars.", + "x-example": "<LEGAL_STATE>" + }, + "legalCity": { + "type": "string", + "description": "Project legal City. Max length: 256 chars.", + "x-example": "<LEGAL_CITY>" + }, + "legalAddress": { + "type": "string", + "description": "Project legal Address. Max length: 256 chars.", + "x-example": "<LEGAL_ADDRESS>" + }, + "legalTaxId": { + "type": "string", + "description": "Project legal Tax ID. Max length: 256 chars.", + "x-example": "<LEGAL_TAX_ID>" } }, "required": [ - "enabled" + "projectId", + "name", + "teamId" ] } } @@ -41138,117 +40837,103 @@ } } }, - "\/projects\/{projectId}\/smtp\/tests": { - "post": { - "summary": "Create SMTP test", - "operationId": "projectsCreateSmtpTest", + "\/projects\/{projectId}": { + "get": { + "summary": "Get project", + "operationId": "projectsGet", "tags": [ "projects" ], - "description": "Send a test email to verify SMTP configuration. ", + "description": "Get a project by its unique ID. This endpoint allows you to retrieve the project's details, including its name, description, team, region, and other metadata. ", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createSmtpTest", - "group": "templates", - "weight": 92, + "method": "get", + "group": "projects", + "weight": 57, "cookies": false, "type": "", - "demo": "projects\/create-smtp-test.md", + "demo": "projects\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "projects.read", "platforms": [ "console" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/create-smtp-test.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "projects.createSMTPTest" - }, - "methods": [ - { - "name": "createSmtpTest", - "namespace": "projects", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "projectId", - "emails", - "senderName", - "senderEmail", - "replyTo", - "host", - "port", - "username", - "password", - "secure" - ], - "required": [ - "projectId", - "emails", - "senderName", - "senderEmail", - "host" - ], - "responses": [ - { - "code": 204 - } - ], - "description": "Send a test email to verify SMTP configuration. ", - "demo": "projects\/create-smtp-test.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "projects.createSMTPTest" - } + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/get.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" }, - { - "name": "createSMTPTest", - "namespace": "projects", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "projectId", - "emails", - "senderName", - "senderEmail", - "replyTo", - "host", - "port", - "username", - "password", - "secure" - ], - "required": [ - "projectId", - "emails", - "senderName", - "senderEmail", - "host" - ], - "responses": [ - { - "code": 204 + "in": "path" + } + ] + }, + "patch": { + "summary": "Update project", + "operationId": "projectsUpdate", + "tags": [ + "projects" + ], + "description": "Update a project by its unique ID.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" } - ], - "description": "Send a test email to verify SMTP configuration. ", - "demo": "projects\/create-smtp-test.md", - "public": true + } } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "update", + "group": "projects", + "weight": 797, + "cookies": false, + "type": "", + "demo": "projects\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update.md", "auth": { "Project": [] } @@ -41276,104 +40961,86 @@ "schema": { "type": "object", "properties": { - "emails": { - "type": "array", - "description": "Array of emails to send test email to. Maximum of 10 emails are allowed.", - "x-example": null, - "items": { - "type": "string" - } + "name": { + "type": "string", + "description": "Project name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "senderName": { + "description": { "type": "string", - "description": "Name of the email sender", - "x-example": "<SENDER_NAME>" + "description": "Project description. Max length: 256 chars.", + "x-example": "<DESCRIPTION>" }, - "senderEmail": { + "logo": { "type": "string", - "description": "Email of the sender", - "x-example": "email@example.com", - "format": "email" + "description": "Project logo.", + "x-example": "<LOGO>" }, - "replyTo": { + "url": { "type": "string", - "description": "Reply to email", - "x-example": "email@example.com", - "format": "email" + "description": "Project URL.", + "x-example": "https:\/\/example.com", + "format": "url" }, - "host": { + "legalName": { "type": "string", - "description": "SMTP server host name", - "x-example": null + "description": "Project legal name. Max length: 256 chars.", + "x-example": "<LEGAL_NAME>" }, - "port": { - "type": "integer", - "description": "SMTP server port", - "x-example": null, - "format": "int32" + "legalCountry": { + "type": "string", + "description": "Project legal country. Max length: 256 chars.", + "x-example": "<LEGAL_COUNTRY>" }, - "username": { + "legalState": { "type": "string", - "description": "SMTP server username", - "x-example": "<USERNAME>" + "description": "Project legal state. Max length: 256 chars.", + "x-example": "<LEGAL_STATE>" }, - "password": { + "legalCity": { "type": "string", - "description": "SMTP server password", - "x-example": "<PASSWORD>" + "description": "Project legal city. Max length: 256 chars.", + "x-example": "<LEGAL_CITY>" }, - "secure": { + "legalAddress": { "type": "string", - "description": "Does SMTP server use secure connection", - "x-example": "tls", - "enum": [ - "tls", - "ssl" - ], - "x-enum-name": "SMTPSecure", - "x-enum-keys": [] + "description": "Project legal address. Max length: 256 chars.", + "x-example": "<LEGAL_ADDRESS>" + }, + "legalTaxId": { + "type": "string", + "description": "Project legal tax ID. Max length: 256 chars.", + "x-example": "<LEGAL_TAX_ID>" } }, "required": [ - "emails", - "senderName", - "senderEmail", - "host" + "name" ] } } } } - } - }, - "\/projects\/{projectId}\/team": { - "patch": { - "summary": "Update project team", - "operationId": "projectsUpdateTeam", + }, + "delete": { + "summary": "Delete project", + "operationId": "projectsDelete", "tags": [ "projects" ], - "description": "Update the team ID of a project allowing for it to be transferred to another team.", + "description": "Delete a project by its unique ID.", "responses": { - "200": { - "description": "Project", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/project" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateTeam", + "method": "delete", "group": "projects", - "weight": 774, + "weight": 73, "cookies": false, "type": "", - "demo": "projects\/update-team.md", + "demo": "projects\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -41383,7 +41050,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-team.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/delete.md", "auth": { "Project": [] } @@ -41404,56 +41071,37 @@ }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "teamId": { - "type": "string", - "description": "Team ID of the team to transfer project to.", - "x-example": "<TEAM_ID>" - } - }, - "required": [ - "teamId" - ] - } - } - } - } + ] } }, - "\/projects\/{projectId}\/templates\/email\/{type}\/{locale}": { - "get": { - "summary": "Get custom email template", - "operationId": "projectsGetEmailTemplate", + "\/projects\/{projectId}\/api": { + "patch": { + "summary": "Update API status", + "operationId": "projectsUpdateApiStatus", "tags": [ "projects" ], - "description": "Get a custom email template for the specified locale and type. This endpoint returns the template content, subject, and other configuration details. ", + "description": "Update the status of a specific API type. Use this endpoint to enable or disable API types such as REST, GraphQL and Realtime.", "responses": { "200": { - "description": "EmailTemplate", + "description": "Project", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/emailTemplate" + "$ref": "#\/components\/schemas\/project" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "getEmailTemplate", - "group": "templates", - "weight": 94, + "method": "updateApiStatus", + "group": "projects", + "weight": 60, "cookies": false, "type": "", - "demo": "projects\/get-email-template.md", + "demo": "projects\/update-api-status.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -41462,8 +41110,72 @@ "console" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/get-email-template.md", + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-api-status.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "projects.updateAPIStatus" + }, + "methods": [ + { + "name": "updateApiStatus", + "namespace": "projects", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "projectId", + "api", + "status" + ], + "required": [ + "projectId", + "api", + "status" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/project" + } + ], + "description": "Update the status of a specific API type. Use this endpoint to enable or disable API types such as REST, GraphQL and Realtime.", + "demo": "projects\/update-api-status.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "projects.updateAPIStatus" + } + }, + { + "name": "updateAPIStatus", + "namespace": "projects", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "projectId", + "api", + "status" + ], + "required": [ + "projectId", + "api", + "status" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/project" + } + ], + "description": "Update the status of a specific API type. Use this endpoint to enable or disable API types such as REST, GraphQL and Realtime.", + "demo": "projects\/update-api-status.md", + "public": true + } + ], "auth": { "Project": [] } @@ -41483,202 +41195,70 @@ "x-example": "<PROJECT_ID>" }, "in": "path" - }, - { - "name": "type", - "description": "Template type", - "required": true, - "schema": { - "type": "string", - "x-example": "verification", - "enum": [ - "verification", - "magicSession", - "recovery", - "invitation", - "mfaChallenge", - "sessionAlert", - "otpSession" - ], - "x-enum-name": "EmailTemplateType", - "x-enum-keys": [] - }, - "in": "path" - }, - { - "name": "locale", - "description": "Template locale", - "required": true, - "schema": { - "type": "string", - "x-example": "af", - "enum": [ - "af", - "ar-ae", - "ar-bh", - "ar-dz", - "ar-eg", - "ar-iq", - "ar-jo", - "ar-kw", - "ar-lb", - "ar-ly", - "ar-ma", - "ar-om", - "ar-qa", - "ar-sa", - "ar-sy", - "ar-tn", - "ar-ye", - "as", - "az", - "be", - "bg", - "bh", - "bn", - "bs", - "ca", - "cs", - "cy", - "da", - "de", - "de-at", - "de-ch", - "de-li", - "de-lu", - "el", - "en", - "en-au", - "en-bz", - "en-ca", - "en-gb", - "en-ie", - "en-jm", - "en-nz", - "en-tt", - "en-us", - "en-za", - "eo", - "es", - "es-ar", - "es-bo", - "es-cl", - "es-co", - "es-cr", - "es-do", - "es-ec", - "es-gt", - "es-hn", - "es-mx", - "es-ni", - "es-pa", - "es-pe", - "es-pr", - "es-py", - "es-sv", - "es-uy", - "es-ve", - "et", - "eu", - "fa", - "fi", - "fo", - "fr", - "fr-be", - "fr-ca", - "fr-ch", - "fr-lu", - "ga", - "gd", - "he", - "hi", - "hr", - "hu", - "id", - "is", - "it", - "it-ch", - "ja", - "ji", - "ko", - "ku", - "lt", - "lv", - "mk", - "ml", - "ms", - "mt", - "nb", - "ne", - "nl", - "nl-be", - "nn", - "no", - "pa", - "pl", - "pt", - "pt-br", - "rm", - "ro", - "ro-md", - "ru", - "ru-md", - "sb", - "sk", - "sl", - "sq", - "sr", - "sv", - "sv-fi", - "th", - "tn", - "tr", - "ts", - "ua", - "ur", - "ve", - "vi", - "xh", - "zh-cn", - "zh-hk", - "zh-sg", - "zh-tw", - "zu" - ], - "x-enum-name": "EmailTemplateLocale", - "x-enum-keys": [] - }, - "in": "path" } - ] - }, + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "api": { + "type": "string", + "description": "API name.", + "x-example": "rest", + "enum": [ + "rest", + "graphql", + "realtime" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "status": { + "type": "boolean", + "description": "API status.", + "x-example": false + } + }, + "required": [ + "api", + "status" + ] + } + } + } + } + } + }, + "\/projects\/{projectId}\/api\/all": { "patch": { - "summary": "Update custom email templates", - "operationId": "projectsUpdateEmailTemplate", + "summary": "Update all API status", + "operationId": "projectsUpdateApiStatusAll", "tags": [ "projects" ], - "description": "Update a custom email template for the specified locale and type. Use this endpoint to modify the content of your email templates.", + "description": "Update the status of all API types. Use this endpoint to enable or disable API types such as REST, GraphQL and Realtime all at once.", "responses": { "200": { - "description": "EmailTemplate", + "description": "Project", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/emailTemplate" + "$ref": "#\/components\/schemas\/project" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "updateEmailTemplate", - "group": "templates", - "weight": 96, + "method": "updateApiStatusAll", + "group": "projects", + "weight": 61, "cookies": false, "type": "", - "demo": "projects\/update-email-template.md", + "demo": "projects\/update-api-status-all.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -41687,8 +41267,68 @@ "console" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-email-template.md", + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-api-status-all.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "projects.updateAPIStatusAll" + }, + "methods": [ + { + "name": "updateApiStatusAll", + "namespace": "projects", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "projectId", + "status" + ], + "required": [ + "projectId", + "status" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/project" + } + ], + "description": "Update the status of all API types. Use this endpoint to enable or disable API types such as REST, GraphQL and Realtime all at once.", + "demo": "projects\/update-api-status-all.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "projects.updateAPIStatusAll" + } + }, + { + "name": "updateAPIStatusAll", + "namespace": "projects", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "projectId", + "status" + ], + "required": [ + "projectId", + "status" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/project" + } + ], + "description": "Update the status of all API types. Use this endpoint to enable or disable API types such as REST, GraphQL and Realtime all at once.", + "demo": "projects\/update-api-status-all.md", + "public": true + } + ], "auth": { "Project": [] } @@ -41708,172 +41348,6 @@ "x-example": "<PROJECT_ID>" }, "in": "path" - }, - { - "name": "type", - "description": "Template type", - "required": true, - "schema": { - "type": "string", - "x-example": "verification", - "enum": [ - "verification", - "magicSession", - "recovery", - "invitation", - "mfaChallenge", - "sessionAlert", - "otpSession" - ], - "x-enum-name": "EmailTemplateType", - "x-enum-keys": [] - }, - "in": "path" - }, - { - "name": "locale", - "description": "Template locale", - "required": true, - "schema": { - "type": "string", - "x-example": "af", - "enum": [ - "af", - "ar-ae", - "ar-bh", - "ar-dz", - "ar-eg", - "ar-iq", - "ar-jo", - "ar-kw", - "ar-lb", - "ar-ly", - "ar-ma", - "ar-om", - "ar-qa", - "ar-sa", - "ar-sy", - "ar-tn", - "ar-ye", - "as", - "az", - "be", - "bg", - "bh", - "bn", - "bs", - "ca", - "cs", - "cy", - "da", - "de", - "de-at", - "de-ch", - "de-li", - "de-lu", - "el", - "en", - "en-au", - "en-bz", - "en-ca", - "en-gb", - "en-ie", - "en-jm", - "en-nz", - "en-tt", - "en-us", - "en-za", - "eo", - "es", - "es-ar", - "es-bo", - "es-cl", - "es-co", - "es-cr", - "es-do", - "es-ec", - "es-gt", - "es-hn", - "es-mx", - "es-ni", - "es-pa", - "es-pe", - "es-pr", - "es-py", - "es-sv", - "es-uy", - "es-ve", - "et", - "eu", - "fa", - "fi", - "fo", - "fr", - "fr-be", - "fr-ca", - "fr-ch", - "fr-lu", - "ga", - "gd", - "he", - "hi", - "hr", - "hu", - "id", - "is", - "it", - "it-ch", - "ja", - "ji", - "ko", - "ku", - "lt", - "lv", - "mk", - "ml", - "ms", - "mt", - "nb", - "ne", - "nl", - "nl-be", - "nn", - "no", - "pa", - "pl", - "pt", - "pt-br", - "rm", - "ro", - "ro-md", - "ru", - "ru-md", - "sb", - "sk", - "sl", - "sq", - "sr", - "sv", - "sv-fi", - "th", - "tn", - "tr", - "ts", - "ua", - "ur", - "ve", - "vi", - "xh", - "zh-cn", - "zh-hk", - "zh-sg", - "zh-tw", - "zu" - ], - "x-enum-name": "EmailTemplateLocale", - "x-enum-keys": [] - }, - "in": "path" } ], "requestBody": { @@ -41882,57 +41356,36 @@ "schema": { "type": "object", "properties": { - "subject": { - "type": "string", - "description": "Email Subject", - "x-example": "<SUBJECT>" - }, - "message": { - "type": "string", - "description": "Template message", - "x-example": "<MESSAGE>" - }, - "senderName": { - "type": "string", - "description": "Name of the email sender", - "x-example": "<SENDER_NAME>" - }, - "senderEmail": { - "type": "string", - "description": "Email of the sender", - "x-example": "email@example.com", - "format": "email" - }, - "replyTo": { - "type": "string", - "description": "Reply to email", - "x-example": "email@example.com", - "format": "email" + "status": { + "type": "boolean", + "description": "API status.", + "x-example": false } }, "required": [ - "subject", - "message" + "status" ] } } } } - }, - "delete": { - "summary": "Delete custom email template", - "operationId": "projectsDeleteEmailTemplate", + } + }, + "\/projects\/{projectId}\/auth\/duration": { + "patch": { + "summary": "Update project authentication duration", + "operationId": "projectsUpdateAuthDuration", "tags": [ "projects" ], - "description": "Reset a custom email template to its default value. This endpoint removes any custom content and restores the template to its original state. ", + "description": "Update how long sessions created within a project should stay active for.", "responses": { "200": { - "description": "EmailTemplate", + "description": "Project", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/emailTemplate" + "$ref": "#\/components\/schemas\/project" } } } @@ -41940,12 +41393,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteEmailTemplate", - "group": "templates", - "weight": 98, + "method": "updateAuthDuration", + "group": "auth", + "weight": 66, "cookies": false, "type": "", - "demo": "projects\/delete-email-template.md", + "demo": "projects\/update-auth-duration.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -41955,7 +41408,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/delete-email-template.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-auth-duration.md", "auth": { "Project": [] } @@ -41975,204 +41428,58 @@ "x-example": "<PROJECT_ID>" }, "in": "path" - }, - { - "name": "type", - "description": "Template type", - "required": true, - "schema": { - "type": "string", - "x-example": "verification", - "enum": [ - "verification", - "magicSession", - "recovery", - "invitation", - "mfaChallenge", - "sessionAlert", - "otpSession" - ], - "x-enum-name": "EmailTemplateType", - "x-enum-keys": [] - }, - "in": "path" - }, - { - "name": "locale", - "description": "Template locale", - "required": true, - "schema": { - "type": "string", - "x-example": "af", - "enum": [ - "af", - "ar-ae", - "ar-bh", - "ar-dz", - "ar-eg", - "ar-iq", - "ar-jo", - "ar-kw", - "ar-lb", - "ar-ly", - "ar-ma", - "ar-om", - "ar-qa", - "ar-sa", - "ar-sy", - "ar-tn", - "ar-ye", - "as", - "az", - "be", - "bg", - "bh", - "bn", - "bs", - "ca", - "cs", - "cy", - "da", - "de", - "de-at", - "de-ch", - "de-li", - "de-lu", - "el", - "en", - "en-au", - "en-bz", - "en-ca", - "en-gb", - "en-ie", - "en-jm", - "en-nz", - "en-tt", - "en-us", - "en-za", - "eo", - "es", - "es-ar", - "es-bo", - "es-cl", - "es-co", - "es-cr", - "es-do", - "es-ec", - "es-gt", - "es-hn", - "es-mx", - "es-ni", - "es-pa", - "es-pe", - "es-pr", - "es-py", - "es-sv", - "es-uy", - "es-ve", - "et", - "eu", - "fa", - "fi", - "fo", - "fr", - "fr-be", - "fr-ca", - "fr-ch", - "fr-lu", - "ga", - "gd", - "he", - "hi", - "hr", - "hu", - "id", - "is", - "it", - "it-ch", - "ja", - "ji", - "ko", - "ku", - "lt", - "lv", - "mk", - "ml", - "ms", - "mt", - "nb", - "ne", - "nl", - "nl-be", - "nn", - "no", - "pa", - "pl", - "pt", - "pt-br", - "rm", - "ro", - "ro-md", - "ru", - "ru-md", - "sb", - "sk", - "sl", - "sq", - "sr", - "sv", - "sv-fi", - "th", - "tn", - "tr", - "ts", - "ua", - "ur", - "ve", - "vi", - "xh", - "zh-cn", - "zh-hk", - "zh-sg", - "zh-tw", - "zu" - ], - "x-enum-name": "EmailTemplateLocale", - "x-enum-keys": [] - }, - "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "duration": { + "type": "integer", + "description": "Project session length in seconds. Max length: 31536000 seconds.", + "x-example": 0, + "format": "int32" + } + }, + "required": [ + "duration" + ] + } + } + } + } } }, - "\/projects\/{projectId}\/templates\/sms\/{type}\/{locale}": { - "get": { - "summary": "Get custom SMS template", - "operationId": "projectsGetSmsTemplate", + "\/projects\/{projectId}\/auth\/limit": { + "patch": { + "summary": "Update project users limit", + "operationId": "projectsUpdateAuthLimit", "tags": [ "projects" ], - "description": "Get a custom SMS template for the specified locale and type returning it's contents.", + "description": "Update the maximum number of users allowed in this project. Set to 0 for unlimited users. ", "responses": { "200": { - "description": "SmsTemplate", + "description": "Project", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/smsTemplate" + "$ref": "#\/components\/schemas\/project" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "getSmsTemplate", - "group": "templates", - "weight": 93, + "method": "updateAuthLimit", + "group": "auth", + "weight": 65, "cookies": false, "type": "", - "demo": "projects\/get-sms-template.md", + "demo": "projects\/update-auth-limit.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -42181,72 +41488,8 @@ "console" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/get-sms-template.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "projects.getSMSTemplate" - }, - "methods": [ - { - "name": "getSmsTemplate", - "namespace": "projects", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "projectId", - "type", - "locale" - ], - "required": [ - "projectId", - "type", - "locale" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/smsTemplate" - } - ], - "description": "Get a custom SMS template for the specified locale and type returning it's contents.", - "demo": "projects\/get-sms-template.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "projects.getSMSTemplate" - } - }, - { - "name": "getSMSTemplate", - "namespace": "projects", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "projectId", - "type", - "locale" - ], - "required": [ - "projectId", - "type", - "locale" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/smsTemplate" - } - ], - "description": "Get a custom SMS template for the specified locale and type returning it's contents.", - "demo": "projects\/get-sms-template.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-auth-limit.md", "auth": { "Project": [] } @@ -42266,199 +41509,58 @@ "x-example": "<PROJECT_ID>" }, "in": "path" - }, - { - "name": "type", - "description": "Template type", - "required": true, - "schema": { - "type": "string", - "x-example": "verification", - "enum": [ - "verification", - "login", - "invitation", - "mfaChallenge" - ], - "x-enum-name": "SmsTemplateType", - "x-enum-keys": [] - }, - "in": "path" - }, - { - "name": "locale", - "description": "Template locale", - "required": true, - "schema": { - "type": "string", - "x-example": "af", - "enum": [ - "af", - "ar-ae", - "ar-bh", - "ar-dz", - "ar-eg", - "ar-iq", - "ar-jo", - "ar-kw", - "ar-lb", - "ar-ly", - "ar-ma", - "ar-om", - "ar-qa", - "ar-sa", - "ar-sy", - "ar-tn", - "ar-ye", - "as", - "az", - "be", - "bg", - "bh", - "bn", - "bs", - "ca", - "cs", - "cy", - "da", - "de", - "de-at", - "de-ch", - "de-li", - "de-lu", - "el", - "en", - "en-au", - "en-bz", - "en-ca", - "en-gb", - "en-ie", - "en-jm", - "en-nz", - "en-tt", - "en-us", - "en-za", - "eo", - "es", - "es-ar", - "es-bo", - "es-cl", - "es-co", - "es-cr", - "es-do", - "es-ec", - "es-gt", - "es-hn", - "es-mx", - "es-ni", - "es-pa", - "es-pe", - "es-pr", - "es-py", - "es-sv", - "es-uy", - "es-ve", - "et", - "eu", - "fa", - "fi", - "fo", - "fr", - "fr-be", - "fr-ca", - "fr-ch", - "fr-lu", - "ga", - "gd", - "he", - "hi", - "hr", - "hu", - "id", - "is", - "it", - "it-ch", - "ja", - "ji", - "ko", - "ku", - "lt", - "lv", - "mk", - "ml", - "ms", - "mt", - "nb", - "ne", - "nl", - "nl-be", - "nn", - "no", - "pa", - "pl", - "pt", - "pt-br", - "rm", - "ro", - "ro-md", - "ru", - "ru-md", - "sb", - "sk", - "sl", - "sq", - "sr", - "sv", - "sv-fi", - "th", - "tn", - "tr", - "ts", - "ua", - "ur", - "ve", - "vi", - "xh", - "zh-cn", - "zh-hk", - "zh-sg", - "zh-tw", - "zu" - ], - "x-enum-name": "SmsTemplateLocale", - "x-enum-keys": [] - }, - "in": "path" } - ] - }, + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "limit": { + "type": "integer", + "description": "Set the max number of users allowed in this project. Use 0 for unlimited.", + "x-example": 0, + "format": "int32" + } + }, + "required": [ + "limit" + ] + } + } + } + } + } + }, + "\/projects\/{projectId}\/auth\/max-sessions": { "patch": { - "summary": "Update custom SMS template", - "operationId": "projectsUpdateSmsTemplate", + "summary": "Update project user sessions limit", + "operationId": "projectsUpdateAuthSessionsLimit", "tags": [ "projects" ], - "description": "Update a custom SMS template for the specified locale and type. Use this endpoint to modify the content of your SMS templates. ", + "description": "Update the maximum number of sessions allowed per user within the project, if the limit is hit the oldest session will be deleted to make room for new sessions.", "responses": { "200": { - "description": "SmsTemplate", + "description": "Project", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/smsTemplate" + "$ref": "#\/components\/schemas\/project" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateSmsTemplate", - "group": "templates", - "weight": 95, + "method": "updateAuthSessionsLimit", + "group": "auth", + "weight": 71, "cookies": false, "type": "", - "demo": "projects\/update-sms-template.md", + "demo": "projects\/update-auth-sessions-limit.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -42467,76 +41569,181 @@ "console" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-sms-template.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "projects.updateSMSTemplate" - }, - "methods": [ - { - "name": "updateSmsTemplate", - "namespace": "projects", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "projectId", - "type", - "locale", - "message" - ], - "required": [ - "projectId", - "type", - "locale", - "message" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/smsTemplate" - } - ], - "description": "Update a custom SMS template for the specified locale and type. Use this endpoint to modify the content of your SMS templates. ", - "demo": "projects\/update-sms-template.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "projects.updateSMSTemplate" + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-auth-sessions-limit.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "limit": { + "type": "integer", + "description": "Set the max number of users allowed in this project. Value allowed is between 1-100. Default is 10", + "x-example": 1, + "format": "int32" + } + }, + "required": [ + "limit" + ] + } + } + } + } + } + }, + "\/projects\/{projectId}\/auth\/memberships-privacy": { + "patch": { + "summary": "Update project memberships privacy attributes", + "operationId": "projectsUpdateMembershipsPrivacy", + "tags": [ + "projects" + ], + "description": "Update project membership privacy settings. Use this endpoint to control what user information is visible to other team members, such as user name, email, and MFA status. ", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateMembershipsPrivacy", + "group": "auth", + "weight": 64, + "cookies": false, + "type": "", + "demo": "projects\/update-memberships-privacy.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-memberships-privacy.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" }, - { - "name": "updateSMSTemplate", - "namespace": "projects", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "projectId", - "type", - "locale", - "message" - ], - "required": [ - "projectId", - "type", - "locale", - "message" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/smsTemplate" + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userName": { + "type": "boolean", + "description": "Set to true to show userName to members of a team.", + "x-example": false + }, + "userEmail": { + "type": "boolean", + "description": "Set to true to show email to members of a team.", + "x-example": false + }, + "mfa": { + "type": "boolean", + "description": "Set to true to show mfa to members of a team.", + "x-example": false + } + }, + "required": [ + "userName", + "userEmail", + "mfa" + ] + } + } + } + } + } + }, + "\/projects\/{projectId}\/auth\/mock-numbers": { + "patch": { + "summary": "Update the mock numbers for the project", + "operationId": "projectsUpdateMockNumbers", + "tags": [ + "projects" + ], + "description": "Update the list of mock phone numbers for testing. Use these numbers to bypass SMS verification in development. ", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" } - ], - "description": "Update a custom SMS template for the specified locale and type. Use this endpoint to modify the content of your SMS templates. ", - "demo": "projects\/update-sms-template.md", - "public": true + } } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateMockNumbers", + "group": "auth", + "weight": 72, + "cookies": false, + "type": "", + "demo": "projects\/update-mock-numbers.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-mock-numbers.md", "auth": { "Project": [] } @@ -42556,167 +41763,167 @@ "x-example": "<PROJECT_ID>" }, "in": "path" - }, + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "numbers": { + "type": "array", + "description": "An array of mock numbers and their corresponding verification codes (OTPs). Each number should be a valid E.164 formatted phone number. Maximum of 10 numbers are allowed.", + "x-example": null, + "items": { + "type": "object" + } + } + }, + "required": [ + "numbers" + ] + } + } + } + } + } + }, + "\/projects\/{projectId}\/auth\/password-dictionary": { + "patch": { + "summary": "Update authentication password dictionary status. Use this endpoint to enable or disable the dicitonary check for user password", + "operationId": "projectsUpdateAuthPasswordDictionary", + "tags": [ + "projects" + ], + "description": "Enable or disable checking user passwords against common passwords dictionary. This helps ensure users don't use common and insecure passwords. ", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateAuthPasswordDictionary", + "group": "auth", + "weight": 69, + "cookies": false, + "type": "", + "demo": "projects\/update-auth-password-dictionary.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-auth-password-dictionary.md", + "auth": { + "Project": [] + } + }, + "security": [ { - "name": "type", - "description": "Template type", + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", "required": true, "schema": { "type": "string", - "x-example": "verification", - "enum": [ - "verification", - "login", - "invitation", - "mfaChallenge" - ], - "x-enum-name": "SmsTemplateType", - "x-enum-keys": [] + "x-example": "<PROJECT_ID>" }, "in": "path" - }, + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Set whether or not to enable checking user's password against most commonly used passwords. Default is false.", + "x-example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } + } + }, + "\/projects\/{projectId}\/auth\/password-history": { + "patch": { + "summary": "Update authentication password history. Use this endpoint to set the number of password history to save and 0 to disable password history.", + "operationId": "projectsUpdateAuthPasswordHistory", + "tags": [ + "projects" + ], + "description": "Update the authentication password history requirement. Use this endpoint to require new passwords to be different than the last X amount of previously used ones.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateAuthPasswordHistory", + "group": "auth", + "weight": 68, + "cookies": false, + "type": "", + "demo": "projects\/update-auth-password-history.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-auth-password-history.md", + "auth": { + "Project": [] + } + }, + "security": [ { - "name": "locale", - "description": "Template locale", + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", "required": true, "schema": { "type": "string", - "x-example": "af", - "enum": [ - "af", - "ar-ae", - "ar-bh", - "ar-dz", - "ar-eg", - "ar-iq", - "ar-jo", - "ar-kw", - "ar-lb", - "ar-ly", - "ar-ma", - "ar-om", - "ar-qa", - "ar-sa", - "ar-sy", - "ar-tn", - "ar-ye", - "as", - "az", - "be", - "bg", - "bh", - "bn", - "bs", - "ca", - "cs", - "cy", - "da", - "de", - "de-at", - "de-ch", - "de-li", - "de-lu", - "el", - "en", - "en-au", - "en-bz", - "en-ca", - "en-gb", - "en-ie", - "en-jm", - "en-nz", - "en-tt", - "en-us", - "en-za", - "eo", - "es", - "es-ar", - "es-bo", - "es-cl", - "es-co", - "es-cr", - "es-do", - "es-ec", - "es-gt", - "es-hn", - "es-mx", - "es-ni", - "es-pa", - "es-pe", - "es-pr", - "es-py", - "es-sv", - "es-uy", - "es-ve", - "et", - "eu", - "fa", - "fi", - "fo", - "fr", - "fr-be", - "fr-ca", - "fr-ch", - "fr-lu", - "ga", - "gd", - "he", - "hi", - "hr", - "hu", - "id", - "is", - "it", - "it-ch", - "ja", - "ji", - "ko", - "ku", - "lt", - "lv", - "mk", - "ml", - "ms", - "mt", - "nb", - "ne", - "nl", - "nl-be", - "nn", - "no", - "pa", - "pl", - "pt", - "pt-br", - "rm", - "ro", - "ro-md", - "ru", - "ru-md", - "sb", - "sk", - "sl", - "sq", - "sr", - "sv", - "sv-fi", - "th", - "tn", - "tr", - "ts", - "ua", - "ur", - "ve", - "vi", - "xh", - "zh-cn", - "zh-hk", - "zh-sg", - "zh-tw", - "zu" - ], - "x-enum-name": "SmsTemplateLocale", - "x-enum-keys": [] + "x-example": "<PROJECT_ID>" }, "in": "path" } @@ -42727,14 +41934,6952 @@ "schema": { "type": "object", "properties": { - "message": { + "limit": { + "type": "integer", + "description": "Set the max number of passwords to store in user history. User can't choose a new password that is already stored in the password history list. Max number of passwords allowed in history is20. Default value is 0", + "x-example": 0, + "format": "int32" + } + }, + "required": [ + "limit" + ] + } + } + } + } + } + }, + "\/projects\/{projectId}\/auth\/personal-data": { + "patch": { + "summary": "Update personal data check", + "operationId": "projectsUpdatePersonalDataCheck", + "tags": [ + "projects" + ], + "description": "Enable or disable checking user passwords against their personal data. This helps prevent users from using personal information in their passwords. ", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updatePersonalDataCheck", + "group": "auth", + "weight": 70, + "cookies": false, + "type": "", + "demo": "projects\/update-personal-data-check.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-personal-data-check.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Set whether or not to check a password for similarity with personal data. Default is false.", + "x-example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } + } + }, + "\/projects\/{projectId}\/auth\/session-alerts": { + "patch": { + "summary": "Update project sessions emails", + "operationId": "projectsUpdateSessionAlerts", + "tags": [ + "projects" + ], + "description": "Enable or disable session email alerts. When enabled, users will receive email notifications when new sessions are created.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateSessionAlerts", + "group": "auth", + "weight": 63, + "cookies": false, + "type": "", + "demo": "projects\/update-session-alerts.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-session-alerts.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "alerts": { + "type": "boolean", + "description": "Set to true to enable session emails.", + "x-example": false + } + }, + "required": [ + "alerts" + ] + } + } + } + } + } + }, + "\/projects\/{projectId}\/auth\/session-invalidation": { + "patch": { + "summary": "Update invalidate session option of the project", + "operationId": "projectsUpdateSessionInvalidation", + "tags": [ + "projects" + ], + "description": "Invalidate all existing sessions. An optional auth security setting for projects, and enabled by default for console project.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateSessionInvalidation", + "group": "auth", + "weight": 99, + "cookies": false, + "type": "", + "demo": "projects\/update-session-invalidation.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-session-invalidation.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Update authentication session invalidation status. Use this endpoint to enable or disable session invalidation on password change", + "x-example": false + } + }, + "required": [ + "enabled" + ] + } + } + } + } + } + }, + "\/projects\/{projectId}\/auth\/{method}": { + "patch": { + "summary": "Update project auth method status. Use this endpoint to enable or disable a given auth method for this project.", + "operationId": "projectsUpdateAuthStatus", + "tags": [ + "projects" + ], + "description": "Update the status of a specific authentication method. Use this endpoint to enable or disable different authentication methods such as email, magic urls or sms in your project. ", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateAuthStatus", + "group": "auth", + "weight": 67, + "cookies": false, + "type": "", + "demo": "projects\/update-auth-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-auth-status.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "method", + "description": "Auth Method. Possible values: email-password,magic-url,email-otp,anonymous,invites,jwt,phone", + "required": true, + "schema": { + "type": "string", + "x-example": "email-password", + "enum": [ + "email-password", + "magic-url", + "email-otp", + "anonymous", + "invites", + "jwt", + "phone" + ], + "x-enum-name": "AuthMethod", + "x-enum-keys": [] + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "status": { + "type": "boolean", + "description": "Set the status of this auth method.", + "x-example": false + } + }, + "required": [ + "status" + ] + } + } + } + } + } + }, + "\/projects\/{projectId}\/console-access": { + "patch": { + "summary": "Record console access to a project", + "operationId": "projectsUpdateConsoleAccess", + "tags": [ + "projects" + ], + "description": "Record console access to a project. This endpoint updates the last accessed timestamp for the project to track console activity.\n", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateConsoleAccess", + "group": null, + "weight": 793, + "cookies": false, + "type": "", + "demo": "projects\/update-console-access.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/projects\/update-console-access.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + } + ] + } + }, + "\/projects\/{projectId}\/dev-keys": { + "get": { + "summary": "List dev keys", + "operationId": "projectsListDevKeys", + "tags": [ + "projects" + ], + "description": "List all the project\\'s dev keys. Dev keys are project specific and allow you to bypass rate limits and get better error logging during development.'", + "responses": { + "200": { + "description": "Dev Keys List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/devKeyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listDevKeys", + "group": "devKeys", + "weight": 464, + "cookies": false, + "type": "", + "demo": "projects\/list-dev-keys.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "devKeys.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "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: accessedAt, expire", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create dev key", + "operationId": "projectsCreateDevKey", + "tags": [ + "projects" + ], + "description": "Create a new project dev key. Dev keys are project specific and allow you to bypass rate limits and get better error logging during development. Strictly meant for development purposes only.", + "responses": { + "201": { + "description": "DevKey", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/devKey" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createDevKey", + "group": "devKeys", + "weight": 461, + "cookies": false, + "type": "", + "demo": "projects\/create-dev-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "devKeys.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Key name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "expire": { + "type": "string", + "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format.", + "x-example": null + } + }, + "required": [ + "name", + "expire" + ] + } + } + } + } + } + }, + "\/projects\/{projectId}\/dev-keys\/{keyId}": { + "get": { + "summary": "Get dev key", + "operationId": "projectsGetDevKey", + "tags": [ + "projects" + ], + "description": "Get a project\\'s dev key by its unique ID. Dev keys are project specific and allow you to bypass rate limits and get better error logging during development.", + "responses": { + "200": { + "description": "DevKey", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/devKey" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getDevKey", + "group": "devKeys", + "weight": 463, + "cookies": false, + "type": "", + "demo": "projects\/get-dev-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "devKeys.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "keyId", + "description": "Key unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<KEY_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update dev key", + "operationId": "projectsUpdateDevKey", + "tags": [ + "projects" + ], + "description": "Update a project\\'s dev key by its unique ID. Use this endpoint to update a project\\'s dev key name or expiration time.'", + "responses": { + "200": { + "description": "DevKey", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/devKey" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateDevKey", + "group": "devKeys", + "weight": 462, + "cookies": false, + "type": "", + "demo": "projects\/update-dev-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "devKeys.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "keyId", + "description": "Key unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<KEY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Key name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "expire": { + "type": "string", + "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format.", + "x-example": null + } + }, + "required": [ + "name", + "expire" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete dev key", + "operationId": "projectsDeleteDevKey", + "tags": [ + "projects" + ], + "description": "Delete a project\\'s dev key by its unique ID. Once deleted, the key will no longer allow bypassing of rate limits and better logging of errors.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteDevKey", + "group": "devKeys", + "weight": 465, + "cookies": false, + "type": "", + "demo": "projects\/delete-dev-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "devKeys.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "keyId", + "description": "Key unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<KEY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/projects\/{projectId}\/jwts": { + "post": { + "summary": "Create JWT", + "operationId": "projectsCreateJWT", + "tags": [ + "projects" + ], + "description": "Create a new JWT token. This token can be used to authenticate users with custom scopes and expiration time. ", + "responses": { + "201": { + "description": "JWT", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/jwt" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createJWT", + "group": "auth", + "weight": 85, + "cookies": false, + "type": "", + "demo": "projects\/create-jwt.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/create-jwt.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "scopes": { + "type": "array", + "description": "List of scopes allowed for JWT key. Maximum of 100 scopes are allowed.", + "x-example": null, + "items": { + "type": "string", + "enum": [ + "sessions.write", + "users.read", + "users.write", + "teams.read", + "teams.write", + "databases.read", + "databases.write", + "collections.read", + "collections.write", + "tables.read", + "tables.write", + "attributes.read", + "attributes.write", + "columns.read", + "columns.write", + "indexes.read", + "indexes.write", + "documents.read", + "documents.write", + "rows.read", + "rows.write", + "files.read", + "files.write", + "buckets.read", + "buckets.write", + "functions.read", + "functions.write", + "sites.read", + "sites.write", + "log.read", + "log.write", + "execution.read", + "execution.write", + "locale.read", + "avatars.read", + "health.read", + "providers.read", + "providers.write", + "messages.read", + "messages.write", + "topics.read", + "topics.write", + "subscribers.read", + "subscribers.write", + "targets.read", + "targets.write", + "rules.read", + "rules.write", + "schedules.read", + "schedules.write", + "migrations.read", + "migrations.write", + "vcs.read", + "vcs.write", + "assistant.read", + "tokens.read", + "tokens.write", + "policies.write", + "policies.read", + "archives.read", + "archives.write", + "restorations.read", + "restorations.write", + "domains.read", + "domains.write", + "events.read" + ], + "x-enum-name": null, + "x-enum-keys": [] + } + }, + "duration": { + "type": "integer", + "description": "Time in seconds before JWT expires. Default duration is 900 seconds, and maximum is 3600 seconds.", + "x-example": 0, + "format": "int32" + } + }, + "required": [ + "scopes" + ] + } + } + } + } + } + }, + "\/projects\/{projectId}\/keys": { + "get": { + "summary": "List keys", + "operationId": "projectsListKeys", + "tags": [ + "projects" + ], + "description": "Get a list of all API keys from the current project. ", + "responses": { + "200": { + "description": "API Keys List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/keyList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listKeys", + "group": "keys", + "weight": 81, + "cookies": false, + "type": "", + "demo": "projects\/list-keys.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "keys.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/list-keys.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: expire, accessedAt, name, scopes", + "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", + "x-example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create key", + "operationId": "projectsCreateKey", + "tags": [ + "projects" + ], + "description": "Create a new API key. It's recommended to have multiple API keys with strict scopes for separate functions within your project.", + "responses": { + "201": { + "description": "Key", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/key" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createKey", + "group": "keys", + "weight": 80, + "cookies": false, + "type": "", + "demo": "projects\/create-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "keys.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/create-key.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "keyId": { + "type": "string", + "description": "Key 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.", + "x-example": "<KEY_ID>" + }, + "name": { + "type": "string", + "description": "Key name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "scopes": { + "type": "array", + "description": "Key scopes list. Maximum of 100 scopes are allowed.", + "x-example": null, + "items": { + "type": "string", + "enum": [ + "sessions.write", + "users.read", + "users.write", + "teams.read", + "teams.write", + "databases.read", + "databases.write", + "collections.read", + "collections.write", + "tables.read", + "tables.write", + "attributes.read", + "attributes.write", + "columns.read", + "columns.write", + "indexes.read", + "indexes.write", + "documents.read", + "documents.write", + "rows.read", + "rows.write", + "files.read", + "files.write", + "buckets.read", + "buckets.write", + "functions.read", + "functions.write", + "sites.read", + "sites.write", + "log.read", + "log.write", + "execution.read", + "execution.write", + "locale.read", + "avatars.read", + "health.read", + "providers.read", + "providers.write", + "messages.read", + "messages.write", + "topics.read", + "topics.write", + "subscribers.read", + "subscribers.write", + "targets.read", + "targets.write", + "rules.read", + "rules.write", + "schedules.read", + "schedules.write", + "migrations.read", + "migrations.write", + "vcs.read", + "vcs.write", + "assistant.read", + "tokens.read", + "tokens.write", + "policies.write", + "policies.read", + "archives.read", + "archives.write", + "restorations.read", + "restorations.write", + "domains.read", + "domains.write", + "events.read" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "x-nullable": true + }, + "expire": { + "type": "string", + "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "name", + "scopes" + ] + } + } + } + } + } + }, + "\/projects\/{projectId}\/keys\/{keyId}": { + "get": { + "summary": "Get key", + "operationId": "projectsGetKey", + "tags": [ + "projects" + ], + "description": "Get a key by its unique ID. This endpoint returns details about a specific API key in your project including it's scopes.", + "responses": { + "200": { + "description": "Key", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/key" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getKey", + "group": "keys", + "weight": 82, + "cookies": false, + "type": "", + "demo": "projects\/get-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "keys.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/get-key.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "keyId", + "description": "Key unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<KEY_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update key", + "operationId": "projectsUpdateKey", + "tags": [ + "projects" + ], + "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": { + "method": "updateKey", + "group": "keys", + "weight": 83, + "cookies": false, + "type": "", + "demo": "projects\/update-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "keys.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-key.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "keyId", + "description": "Key unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<KEY_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Key name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "scopes": { + "type": "array", + "description": "Key scopes list. Maximum of 100 events are allowed.", + "x-example": null, + "items": { + "type": "string", + "enum": [ + "sessions.write", + "users.read", + "users.write", + "teams.read", + "teams.write", + "databases.read", + "databases.write", + "collections.read", + "collections.write", + "tables.read", + "tables.write", + "attributes.read", + "attributes.write", + "columns.read", + "columns.write", + "indexes.read", + "indexes.write", + "documents.read", + "documents.write", + "rows.read", + "rows.write", + "files.read", + "files.write", + "buckets.read", + "buckets.write", + "functions.read", + "functions.write", + "sites.read", + "sites.write", + "log.read", + "log.write", + "execution.read", + "execution.write", + "locale.read", + "avatars.read", + "health.read", + "providers.read", + "providers.write", + "messages.read", + "messages.write", + "topics.read", + "topics.write", + "subscribers.read", + "subscribers.write", + "targets.read", + "targets.write", + "rules.read", + "rules.write", + "schedules.read", + "schedules.write", + "migrations.read", + "migrations.write", + "vcs.read", + "vcs.write", + "assistant.read", + "tokens.read", + "tokens.write", + "policies.write", + "policies.read", + "archives.read", + "archives.write", + "restorations.read", + "restorations.write", + "domains.read", + "domains.write", + "events.read" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "x-nullable": true + }, + "expire": { + "type": "string", + "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "name", + "scopes" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete key", + "operationId": "projectsDeleteKey", + "tags": [ + "projects" + ], + "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": { + "method": "deleteKey", + "group": "keys", + "weight": 84, + "cookies": false, + "type": "", + "demo": "projects\/delete-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "keys.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/delete-key.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "keyId", + "description": "Key unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<KEY_ID>" + }, + "in": "path" + } + ] + } + }, + "\/projects\/{projectId}\/labels": { + "put": { + "summary": "Update project labels", + "operationId": "projectsUpdateLabels", + "tags": [ + "projects" + ], + "description": "Update the project labels by its unique ID. Labels can be used to easily filter projects in an organization.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateLabels", + "group": "projects", + "weight": 469, + "cookies": false, + "type": "", + "demo": "projects\/update-labels.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "labels": { + "type": "array", + "description": "Array of project labels. Replaces the previous labels. Maximum of 1000 labels are allowed, each up to 36 alphanumeric characters long.", + "x-example": null, + "items": { + "type": "string" + } + } + }, + "required": [ + "labels" + ] + } + } + } + } + } + }, + "\/projects\/{projectId}\/oauth2": { + "patch": { + "summary": "Update project OAuth2", + "operationId": "projectsUpdateOAuth2", + "tags": [ + "projects" + ], + "description": "Update the OAuth2 provider configurations. Use this endpoint to set up or update the OAuth2 provider credentials or enable\/disable providers. ", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateOAuth2", + "group": "auth", + "weight": 62, + "cookies": false, + "type": "", + "demo": "projects\/update-o-auth-2.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-oauth2.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "provider": { + "type": "string", + "description": "Provider Name", + "x-example": "amazon", + "enum": [ + "amazon", + "apple", + "auth0", + "authentik", + "autodesk", + "bitbucket", + "bitly", + "box", + "dailymotion", + "discord", + "disqus", + "dropbox", + "etsy", + "facebook", + "figma", + "github", + "gitlab", + "google", + "linkedin", + "microsoft", + "notion", + "oidc", + "okta", + "paypal", + "paypalSandbox", + "podio", + "salesforce", + "slack", + "spotify", + "stripe", + "tradeshift", + "tradeshiftBox", + "twitch", + "wordpress", + "yahoo", + "yammer", + "yandex", + "zoho", + "zoom" + ], + "x-enum-name": "OAuthProvider", + "x-enum-keys": [] + }, + "appId": { + "type": "string", + "description": "Provider app ID. Max length: 256 chars.", + "x-example": "<APP_ID>", + "x-nullable": true + }, + "secret": { + "type": "string", + "description": "Provider secret key. Max length: 512 chars.", + "x-example": "<SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "Provider status. Set to 'false' to disable new session creation.", + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "provider" + ] + } + } + } + } + } + }, + "\/projects\/{projectId}\/platforms": { + "get": { + "summary": "List platforms", + "operationId": "projectsListPlatforms", + "tags": [ + "projects" + ], + "description": "Get a list of all platforms in the project. This endpoint returns an array of all platforms and their configurations. ", + "responses": { + "200": { + "description": "Platforms List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/platformList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listPlatforms", + "group": "platforms", + "weight": 87, + "cookies": false, + "type": "", + "demo": "projects\/list-platforms.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "platforms.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/list-platforms.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "x-example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create platform", + "operationId": "projectsCreatePlatform", + "tags": [ + "projects" + ], + "description": "Create a new platform for your project. Use this endpoint to register a new platform where your users will run your application which will interact with the Appwrite API.", + "responses": { + "201": { + "description": "Platform", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/platform" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createPlatform", + "group": "platforms", + "weight": 86, + "cookies": false, + "type": "", + "demo": "projects\/create-platform.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "platforms.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/create-platform.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Platform type. Possible values are: web, flutter-web, flutter-ios, flutter-android, flutter-linux, flutter-macos, flutter-windows, apple-ios, apple-macos, apple-watchos, apple-tvos, android, unity, react-native-ios, react-native-android.", + "x-example": "web", + "enum": [ + "web", + "flutter-web", + "flutter-ios", + "flutter-android", + "flutter-linux", + "flutter-macos", + "flutter-windows", + "apple-ios", + "apple-macos", + "apple-watchos", + "apple-tvos", + "android", + "unity", + "react-native-ios", + "react-native-android" + ], + "x-enum-name": "PlatformType", + "x-enum-keys": [] + }, + "name": { + "type": "string", + "description": "Platform name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "key": { + "type": "string", + "description": "Package name for Android or bundle ID for iOS or macOS. Max length: 256 chars.", + "x-example": "<KEY>" + }, + "store": { + "type": "string", + "description": "App store or Google Play store ID. Max length: 256 chars.", + "x-example": "<STORE>" + }, + "hostname": { + "type": "string", + "description": "Platform client hostname. Max length: 256 chars.", + "x-example": null + } + }, + "required": [ + "type", + "name" + ] + } + } + } + } + } + }, + "\/projects\/{projectId}\/platforms\/{platformId}": { + "get": { + "summary": "Get platform", + "operationId": "projectsGetPlatform", + "tags": [ + "projects" + ], + "description": "Get a platform by its unique ID. This endpoint returns the platform's details, including its name, type, and key configurations. ", + "responses": { + "200": { + "description": "Platform", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/platform" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getPlatform", + "group": "platforms", + "weight": 88, + "cookies": false, + "type": "", + "demo": "projects\/get-platform.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "platforms.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/get-platform.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "platformId", + "description": "Platform unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PLATFORM_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update platform", + "operationId": "projectsUpdatePlatform", + "tags": [ + "projects" + ], + "description": "Update a platform by its unique ID. Use this endpoint to update the platform's name, key, platform store ID, or hostname. ", + "responses": { + "200": { + "description": "Platform", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/platform" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updatePlatform", + "group": "platforms", + "weight": 89, + "cookies": false, + "type": "", + "demo": "projects\/update-platform.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "platforms.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-platform.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "platformId", + "description": "Platform unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PLATFORM_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Platform name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "key": { + "type": "string", + "description": "Package name for android or bundle ID for iOS. Max length: 256 chars.", + "x-example": "<KEY>" + }, + "store": { + "type": "string", + "description": "App store or Google Play store ID. Max length: 256 chars.", + "x-example": "<STORE>" + }, + "hostname": { + "type": "string", + "description": "Platform client URL. Max length: 256 chars.", + "x-example": null + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete platform", + "operationId": "projectsDeletePlatform", + "tags": [ + "projects" + ], + "description": "Delete a platform by its unique ID. This endpoint removes the platform and all its configurations from the project. ", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deletePlatform", + "group": "platforms", + "weight": 90, + "cookies": false, + "type": "", + "demo": "projects\/delete-platform.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "platforms.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/delete-platform.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "platformId", + "description": "Platform unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PLATFORM_ID>" + }, + "in": "path" + } + ] + } + }, + "\/projects\/{projectId}\/schedules": { + "get": { + "summary": "List schedules", + "operationId": "projectsListSchedules", + "tags": [ + "projects" + ], + "description": "Get a list of all the project's schedules. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Schedules List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/scheduleList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listSchedules", + "group": "schedules", + "weight": 473, + "cookies": false, + "type": "", + "demo": "projects\/list-schedules.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "schedules.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/list-schedules.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "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: resourceType, resourceId, projectId, schedule, active, region", + "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", + "x-example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create schedule", + "operationId": "projectsCreateSchedule", + "tags": [ + "projects" + ], + "description": "Create a new schedule for a resource.", + "responses": { + "201": { + "description": "Schedule", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/schedule" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createSchedule", + "group": "schedules", + "weight": 799, + "cookies": false, + "type": "", + "demo": "projects\/create-schedule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "schedules.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/create-schedule.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "resourceType": { + "type": "string", + "description": "The resource type for the schedule. Possible values: function, execution, message, backup.", + "x-example": "function", + "enum": [ + "function", + "execution", + "message", + "backup" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "resourceId": { + "type": "string", + "description": "The resource ID to associate with this schedule.", + "x-example": "<RESOURCE_ID>" + }, + "schedule": { + "type": "string", + "description": "Schedule CRON expression.", + "x-example": null + }, + "active": { + "type": "boolean", + "description": "Whether the schedule is active.", + "x-example": false + }, + "data": { + "type": "object", + "description": "Schedule data as a JSON string. Used to store resource-specific context needed for execution.", + "x-example": "{}" + } + }, + "required": [ + "resourceType", + "resourceId", + "schedule" + ] + } + } + } + } + } + }, + "\/projects\/{projectId}\/schedules\/{scheduleId}": { + "get": { + "summary": "Get schedule", + "operationId": "projectsGetSchedule", + "tags": [ + "projects" + ], + "description": "Get a schedule by its unique ID.", + "responses": { + "200": { + "description": "Schedule", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/schedule" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getSchedule", + "group": "schedules", + "weight": 472, + "cookies": false, + "type": "", + "demo": "projects\/get-schedule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "schedules.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/get-schedule.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "scheduleId", + "description": "Schedule ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<SCHEDULE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/projects\/{projectId}\/service": { + "patch": { + "summary": "Update service status", + "operationId": "projectsUpdateServiceStatus", + "tags": [ + "projects" + ], + "description": "Update the status of a specific service. Use this endpoint to enable or disable a service in your project. ", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateServiceStatus", + "group": "projects", + "weight": 58, + "cookies": false, + "type": "", + "demo": "projects\/update-service-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-service-status.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "service": { + "type": "string", + "description": "Service name.", + "x-example": "account", + "enum": [ + "account", + "avatars", + "databases", + "tablesdb", + "locale", + "health", + "storage", + "teams", + "users", + "sites", + "functions", + "graphql", + "messaging" + ], + "x-enum-name": "ApiService", + "x-enum-keys": [] + }, + "status": { + "type": "boolean", + "description": "Service status.", + "x-example": false + } + }, + "required": [ + "service", + "status" + ] + } + } + } + } + } + }, + "\/projects\/{projectId}\/service\/all": { + "patch": { + "summary": "Update all service status", + "operationId": "projectsUpdateServiceStatusAll", + "tags": [ + "projects" + ], + "description": "Update the status of all services. Use this endpoint to enable or disable all optional services at once. ", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateServiceStatusAll", + "group": "projects", + "weight": 59, + "cookies": false, + "type": "", + "demo": "projects\/update-service-status-all.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-service-status-all.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "status": { + "type": "boolean", + "description": "Service status.", + "x-example": false + } + }, + "required": [ + "status" + ] + } + } + } + } + } + }, + "\/projects\/{projectId}\/smtp": { + "patch": { + "summary": "Update SMTP", + "operationId": "projectsUpdateSmtp", + "tags": [ + "projects" + ], + "description": "Update the SMTP configuration for your project. Use this endpoint to configure your project's SMTP provider with your custom settings for sending transactional emails. ", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "method": "updateSmtp", + "group": "templates", + "weight": 91, + "cookies": false, + "type": "", + "demo": "projects\/update-smtp.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-smtp.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "projects.updateSMTP" + }, + "methods": [ + { + "name": "updateSmtp", + "namespace": "projects", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "projectId", + "enabled", + "senderName", + "senderEmail", + "replyTo", + "host", + "port", + "username", + "password", + "secure" + ], + "required": [ + "projectId", + "enabled" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/project" + } + ], + "description": "Update the SMTP configuration for your project. Use this endpoint to configure your project's SMTP provider with your custom settings for sending transactional emails. ", + "demo": "projects\/update-smtp.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "projects.updateSMTP" + } + }, + { + "name": "updateSMTP", + "namespace": "projects", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "projectId", + "enabled", + "senderName", + "senderEmail", + "replyTo", + "host", + "port", + "username", + "password", + "secure" + ], + "required": [ + "projectId", + "enabled" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/project" + } + ], + "description": "Update the SMTP configuration for your project. Use this endpoint to configure your project's SMTP provider with your custom settings for sending transactional emails. ", + "demo": "projects\/update-smtp.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Enable custom SMTP service", + "x-example": false + }, + "senderName": { + "type": "string", + "description": "Name of the email sender", + "x-example": "<SENDER_NAME>" + }, + "senderEmail": { + "type": "string", + "description": "Email of the sender", + "x-example": "email@example.com", + "format": "email" + }, + "replyTo": { + "type": "string", + "description": "Reply to email", + "x-example": "email@example.com", + "format": "email" + }, + "host": { + "type": "string", + "description": "SMTP server host name", + "x-example": null + }, + "port": { + "type": "integer", + "description": "SMTP server port", + "x-example": null, + "format": "int32" + }, + "username": { + "type": "string", + "description": "SMTP server username", + "x-example": "<USERNAME>" + }, + "password": { + "type": "string", + "description": "SMTP server password", + "x-example": "<PASSWORD>" + }, + "secure": { + "type": "string", + "description": "Does SMTP server use secure connection", + "x-example": "tls", + "enum": [ + "tls", + "ssl" + ], + "x-enum-name": "SMTPSecure", + "x-enum-keys": [] + } + }, + "required": [ + "enabled" + ] + } + } + } + } + } + }, + "\/projects\/{projectId}\/smtp\/tests": { + "post": { + "summary": "Create SMTP test", + "operationId": "projectsCreateSmtpTest", + "tags": [ + "projects" + ], + "description": "Send a test email to verify SMTP configuration. ", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": true, + "x-appwrite": { + "method": "createSmtpTest", + "group": "templates", + "weight": 92, + "cookies": false, + "type": "", + "demo": "projects\/create-smtp-test.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/create-smtp-test.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "projects.createSMTPTest" + }, + "methods": [ + { + "name": "createSmtpTest", + "namespace": "projects", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "projectId", + "emails", + "senderName", + "senderEmail", + "replyTo", + "host", + "port", + "username", + "password", + "secure" + ], + "required": [ + "projectId", + "emails", + "senderName", + "senderEmail", + "host" + ], + "responses": [ + { + "code": 204 + } + ], + "description": "Send a test email to verify SMTP configuration. ", + "demo": "projects\/create-smtp-test.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "projects.createSMTPTest" + } + }, + { + "name": "createSMTPTest", + "namespace": "projects", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "projectId", + "emails", + "senderName", + "senderEmail", + "replyTo", + "host", + "port", + "username", + "password", + "secure" + ], + "required": [ + "projectId", + "emails", + "senderName", + "senderEmail", + "host" + ], + "responses": [ + { + "code": 204 + } + ], + "description": "Send a test email to verify SMTP configuration. ", + "demo": "projects\/create-smtp-test.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "emails": { + "type": "array", + "description": "Array of emails to send test email to. Maximum of 10 emails are allowed.", + "x-example": null, + "items": { + "type": "string" + } + }, + "senderName": { + "type": "string", + "description": "Name of the email sender", + "x-example": "<SENDER_NAME>" + }, + "senderEmail": { + "type": "string", + "description": "Email of the sender", + "x-example": "email@example.com", + "format": "email" + }, + "replyTo": { + "type": "string", + "description": "Reply to email", + "x-example": "email@example.com", + "format": "email" + }, + "host": { + "type": "string", + "description": "SMTP server host name", + "x-example": null + }, + "port": { + "type": "integer", + "description": "SMTP server port", + "x-example": null, + "format": "int32" + }, + "username": { + "type": "string", + "description": "SMTP server username", + "x-example": "<USERNAME>" + }, + "password": { + "type": "string", + "description": "SMTP server password", + "x-example": "<PASSWORD>" + }, + "secure": { + "type": "string", + "description": "Does SMTP server use secure connection", + "x-example": "tls", + "enum": [ + "tls", + "ssl" + ], + "x-enum-name": "SMTPSecure", + "x-enum-keys": [] + } + }, + "required": [ + "emails", + "senderName", + "senderEmail", + "host" + ] + } + } + } + } + } + }, + "\/projects\/{projectId}\/status": { + "patch": { + "summary": "Update the status of a project", + "operationId": "projectsUpdateStatus", + "tags": [ + "projects" + ], + "description": "Update the status of a project. Can be used to archive\/restore projects, and to restore paused projects. When restoring a paused project, the console fingerprint header must be provided and the project must not be blocked for any reason other than inactivity.\n", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateStatus", + "group": null, + "weight": 794, + "cookies": false, + "type": "", + "demo": "projects\/update-status.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/projects\/update-status.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "New status for the project", + "x-example": "active", + "enum": [ + "active" + ], + "x-enum-name": null, + "x-enum-keys": [] + } + }, + "required": [ + "status" + ] + } + } + } + } + } + }, + "\/projects\/{projectId}\/team": { + "patch": { + "summary": "Update project team", + "operationId": "projectsUpdateTeam", + "tags": [ + "projects" + ], + "description": "Update the team ID of a project allowing for it to be transferred to another team.", + "responses": { + "200": { + "description": "Project", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/project" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateTeam", + "group": "projects", + "weight": 795, + "cookies": false, + "type": "", + "demo": "projects\/update-team.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-team.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "teamId": { + "type": "string", + "description": "Team ID of the team to transfer project to.", + "x-example": "<TEAM_ID>" + } + }, + "required": [ + "teamId" + ] + } + } + } + } + } + }, + "\/projects\/{projectId}\/templates\/email\/{type}\/{locale}": { + "get": { + "summary": "Get custom email template", + "operationId": "projectsGetEmailTemplate", + "tags": [ + "projects" + ], + "description": "Get a custom email template for the specified locale and type. This endpoint returns the template content, subject, and other configuration details. ", + "responses": { + "200": { + "description": "EmailTemplate", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/emailTemplate" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getEmailTemplate", + "group": "templates", + "weight": 94, + "cookies": false, + "type": "", + "demo": "projects\/get-email-template.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/get-email-template.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "type", + "description": "Template type", + "required": true, + "schema": { + "type": "string", + "x-example": "verification", + "enum": [ + "verification", + "magicSession", + "recovery", + "invitation", + "mfaChallenge", + "sessionAlert", + "otpSession" + ], + "x-enum-name": "EmailTemplateType", + "x-enum-keys": [] + }, + "in": "path" + }, + { + "name": "locale", + "description": "Template locale", + "required": true, + "schema": { + "type": "string", + "x-example": "af", + "enum": [ + "af", + "ar-ae", + "ar-bh", + "ar-dz", + "ar-eg", + "ar-iq", + "ar-jo", + "ar-kw", + "ar-lb", + "ar-ly", + "ar-ma", + "ar-om", + "ar-qa", + "ar-sa", + "ar-sy", + "ar-tn", + "ar-ye", + "as", + "az", + "be", + "bg", + "bh", + "bn", + "bs", + "ca", + "cs", + "cy", + "da", + "de", + "de-at", + "de-ch", + "de-li", + "de-lu", + "el", + "en", + "en-au", + "en-bz", + "en-ca", + "en-gb", + "en-ie", + "en-jm", + "en-nz", + "en-tt", + "en-us", + "en-za", + "eo", + "es", + "es-ar", + "es-bo", + "es-cl", + "es-co", + "es-cr", + "es-do", + "es-ec", + "es-gt", + "es-hn", + "es-mx", + "es-ni", + "es-pa", + "es-pe", + "es-pr", + "es-py", + "es-sv", + "es-uy", + "es-ve", + "et", + "eu", + "fa", + "fi", + "fo", + "fr", + "fr-be", + "fr-ca", + "fr-ch", + "fr-lu", + "ga", + "gd", + "he", + "hi", + "hr", + "hu", + "id", + "is", + "it", + "it-ch", + "ja", + "ji", + "ko", + "ku", + "lt", + "lv", + "mk", + "ml", + "ms", + "mt", + "nb", + "ne", + "nl", + "nl-be", + "nn", + "no", + "pa", + "pl", + "pt", + "pt-br", + "rm", + "ro", + "ro-md", + "ru", + "ru-md", + "sb", + "sk", + "sl", + "sq", + "sr", + "sv", + "sv-fi", + "th", + "tn", + "tr", + "ts", + "ua", + "ur", + "ve", + "vi", + "xh", + "zh-cn", + "zh-hk", + "zh-sg", + "zh-tw", + "zu" + ], + "x-enum-name": "EmailTemplateLocale", + "x-enum-keys": [] + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update custom email templates", + "operationId": "projectsUpdateEmailTemplate", + "tags": [ + "projects" + ], + "description": "Update a custom email template for the specified locale and type. Use this endpoint to modify the content of your email templates.", + "responses": { + "200": { + "description": "EmailTemplate", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/emailTemplate" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateEmailTemplate", + "group": "templates", + "weight": 96, + "cookies": false, + "type": "", + "demo": "projects\/update-email-template.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-email-template.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "type", + "description": "Template type", + "required": true, + "schema": { + "type": "string", + "x-example": "verification", + "enum": [ + "verification", + "magicSession", + "recovery", + "invitation", + "mfaChallenge", + "sessionAlert", + "otpSession" + ], + "x-enum-name": "EmailTemplateType", + "x-enum-keys": [] + }, + "in": "path" + }, + { + "name": "locale", + "description": "Template locale", + "required": true, + "schema": { + "type": "string", + "x-example": "af", + "enum": [ + "af", + "ar-ae", + "ar-bh", + "ar-dz", + "ar-eg", + "ar-iq", + "ar-jo", + "ar-kw", + "ar-lb", + "ar-ly", + "ar-ma", + "ar-om", + "ar-qa", + "ar-sa", + "ar-sy", + "ar-tn", + "ar-ye", + "as", + "az", + "be", + "bg", + "bh", + "bn", + "bs", + "ca", + "cs", + "cy", + "da", + "de", + "de-at", + "de-ch", + "de-li", + "de-lu", + "el", + "en", + "en-au", + "en-bz", + "en-ca", + "en-gb", + "en-ie", + "en-jm", + "en-nz", + "en-tt", + "en-us", + "en-za", + "eo", + "es", + "es-ar", + "es-bo", + "es-cl", + "es-co", + "es-cr", + "es-do", + "es-ec", + "es-gt", + "es-hn", + "es-mx", + "es-ni", + "es-pa", + "es-pe", + "es-pr", + "es-py", + "es-sv", + "es-uy", + "es-ve", + "et", + "eu", + "fa", + "fi", + "fo", + "fr", + "fr-be", + "fr-ca", + "fr-ch", + "fr-lu", + "ga", + "gd", + "he", + "hi", + "hr", + "hu", + "id", + "is", + "it", + "it-ch", + "ja", + "ji", + "ko", + "ku", + "lt", + "lv", + "mk", + "ml", + "ms", + "mt", + "nb", + "ne", + "nl", + "nl-be", + "nn", + "no", + "pa", + "pl", + "pt", + "pt-br", + "rm", + "ro", + "ro-md", + "ru", + "ru-md", + "sb", + "sk", + "sl", + "sq", + "sr", + "sv", + "sv-fi", + "th", + "tn", + "tr", + "ts", + "ua", + "ur", + "ve", + "vi", + "xh", + "zh-cn", + "zh-hk", + "zh-sg", + "zh-tw", + "zu" + ], + "x-enum-name": "EmailTemplateLocale", + "x-enum-keys": [] + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "subject": { + "type": "string", + "description": "Email Subject", + "x-example": "<SUBJECT>" + }, + "message": { + "type": "string", + "description": "Template message", + "x-example": "<MESSAGE>" + }, + "senderName": { + "type": "string", + "description": "Name of the email sender", + "x-example": "<SENDER_NAME>" + }, + "senderEmail": { + "type": "string", + "description": "Email of the sender", + "x-example": "email@example.com", + "format": "email" + }, + "replyTo": { + "type": "string", + "description": "Reply to email", + "x-example": "email@example.com", + "format": "email" + } + }, + "required": [ + "subject", + "message" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete custom email template", + "operationId": "projectsDeleteEmailTemplate", + "tags": [ + "projects" + ], + "description": "Reset a custom email template to its default value. This endpoint removes any custom content and restores the template to its original state. ", + "responses": { + "200": { + "description": "EmailTemplate", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/emailTemplate" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteEmailTemplate", + "group": "templates", + "weight": 98, + "cookies": false, + "type": "", + "demo": "projects\/delete-email-template.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/delete-email-template.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "type", + "description": "Template type", + "required": true, + "schema": { + "type": "string", + "x-example": "verification", + "enum": [ + "verification", + "magicSession", + "recovery", + "invitation", + "mfaChallenge", + "sessionAlert", + "otpSession" + ], + "x-enum-name": "EmailTemplateType", + "x-enum-keys": [] + }, + "in": "path" + }, + { + "name": "locale", + "description": "Template locale", + "required": true, + "schema": { + "type": "string", + "x-example": "af", + "enum": [ + "af", + "ar-ae", + "ar-bh", + "ar-dz", + "ar-eg", + "ar-iq", + "ar-jo", + "ar-kw", + "ar-lb", + "ar-ly", + "ar-ma", + "ar-om", + "ar-qa", + "ar-sa", + "ar-sy", + "ar-tn", + "ar-ye", + "as", + "az", + "be", + "bg", + "bh", + "bn", + "bs", + "ca", + "cs", + "cy", + "da", + "de", + "de-at", + "de-ch", + "de-li", + "de-lu", + "el", + "en", + "en-au", + "en-bz", + "en-ca", + "en-gb", + "en-ie", + "en-jm", + "en-nz", + "en-tt", + "en-us", + "en-za", + "eo", + "es", + "es-ar", + "es-bo", + "es-cl", + "es-co", + "es-cr", + "es-do", + "es-ec", + "es-gt", + "es-hn", + "es-mx", + "es-ni", + "es-pa", + "es-pe", + "es-pr", + "es-py", + "es-sv", + "es-uy", + "es-ve", + "et", + "eu", + "fa", + "fi", + "fo", + "fr", + "fr-be", + "fr-ca", + "fr-ch", + "fr-lu", + "ga", + "gd", + "he", + "hi", + "hr", + "hu", + "id", + "is", + "it", + "it-ch", + "ja", + "ji", + "ko", + "ku", + "lt", + "lv", + "mk", + "ml", + "ms", + "mt", + "nb", + "ne", + "nl", + "nl-be", + "nn", + "no", + "pa", + "pl", + "pt", + "pt-br", + "rm", + "ro", + "ro-md", + "ru", + "ru-md", + "sb", + "sk", + "sl", + "sq", + "sr", + "sv", + "sv-fi", + "th", + "tn", + "tr", + "ts", + "ua", + "ur", + "ve", + "vi", + "xh", + "zh-cn", + "zh-hk", + "zh-sg", + "zh-tw", + "zu" + ], + "x-enum-name": "EmailTemplateLocale", + "x-enum-keys": [] + }, + "in": "path" + } + ] + } + }, + "\/projects\/{projectId}\/templates\/sms\/{type}\/{locale}": { + "get": { + "summary": "Get custom SMS template", + "operationId": "projectsGetSmsTemplate", + "tags": [ + "projects" + ], + "description": "Get a custom SMS template for the specified locale and type returning it's contents.", + "responses": { + "200": { + "description": "SmsTemplate", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/smsTemplate" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "method": "getSmsTemplate", + "group": "templates", + "weight": 93, + "cookies": false, + "type": "", + "demo": "projects\/get-sms-template.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/get-sms-template.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "projects.getSMSTemplate" + }, + "methods": [ + { + "name": "getSmsTemplate", + "namespace": "projects", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "projectId", + "type", + "locale" + ], + "required": [ + "projectId", + "type", + "locale" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/smsTemplate" + } + ], + "description": "Get a custom SMS template for the specified locale and type returning it's contents.", + "demo": "projects\/get-sms-template.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "projects.getSMSTemplate" + } + }, + { + "name": "getSMSTemplate", + "namespace": "projects", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "projectId", + "type", + "locale" + ], + "required": [ + "projectId", + "type", + "locale" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/smsTemplate" + } + ], + "description": "Get a custom SMS template for the specified locale and type returning it's contents.", + "demo": "projects\/get-sms-template.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "type", + "description": "Template type", + "required": true, + "schema": { + "type": "string", + "x-example": "verification", + "enum": [ + "verification", + "login", + "invitation", + "mfaChallenge" + ], + "x-enum-name": "SmsTemplateType", + "x-enum-keys": [] + }, + "in": "path" + }, + { + "name": "locale", + "description": "Template locale", + "required": true, + "schema": { + "type": "string", + "x-example": "af", + "enum": [ + "af", + "ar-ae", + "ar-bh", + "ar-dz", + "ar-eg", + "ar-iq", + "ar-jo", + "ar-kw", + "ar-lb", + "ar-ly", + "ar-ma", + "ar-om", + "ar-qa", + "ar-sa", + "ar-sy", + "ar-tn", + "ar-ye", + "as", + "az", + "be", + "bg", + "bh", + "bn", + "bs", + "ca", + "cs", + "cy", + "da", + "de", + "de-at", + "de-ch", + "de-li", + "de-lu", + "el", + "en", + "en-au", + "en-bz", + "en-ca", + "en-gb", + "en-ie", + "en-jm", + "en-nz", + "en-tt", + "en-us", + "en-za", + "eo", + "es", + "es-ar", + "es-bo", + "es-cl", + "es-co", + "es-cr", + "es-do", + "es-ec", + "es-gt", + "es-hn", + "es-mx", + "es-ni", + "es-pa", + "es-pe", + "es-pr", + "es-py", + "es-sv", + "es-uy", + "es-ve", + "et", + "eu", + "fa", + "fi", + "fo", + "fr", + "fr-be", + "fr-ca", + "fr-ch", + "fr-lu", + "ga", + "gd", + "he", + "hi", + "hr", + "hu", + "id", + "is", + "it", + "it-ch", + "ja", + "ji", + "ko", + "ku", + "lt", + "lv", + "mk", + "ml", + "ms", + "mt", + "nb", + "ne", + "nl", + "nl-be", + "nn", + "no", + "pa", + "pl", + "pt", + "pt-br", + "rm", + "ro", + "ro-md", + "ru", + "ru-md", + "sb", + "sk", + "sl", + "sq", + "sr", + "sv", + "sv-fi", + "th", + "tn", + "tr", + "ts", + "ua", + "ur", + "ve", + "vi", + "xh", + "zh-cn", + "zh-hk", + "zh-sg", + "zh-tw", + "zu" + ], + "x-enum-name": "SmsTemplateLocale", + "x-enum-keys": [] + }, + "in": "path" + } + ] + }, + "patch": { + "summary": "Update custom SMS template", + "operationId": "projectsUpdateSmsTemplate", + "tags": [ + "projects" + ], + "description": "Update a custom SMS template for the specified locale and type. Use this endpoint to modify the content of your SMS templates. ", + "responses": { + "200": { + "description": "SmsTemplate", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/smsTemplate" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "method": "updateSmsTemplate", + "group": "templates", + "weight": 95, + "cookies": false, + "type": "", + "demo": "projects\/update-sms-template.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-sms-template.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "projects.updateSMSTemplate" + }, + "methods": [ + { + "name": "updateSmsTemplate", + "namespace": "projects", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "projectId", + "type", + "locale", + "message" + ], + "required": [ + "projectId", + "type", + "locale", + "message" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/smsTemplate" + } + ], + "description": "Update a custom SMS template for the specified locale and type. Use this endpoint to modify the content of your SMS templates. ", + "demo": "projects\/update-sms-template.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "projects.updateSMSTemplate" + } + }, + { + "name": "updateSMSTemplate", + "namespace": "projects", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "projectId", + "type", + "locale", + "message" + ], + "required": [ + "projectId", + "type", + "locale", + "message" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/smsTemplate" + } + ], + "description": "Update a custom SMS template for the specified locale and type. Use this endpoint to modify the content of your SMS templates. ", + "demo": "projects\/update-sms-template.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "type", + "description": "Template type", + "required": true, + "schema": { + "type": "string", + "x-example": "verification", + "enum": [ + "verification", + "login", + "invitation", + "mfaChallenge" + ], + "x-enum-name": "SmsTemplateType", + "x-enum-keys": [] + }, + "in": "path" + }, + { + "name": "locale", + "description": "Template locale", + "required": true, + "schema": { + "type": "string", + "x-example": "af", + "enum": [ + "af", + "ar-ae", + "ar-bh", + "ar-dz", + "ar-eg", + "ar-iq", + "ar-jo", + "ar-kw", + "ar-lb", + "ar-ly", + "ar-ma", + "ar-om", + "ar-qa", + "ar-sa", + "ar-sy", + "ar-tn", + "ar-ye", + "as", + "az", + "be", + "bg", + "bh", + "bn", + "bs", + "ca", + "cs", + "cy", + "da", + "de", + "de-at", + "de-ch", + "de-li", + "de-lu", + "el", + "en", + "en-au", + "en-bz", + "en-ca", + "en-gb", + "en-ie", + "en-jm", + "en-nz", + "en-tt", + "en-us", + "en-za", + "eo", + "es", + "es-ar", + "es-bo", + "es-cl", + "es-co", + "es-cr", + "es-do", + "es-ec", + "es-gt", + "es-hn", + "es-mx", + "es-ni", + "es-pa", + "es-pe", + "es-pr", + "es-py", + "es-sv", + "es-uy", + "es-ve", + "et", + "eu", + "fa", + "fi", + "fo", + "fr", + "fr-be", + "fr-ca", + "fr-ch", + "fr-lu", + "ga", + "gd", + "he", + "hi", + "hr", + "hu", + "id", + "is", + "it", + "it-ch", + "ja", + "ji", + "ko", + "ku", + "lt", + "lv", + "mk", + "ml", + "ms", + "mt", + "nb", + "ne", + "nl", + "nl-be", + "nn", + "no", + "pa", + "pl", + "pt", + "pt-br", + "rm", + "ro", + "ro-md", + "ru", + "ru-md", + "sb", + "sk", + "sl", + "sq", + "sr", + "sv", + "sv-fi", + "th", + "tn", + "tr", + "ts", + "ua", + "ur", + "ve", + "vi", + "xh", + "zh-cn", + "zh-hk", + "zh-sg", + "zh-tw", + "zu" + ], + "x-enum-name": "SmsTemplateLocale", + "x-enum-keys": [] + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "Template message", + "x-example": "<MESSAGE>" + } + }, + "required": [ + "message" + ] + } + } + } + } + }, + "delete": { + "summary": "Reset custom SMS template", + "operationId": "projectsDeleteSmsTemplate", + "tags": [ + "projects" + ], + "description": "Reset a custom SMS template to its default value. This endpoint removes any custom message and restores the template to its original state. ", + "responses": { + "200": { + "description": "SmsTemplate", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/smsTemplate" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "method": "deleteSmsTemplate", + "group": "templates", + "weight": 97, + "cookies": false, + "type": "", + "demo": "projects\/delete-sms-template.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/delete-sms-template.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "projects.deleteSMSTemplate" + }, + "methods": [ + { + "name": "deleteSmsTemplate", + "namespace": "projects", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "projectId", + "type", + "locale" + ], + "required": [ + "projectId", + "type", + "locale" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/smsTemplate" + } + ], + "description": "Reset a custom SMS template to its default value. This endpoint removes any custom message and restores the template to its original state. ", + "demo": "projects\/delete-sms-template.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "projects.deleteSMSTemplate" + } + }, + { + "name": "deleteSMSTemplate", + "namespace": "projects", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "projectId", + "type", + "locale" + ], + "required": [ + "projectId", + "type", + "locale" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/smsTemplate" + } + ], + "description": "Reset a custom SMS template to its default value. This endpoint removes any custom message and restores the template to its original state. ", + "demo": "projects\/delete-sms-template.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "type", + "description": "Template type", + "required": true, + "schema": { + "type": "string", + "x-example": "verification", + "enum": [ + "verification", + "login", + "invitation", + "mfaChallenge" + ], + "x-enum-name": "SmsTemplateType", + "x-enum-keys": [] + }, + "in": "path" + }, + { + "name": "locale", + "description": "Template locale", + "required": true, + "schema": { + "type": "string", + "x-example": "af", + "enum": [ + "af", + "ar-ae", + "ar-bh", + "ar-dz", + "ar-eg", + "ar-iq", + "ar-jo", + "ar-kw", + "ar-lb", + "ar-ly", + "ar-ma", + "ar-om", + "ar-qa", + "ar-sa", + "ar-sy", + "ar-tn", + "ar-ye", + "as", + "az", + "be", + "bg", + "bh", + "bn", + "bs", + "ca", + "cs", + "cy", + "da", + "de", + "de-at", + "de-ch", + "de-li", + "de-lu", + "el", + "en", + "en-au", + "en-bz", + "en-ca", + "en-gb", + "en-ie", + "en-jm", + "en-nz", + "en-tt", + "en-us", + "en-za", + "eo", + "es", + "es-ar", + "es-bo", + "es-cl", + "es-co", + "es-cr", + "es-do", + "es-ec", + "es-gt", + "es-hn", + "es-mx", + "es-ni", + "es-pa", + "es-pe", + "es-pr", + "es-py", + "es-sv", + "es-uy", + "es-ve", + "et", + "eu", + "fa", + "fi", + "fo", + "fr", + "fr-be", + "fr-ca", + "fr-ch", + "fr-lu", + "ga", + "gd", + "he", + "hi", + "hr", + "hu", + "id", + "is", + "it", + "it-ch", + "ja", + "ji", + "ko", + "ku", + "lt", + "lv", + "mk", + "ml", + "ms", + "mt", + "nb", + "ne", + "nl", + "nl-be", + "nn", + "no", + "pa", + "pl", + "pt", + "pt-br", + "rm", + "ro", + "ro-md", + "ru", + "ru-md", + "sb", + "sk", + "sl", + "sq", + "sr", + "sv", + "sv-fi", + "th", + "tn", + "tr", + "ts", + "ua", + "ur", + "ve", + "vi", + "xh", + "zh-cn", + "zh-hk", + "zh-sg", + "zh-tw", + "zu" + ], + "x-enum-name": "SmsTemplateLocale", + "x-enum-keys": [] + }, + "in": "path" + } + ] + } + }, + "\/projects\/{projectId}\/webhooks": { + "get": { + "summary": "List webhooks", + "operationId": "projectsListWebhooks", + "tags": [ + "projects" + ], + "description": "Get a list of all webhooks belonging to the project. You can use the query params to filter your results. ", + "responses": { + "200": { + "description": "Webhooks List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/webhookList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listWebhooks", + "group": "webhooks", + "weight": 75, + "cookies": false, + "type": "", + "demo": "projects\/list-webhooks.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/list-webhooks.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "x-example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create webhook", + "operationId": "projectsCreateWebhook", + "tags": [ + "projects" + ], + "description": "Create a new webhook. Use this endpoint to configure a URL that will receive events from Appwrite when specific events occur. ", + "responses": { + "201": { + "description": "Webhook", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/webhook" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createWebhook", + "group": "webhooks", + "weight": 74, + "cookies": false, + "type": "", + "demo": "projects\/create-webhook.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/create-webhook.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Webhook name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "description": "Enable or disable a webhook.", + "x-example": false + }, + "events": { + "type": "array", + "description": "Events list. Maximum of 100 events are allowed.", + "x-example": null, + "items": { + "type": "string" + } + }, + "url": { + "type": "string", + "description": "Webhook URL.", + "x-example": null + }, + "security": { + "type": "boolean", + "description": "Certificate verification, false for disabled or true for enabled.", + "x-example": false + }, + "httpUser": { + "type": "string", + "description": "Webhook HTTP user. Max length: 256 chars.", + "x-example": "<HTTP_USER>" + }, + "httpPass": { + "type": "string", + "description": "Webhook HTTP password. Max length: 256 chars.", + "x-example": "<HTTP_PASS>" + } + }, + "required": [ + "name", + "events", + "url", + "security" + ] + } + } + } + } + } + }, + "\/projects\/{projectId}\/webhooks\/{webhookId}": { + "get": { + "summary": "Get webhook", + "operationId": "projectsGetWebhook", + "tags": [ + "projects" + ], + "description": "Get a webhook by its unique ID. This endpoint returns details about a specific webhook configured for a project. ", + "responses": { + "200": { + "description": "Webhook", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/webhook" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getWebhook", + "group": "webhooks", + "weight": 76, + "cookies": false, + "type": "", + "demo": "projects\/get-webhook.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/get-webhook.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "webhookId", + "description": "Webhook unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<WEBHOOK_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update webhook", + "operationId": "projectsUpdateWebhook", + "tags": [ + "projects" + ], + "description": "Update a webhook by its unique ID. Use this endpoint to update the URL, events, or status of an existing webhook. ", + "responses": { + "200": { + "description": "Webhook", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/webhook" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateWebhook", + "group": "webhooks", + "weight": 77, + "cookies": false, + "type": "", + "demo": "projects\/update-webhook.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-webhook.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "webhookId", + "description": "Webhook unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<WEBHOOK_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Webhook name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "description": "Enable or disable a webhook.", + "x-example": false + }, + "events": { + "type": "array", + "description": "Events list. Maximum of 100 events are allowed.", + "x-example": null, + "items": { + "type": "string" + } + }, + "url": { + "type": "string", + "description": "Webhook URL.", + "x-example": null + }, + "security": { + "type": "boolean", + "description": "Certificate verification, false for disabled or true for enabled.", + "x-example": false + }, + "httpUser": { + "type": "string", + "description": "Webhook HTTP user. Max length: 256 chars.", + "x-example": "<HTTP_USER>" + }, + "httpPass": { + "type": "string", + "description": "Webhook HTTP password. Max length: 256 chars.", + "x-example": "<HTTP_PASS>" + } + }, + "required": [ + "name", + "events", + "url", + "security" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete webhook", + "operationId": "projectsDeleteWebhook", + "tags": [ + "projects" + ], + "description": "Delete a webhook by its unique ID. Once deleted, the webhook will no longer receive project events. ", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteWebhook", + "group": "webhooks", + "weight": 79, + "cookies": false, + "type": "", + "demo": "projects\/delete-webhook.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/delete-webhook.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "webhookId", + "description": "Webhook unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<WEBHOOK_ID>" + }, + "in": "path" + } + ] + } + }, + "\/projects\/{projectId}\/webhooks\/{webhookId}\/signature": { + "patch": { + "summary": "Update webhook signature key", + "operationId": "projectsUpdateWebhookSignature", + "tags": [ + "projects" + ], + "description": "Update the webhook signature key. This endpoint can be used to regenerate the signature key used to sign and validate payload deliveries for a specific webhook. ", + "responses": { + "200": { + "description": "Webhook", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/webhook" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateWebhookSignature", + "group": "webhooks", + "weight": 78, + "cookies": false, + "type": "", + "demo": "projects\/update-webhook-signature.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-webhook-signature.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROJECT_ID>" + }, + "in": "path" + }, + { + "name": "webhookId", + "description": "Webhook unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<WEBHOOK_ID>" + }, + "in": "path" + } + ] + } + }, + "\/proxy\/rules": { + "get": { + "summary": "List rules", + "operationId": "proxyListRules", + "tags": [ + "proxy" + ], + "description": "Get a list of all the proxy rules. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Rule List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/proxyRuleList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listRules", + "group": null, + "weight": 809, + "cookies": false, + "type": "", + "demo": "proxy\/list-rules.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "rules.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "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: domain, type, trigger, deploymentResourceType, deploymentResourceId, deploymentId, deploymentVcsProviderBranch", + "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", + "x-example": "<SEARCH>", + "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", + "x-example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/proxy\/rules\/api": { + "post": { + "summary": "Create API rule", + "operationId": "proxyCreateAPIRule", + "tags": [ + "proxy" + ], + "description": "Create a new proxy rule for serving Appwrite's API on custom domain.", + "responses": { + "201": { + "description": "Rule", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/proxyRule" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createAPIRule", + "group": null, + "weight": 804, + "cookies": false, + "type": "", + "demo": "proxy\/create-api-rule.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "userId:{userId}, url:{url}", + "scope": "rules.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "domain": { + "type": "string", + "description": "Domain name.", + "x-example": null + } + }, + "required": [ + "domain" + ] + } + } + } + } + } + }, + "\/proxy\/rules\/function": { + "post": { + "summary": "Create function rule", + "operationId": "proxyCreateFunctionRule", + "tags": [ + "proxy" + ], + "description": "Create a new proxy rule for executing Appwrite Function on custom domain.", + "responses": { + "201": { + "description": "Rule", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/proxyRule" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createFunctionRule", + "group": null, + "weight": 806, + "cookies": false, + "type": "", + "demo": "proxy\/create-function-rule.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "userId:{userId}, url:{url}", + "scope": "rules.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "domain": { + "type": "string", + "description": "Domain name.", + "x-example": null + }, + "functionId": { + "type": "string", + "description": "ID of function to be executed.", + "x-example": "<FUNCTION_ID>" + }, + "branch": { + "type": "string", + "description": "Name of VCS branch to deploy changes automatically", + "x-example": "<BRANCH>" + } + }, + "required": [ + "domain", + "functionId" + ] + } + } + } + } + } + }, + "\/proxy\/rules\/redirect": { + "post": { + "summary": "Create Redirect rule", + "operationId": "proxyCreateRedirectRule", + "tags": [ + "proxy" + ], + "description": "Create a new proxy rule for to redirect from custom domain to another domain.", + "responses": { + "201": { + "description": "Rule", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/proxyRule" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createRedirectRule", + "group": null, + "weight": 807, + "cookies": false, + "type": "", + "demo": "proxy\/create-redirect-rule.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "userId:{userId}, url:{url}", + "scope": "rules.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "domain": { + "type": "string", + "description": "Domain name.", + "x-example": null + }, + "url": { + "type": "string", + "description": "Target URL of redirection", + "x-example": "https:\/\/example.com", + "format": "url" + }, + "statusCode": { + "type": "string", + "description": "Status code of redirection", + "x-example": "301", + "enum": [ + "301", + "302", + "307", + "308" + ], + "x-enum-name": null, + "x-enum-keys": [ + "Moved Permanently 301", + "Found 302", + "Temporary Redirect 307", + "Permanent Redirect 308" + ] + }, + "resourceId": { + "type": "string", + "description": "ID of parent resource.", + "x-example": "<RESOURCE_ID>" + }, + "resourceType": { + "type": "string", + "description": "Type of parent resource.", + "x-example": "site", + "enum": [ + "site", + "function" + ], + "x-enum-name": "ProxyResourceType", + "x-enum-keys": [ + "Site", + "Function" + ] + } + }, + "required": [ + "domain", + "url", + "statusCode", + "resourceId", + "resourceType" + ] + } + } + } + } + } + }, + "\/proxy\/rules\/site": { + "post": { + "summary": "Create site rule", + "operationId": "proxyCreateSiteRule", + "tags": [ + "proxy" + ], + "description": "Create a new proxy rule for serving Appwrite Site on custom domain.", + "responses": { + "201": { + "description": "Rule", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/proxyRule" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createSiteRule", + "group": null, + "weight": 805, + "cookies": false, + "type": "", + "demo": "proxy\/create-site-rule.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "userId:{userId}, url:{url}", + "scope": "rules.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "domain": { + "type": "string", + "description": "Domain name.", + "x-example": null + }, + "siteId": { + "type": "string", + "description": "ID of site to be executed.", + "x-example": "<SITE_ID>" + }, + "branch": { + "type": "string", + "description": "Name of VCS branch to deploy changes automatically", + "x-example": "<BRANCH>" + } + }, + "required": [ + "domain", + "siteId" + ] + } + } + } + } + } + }, + "\/proxy\/rules\/{ruleId}": { + "get": { + "summary": "Get rule", + "operationId": "proxyGetRule", + "tags": [ + "proxy" + ], + "description": "Get a proxy rule by its unique ID.", + "responses": { + "200": { + "description": "Rule", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/proxyRule" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getRule", + "group": null, + "weight": 808, + "cookies": false, + "type": "", + "demo": "proxy\/get-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "rules.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "ruleId", + "description": "Rule ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<RULE_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete rule", + "operationId": "proxyDeleteRule", + "tags": [ + "proxy" + ], + "description": "Delete a proxy rule by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteRule", + "group": null, + "weight": 810, + "cookies": false, + "type": "", + "demo": "proxy\/delete-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "rules.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "ruleId", + "description": "Rule ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<RULE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/proxy\/rules\/{ruleId}\/verification": { + "patch": { + "summary": "Update rule verification status", + "operationId": "proxyUpdateRuleVerification", + "tags": [ + "proxy" + ], + "description": "Retry getting verification process of a proxy rule. This endpoint triggers domain verification by checking DNS records (CNAME) against the configured target domain. If verification is successful, a TLS certificate will be automatically provisioned for the domain.", + "responses": { + "200": { + "description": "Rule", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/proxyRule" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateRuleVerification", + "group": null, + "weight": 811, + "cookies": false, + "type": "", + "demo": "proxy\/update-rule-verification.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "rules.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "ruleId", + "description": "Rule ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<RULE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/sites": { + "get": { + "summary": "List sites", + "operationId": "sitesList", + "tags": [ + "sites" + ], + "description": "Get a list of all the project's sites. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Sites List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/siteList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "list", + "group": "sites", + "weight": 531, + "cookies": false, + "type": "", + "demo": "sites\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "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, framework, deploymentId, buildCommand, installCommand, outputDirectory, 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", + "x-example": "<SEARCH>", + "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", + "x-example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create site", + "operationId": "sitesCreate", + "tags": [ + "sites" + ], + "description": "Create a new site.", + "responses": { + "201": { + "description": "Site", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/site" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "create", + "group": "sites", + "weight": 629, + "cookies": false, + "type": "", + "demo": "sites\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "siteId": { + "type": "string", + "description": "Site 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.", + "x-example": "<SITE_ID>" + }, + "name": { + "type": "string", + "description": "Site name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "framework": { + "type": "string", + "description": "Sites framework.", + "x-example": "analog", + "enum": [ + "analog", + "angular", + "nextjs", + "react", + "nuxt", + "vue", + "sveltekit", + "astro", + "tanstack-start", + "remix", + "lynx", + "flutter", + "react-native", + "vite", + "other" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "enabled": { + "type": "boolean", + "description": "Is site enabled? When set to 'disabled', users cannot access the site but Server SDKs with and API key can still access the site. No data is lost when this is toggled.", + "x-example": false + }, + "logging": { + "type": "boolean", + "description": "When disabled, request logs will exclude logs and errors, and site responses will be slightly faster.", + "x-example": false + }, + "timeout": { + "type": "integer", + "description": "Maximum request time in seconds.", + "x-example": 1, + "format": "int32" + }, + "installCommand": { + "type": "string", + "description": "Install Command.", + "x-example": "<INSTALL_COMMAND>" + }, + "buildCommand": { + "type": "string", + "description": "Build Command.", + "x-example": "<BUILD_COMMAND>" + }, + "outputDirectory": { + "type": "string", + "description": "Output Directory for site.", + "x-example": "<OUTPUT_DIRECTORY>" + }, + "buildRuntime": { + "type": "string", + "description": "Runtime to use during build step.", + "x-example": "node-14.5", + "enum": [ + "node-14.5", + "node-16.0", + "node-18.0", + "node-19.0", + "node-20.0", + "node-21.0", + "node-22", + "node-23", + "node-24", + "node-25", + "php-8.0", + "php-8.1", + "php-8.2", + "php-8.3", + "php-8.4", + "ruby-3.0", + "ruby-3.1", + "ruby-3.2", + "ruby-3.3", + "ruby-3.4", + "ruby-4.0", + "python-3.8", + "python-3.9", + "python-3.10", + "python-3.11", + "python-3.12", + "python-3.13", + "python-3.14", + "python-ml-3.11", + "python-ml-3.12", + "python-ml-3.13", + "deno-1.21", + "deno-1.24", + "deno-1.35", + "deno-1.40", + "deno-1.46", + "deno-2.0", + "deno-2.5", + "deno-2.6", + "dart-2.15", + "dart-2.16", + "dart-2.17", + "dart-2.18", + "dart-2.19", + "dart-3.0", + "dart-3.1", + "dart-3.3", + "dart-3.5", + "dart-3.8", + "dart-3.9", + "dart-3.10", + "dotnet-6.0", + "dotnet-7.0", + "dotnet-8.0", + "dotnet-10", + "java-8.0", + "java-11.0", + "java-17.0", + "java-18.0", + "java-21.0", + "java-22", + "java-25", + "swift-5.5", + "swift-5.8", + "swift-5.9", + "swift-5.10", + "swift-6.2", + "kotlin-1.6", + "kotlin-1.8", + "kotlin-1.9", + "kotlin-2.0", + "kotlin-2.3", + "cpp-17", + "cpp-20", + "bun-1.0", + "bun-1.1", + "bun-1.2", + "bun-1.3", + "go-1.23", + "go-1.24", + "go-1.25", + "go-1.26", + "static-1", + "flutter-3.24", + "flutter-3.27", + "flutter-3.29", + "flutter-3.32", + "flutter-3.35", + "flutter-3.38" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "adapter": { + "type": "string", + "description": "Framework adapter defining rendering strategy. Allowed values are: static, ssr", + "x-example": "static", + "enum": [ + "static", + "ssr" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "installationId": { + "type": "string", + "description": "Appwrite Installation ID for VCS (Version Control System) deployment.", + "x-example": "<INSTALLATION_ID>" + }, + "fallbackFile": { + "type": "string", + "description": "Fallback file for single page application sites.", + "x-example": "<FALLBACK_FILE>" + }, + "providerRepositoryId": { + "type": "string", + "description": "Repository ID of the repo linked to the site.", + "x-example": "<PROVIDER_REPOSITORY_ID>" + }, + "providerBranch": { + "type": "string", + "description": "Production branch for the repo linked to the site.", + "x-example": "<PROVIDER_BRANCH>" + }, + "providerSilentMode": { + "type": "boolean", + "description": "Is the VCS (Version Control System) connection in silent mode for the repo linked to the site? In silent mode, comments will not be made on commits and pull requests.", + "x-example": false + }, + "providerRootDirectory": { + "type": "string", + "description": "Path to site code in the linked repo.", + "x-example": "<PROVIDER_ROOT_DIRECTORY>" + }, + "specification": { + "type": "string", + "description": "Framework specification for the site and builds.", + "x-example": null + } + }, + "required": [ + "siteId", + "name", + "framework", + "buildRuntime" + ] + } + } + } + } + } + }, + "\/sites\/frameworks": { + "get": { + "summary": "List frameworks", + "operationId": "sitesListFrameworks", + "tags": [ + "sites" + ], + "description": "Get a list of all frameworks that are currently available on the server instance.", + "responses": { + "200": { + "description": "Frameworks List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/frameworkList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listFrameworks", + "group": "frameworks", + "weight": 534, + "cookies": false, + "type": "", + "demo": "sites\/list-frameworks.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ] + } + }, + "\/sites\/specifications": { + "get": { + "summary": "List specifications", + "operationId": "sitesListSpecifications", + "tags": [ + "sites" + ], + "description": "List allowed site specifications for this instance.", + "responses": { + "200": { + "description": "Specifications List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/specificationList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listSpecifications", + "group": "frameworks", + "weight": 557, + "cookies": false, + "type": "", + "demo": "sites\/list-specifications.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.read", + "platforms": [ + "server", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ] + } + }, + "\/sites\/templates": { + "get": { + "summary": "List templates", + "operationId": "sitesListTemplates", + "tags": [ + "sites" + ], + "description": "List available site templates. You can use template details in [createSite](\/docs\/references\/cloud\/server-nodejs\/sites#create) method.", + "responses": { + "200": { + "description": "Site Templates List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/templateSiteList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listTemplates", + "group": "templates", + "weight": 553, + "cookies": false, + "type": "", + "demo": "sites\/list-templates.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "frameworks", + "description": "List of frameworks allowed for filtering site templates. Maximum of 100 frameworks are allowed.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "analog", + "angular", + "nextjs", + "react", + "nuxt", + "vue", + "sveltekit", + "astro", + "tanstack-start", + "remix", + "lynx", + "flutter", + "react-native", + "vite", + "other" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "default": [] + }, + "in": "query" + }, + { + "name": "useCases", + "description": "List of use cases allowed for filtering site templates. Maximum of 100 use cases are allowed.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "portfolio", + "starter", + "events", + "ecommerce", + "documentation", + "blog", + "ai", + "forms", + "dashboard" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "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", + "x-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", + "x-example": 0, + "default": 0 + }, + "in": "query" + } + ] + } + }, + "\/sites\/templates\/{templateId}": { + "get": { + "summary": "Get site template", + "operationId": "sitesGetTemplate", + "tags": [ + "sites" + ], + "description": "Get a site template using ID. You can use template details in [createSite](\/docs\/references\/cloud\/server-nodejs\/sites#create) method.", + "responses": { + "200": { + "description": "Template Site", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/templateSite" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getTemplate", + "group": "templates", + "weight": 554, + "cookies": false, + "type": "", + "demo": "sites\/get-template.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "templateId", + "description": "Template ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TEMPLATE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/sites\/usage": { + "get": { + "summary": "Get sites usage", + "operationId": "sitesListUsage", + "tags": [ + "sites" + ], + "description": "Get usage metrics and statistics for all sites in the project. View statistics including total deployments, builds, logs, storage usage, and compute time. The response includes both current totals and historical data for each metric. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, defaults to 30 days.", + "responses": { + "200": { + "description": "UsageSites", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/usageSites" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listUsage", + "group": null, + "weight": 555, + "cookies": false, + "type": "", + "demo": "sites\/list-usage.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "range", + "description": "Date range.", + "required": false, + "schema": { + "type": "string", + "x-example": "24h", + "enum": [ + "24h", + "30d", + "90d" + ], + "x-enum-name": "UsageRange", + "x-enum-keys": [ + "Twenty Four Hours", + "Thirty Days", + "Ninety Days" + ], + "default": "30d" + }, + "in": "query" + } + ] + } + }, + "\/sites\/{siteId}": { + "get": { + "summary": "Get site", + "operationId": "sitesGet", + "tags": [ + "sites" + ], + "description": "Get a site by its unique ID.", + "responses": { + "200": { + "description": "Site", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/site" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "get", + "group": "sites", + "weight": 530, + "cookies": false, + "type": "", + "demo": "sites\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<SITE_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update site", + "operationId": "sitesUpdate", + "tags": [ + "sites" + ], + "description": "Update site by its unique ID.", + "responses": { + "200": { + "description": "Site", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/site" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "update", + "group": "sites", + "weight": 630, + "cookies": false, + "type": "", + "demo": "sites\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<SITE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Site name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "framework": { + "type": "string", + "description": "Sites framework.", + "x-example": "analog", + "enum": [ + "analog", + "angular", + "nextjs", + "react", + "nuxt", + "vue", + "sveltekit", + "astro", + "tanstack-start", + "remix", + "lynx", + "flutter", + "react-native", + "vite", + "other" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "enabled": { + "type": "boolean", + "description": "Is site enabled? When set to 'disabled', users cannot access the site but Server SDKs with and API key can still access the site. No data is lost when this is toggled.", + "x-example": false + }, + "logging": { + "type": "boolean", + "description": "When disabled, request logs will exclude logs and errors, and site responses will be slightly faster.", + "x-example": false + }, + "timeout": { + "type": "integer", + "description": "Maximum request time in seconds.", + "x-example": 1, + "format": "int32" + }, + "installCommand": { + "type": "string", + "description": "Install Command.", + "x-example": "<INSTALL_COMMAND>" + }, + "buildCommand": { + "type": "string", + "description": "Build Command.", + "x-example": "<BUILD_COMMAND>" + }, + "outputDirectory": { + "type": "string", + "description": "Output Directory for site.", + "x-example": "<OUTPUT_DIRECTORY>" + }, + "buildRuntime": { + "type": "string", + "description": "Runtime to use during build step.", + "x-example": "node-14.5", + "enum": [ + "node-14.5", + "node-16.0", + "node-18.0", + "node-19.0", + "node-20.0", + "node-21.0", + "node-22", + "node-23", + "node-24", + "node-25", + "php-8.0", + "php-8.1", + "php-8.2", + "php-8.3", + "php-8.4", + "ruby-3.0", + "ruby-3.1", + "ruby-3.2", + "ruby-3.3", + "ruby-3.4", + "ruby-4.0", + "python-3.8", + "python-3.9", + "python-3.10", + "python-3.11", + "python-3.12", + "python-3.13", + "python-3.14", + "python-ml-3.11", + "python-ml-3.12", + "python-ml-3.13", + "deno-1.21", + "deno-1.24", + "deno-1.35", + "deno-1.40", + "deno-1.46", + "deno-2.0", + "deno-2.5", + "deno-2.6", + "dart-2.15", + "dart-2.16", + "dart-2.17", + "dart-2.18", + "dart-2.19", + "dart-3.0", + "dart-3.1", + "dart-3.3", + "dart-3.5", + "dart-3.8", + "dart-3.9", + "dart-3.10", + "dotnet-6.0", + "dotnet-7.0", + "dotnet-8.0", + "dotnet-10", + "java-8.0", + "java-11.0", + "java-17.0", + "java-18.0", + "java-21.0", + "java-22", + "java-25", + "swift-5.5", + "swift-5.8", + "swift-5.9", + "swift-5.10", + "swift-6.2", + "kotlin-1.6", + "kotlin-1.8", + "kotlin-1.9", + "kotlin-2.0", + "kotlin-2.3", + "cpp-17", + "cpp-20", + "bun-1.0", + "bun-1.1", + "bun-1.2", + "bun-1.3", + "go-1.23", + "go-1.24", + "go-1.25", + "go-1.26", + "static-1", + "flutter-3.24", + "flutter-3.27", + "flutter-3.29", + "flutter-3.32", + "flutter-3.35", + "flutter-3.38" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "adapter": { + "type": "string", + "description": "Framework adapter defining rendering strategy. Allowed values are: static, ssr", + "x-example": "static", + "enum": [ + "static", + "ssr" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "fallbackFile": { + "type": "string", + "description": "Fallback file for single page application sites.", + "x-example": "<FALLBACK_FILE>" + }, + "installationId": { "type": "string", - "description": "Template message", - "x-example": "<MESSAGE>" + "description": "Appwrite Installation ID for VCS (Version Control System) deployment.", + "x-example": "<INSTALLATION_ID>" + }, + "providerRepositoryId": { + "type": "string", + "description": "Repository ID of the repo linked to the site.", + "x-example": "<PROVIDER_REPOSITORY_ID>" + }, + "providerBranch": { + "type": "string", + "description": "Production branch for the repo linked to the site.", + "x-example": "<PROVIDER_BRANCH>" + }, + "providerSilentMode": { + "type": "boolean", + "description": "Is the VCS (Version Control System) connection in silent mode for the repo linked to the site? In silent mode, comments will not be made on commits and pull requests.", + "x-example": false + }, + "providerRootDirectory": { + "type": "string", + "description": "Path to site code in the linked repo.", + "x-example": "<PROVIDER_ROOT_DIRECTORY>" + }, + "specification": { + "type": "string", + "description": "Framework specification for the site and builds.", + "x-example": null } }, "required": [ - "message" + "name", + "framework" ] } } @@ -42742,307 +48887,155 @@ } }, "delete": { - "summary": "Reset custom SMS template", - "operationId": "projectsDeleteSmsTemplate", + "summary": "Delete site", + "operationId": "sitesDelete", "tags": [ - "projects" + "sites" ], - "description": "Reset a custom SMS template to its default value. This endpoint removes any custom message and restores the template to its original state. ", + "description": "Delete a site by its unique ID.", "responses": { - "200": { - "description": "SmsTemplate", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/smsTemplate" - } - } - } + "204": { + "description": "No content" } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "deleteSmsTemplate", - "group": "templates", - "weight": 97, + "method": "delete", + "group": "sites", + "weight": 533, "cookies": false, "type": "", - "demo": "projects\/delete-sms-template.md", + "demo": "sites\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "sites.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/delete-sms-template.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "projects.deleteSMSTemplate" - }, - "methods": [ - { - "name": "deleteSmsTemplate", - "namespace": "projects", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "projectId", - "type", - "locale" - ], - "required": [ - "projectId", - "type", - "locale" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/smsTemplate" - } - ], - "description": "Reset a custom SMS template to its default value. This endpoint removes any custom message and restores the template to its original state. ", - "demo": "projects\/delete-sms-template.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "projects.deleteSMSTemplate" - } - }, - { - "name": "deleteSMSTemplate", - "namespace": "projects", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "projectId", - "type", - "locale" - ], - "required": [ - "projectId", - "type", - "locale" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/smsTemplate" - } - ], - "description": "Reset a custom SMS template to its default value. This endpoint removes any custom message and restores the template to its original state. ", - "demo": "projects\/delete-sms-template.md", - "public": true - } - ], + "public": true, "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<SITE_ID>" }, "in": "path" - }, + } + ] + } + }, + "\/sites\/{siteId}\/deployment": { + "patch": { + "summary": "Update site's deployment", + "operationId": "sitesUpdateSiteDeployment", + "tags": [ + "sites" + ], + "description": "Update the site active deployment. Use this endpoint to switch the code deployment that should be used when visitor opens your site.", + "responses": { + "200": { + "description": "Site", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/site" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateSiteDeployment", + "group": "sites", + "weight": 540, + "cookies": false, + "type": "", + "demo": "sites\/update-site-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ { - "name": "type", - "description": "Template type", - "required": true, - "schema": { - "type": "string", - "x-example": "verification", - "enum": [ - "verification", - "login", - "invitation", - "mfaChallenge" - ], - "x-enum-name": "SmsTemplateType", - "x-enum-keys": [] - }, - "in": "path" - }, + "Project": [], + "Key": [] + } + ], + "parameters": [ { - "name": "locale", - "description": "Template locale", + "name": "siteId", + "description": "Site ID.", "required": true, "schema": { "type": "string", - "x-example": "af", - "enum": [ - "af", - "ar-ae", - "ar-bh", - "ar-dz", - "ar-eg", - "ar-iq", - "ar-jo", - "ar-kw", - "ar-lb", - "ar-ly", - "ar-ma", - "ar-om", - "ar-qa", - "ar-sa", - "ar-sy", - "ar-tn", - "ar-ye", - "as", - "az", - "be", - "bg", - "bh", - "bn", - "bs", - "ca", - "cs", - "cy", - "da", - "de", - "de-at", - "de-ch", - "de-li", - "de-lu", - "el", - "en", - "en-au", - "en-bz", - "en-ca", - "en-gb", - "en-ie", - "en-jm", - "en-nz", - "en-tt", - "en-us", - "en-za", - "eo", - "es", - "es-ar", - "es-bo", - "es-cl", - "es-co", - "es-cr", - "es-do", - "es-ec", - "es-gt", - "es-hn", - "es-mx", - "es-ni", - "es-pa", - "es-pe", - "es-pr", - "es-py", - "es-sv", - "es-uy", - "es-ve", - "et", - "eu", - "fa", - "fi", - "fo", - "fr", - "fr-be", - "fr-ca", - "fr-ch", - "fr-lu", - "ga", - "gd", - "he", - "hi", - "hr", - "hu", - "id", - "is", - "it", - "it-ch", - "ja", - "ji", - "ko", - "ku", - "lt", - "lv", - "mk", - "ml", - "ms", - "mt", - "nb", - "ne", - "nl", - "nl-be", - "nn", - "no", - "pa", - "pl", - "pt", - "pt-br", - "rm", - "ro", - "ro-md", - "ru", - "ru-md", - "sb", - "sk", - "sl", - "sq", - "sr", - "sv", - "sv-fi", - "th", - "tn", - "tr", - "ts", - "ua", - "ur", - "ve", - "vi", - "xh", - "zh-cn", - "zh-hk", - "zh-sg", - "zh-tw", - "zu" - ], - "x-enum-name": "SmsTemplateLocale", - "x-enum-keys": [] + "x-example": "<SITE_ID>" }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "deploymentId": { + "type": "string", + "description": "Deployment ID.", + "x-example": "<DEPLOYMENT_ID>" + } + }, + "required": [ + "deploymentId" + ] + } + } + } + } } }, - "\/projects\/{projectId}\/webhooks": { + "\/sites\/{siteId}\/deployments": { "get": { - "summary": "List webhooks", - "operationId": "projectsListWebhooks", + "summary": "List deployments", + "operationId": "sitesListDeployments", "tags": [ - "projects" + "sites" ], - "description": "Get a list of all webhooks belonging to the project. You can use the query params to filter your results. ", + "description": "Get a list of all the site's code deployments. You can use the query params to filter your results.", "responses": { "200": { - "description": "Webhooks List", + "description": "Deployments List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/webhookList" + "$ref": "#\/components\/schemas\/deploymentList" } } } @@ -43050,42 +49043,67 @@ }, "deprecated": false, "x-appwrite": { - "method": "listWebhooks", - "group": "webhooks", - "weight": 75, + "method": "listDeployments", + "group": "deployments", + "weight": 539, "cookies": false, "type": "", - "demo": "projects\/list-webhooks.md", + "demo": "sites\/list-deployments.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.read", + "scope": "sites.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/list-webhooks.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<SITE_ID>" }, "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", + "x-example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, { "name": "total", "description": "When set to false, the total count returned will be 0 and will not be calculated.", @@ -43100,19 +49118,19 @@ ] }, "post": { - "summary": "Create webhook", - "operationId": "projectsCreateWebhook", + "summary": "Create deployment", + "operationId": "sitesCreateDeployment", "tags": [ - "projects" + "sites" ], - "description": "Create a new webhook. Use this endpoint to configure a URL that will receive events from Appwrite when specific events occur. ", + "description": "Create a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the site's deployment to use your new deployment ID.", "responses": { - "201": { - "description": "Webhook", + "202": { + "description": "Deployment", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/webhook" + "$ref": "#\/components\/schemas\/deployment" } } } @@ -43120,93 +49138,82 @@ }, "deprecated": false, "x-appwrite": { - "method": "createWebhook", - "group": "webhooks", - "weight": 74, + "method": "createDeployment", + "group": "deployments", + "weight": 535, "cookies": false, - "type": "", - "demo": "projects\/create-webhook.md", + "type": "upload", + "demo": "sites\/create-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "sites.write", "platforms": [ - "console" + "console", + "server" ], - "packaging": false, + "packaging": true, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/create-webhook.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<SITE_ID>" }, "in": "path" } ], "requestBody": { "content": { - "application\/json": { + "multipart\/form-data": { "schema": { "type": "object", "properties": { - "name": { + "installCommand": { "type": "string", - "description": "Webhook name. Max length: 128 chars.", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Enable or disable a webhook.", - "x-example": false - }, - "events": { - "type": "array", - "description": "Events list. Maximum of 100 events are allowed.", - "x-example": null, - "items": { - "type": "string" - } + "description": "Install Commands.", + "x-example": "<INSTALL_COMMAND>", + "x-nullable": true }, - "url": { + "buildCommand": { "type": "string", - "description": "Webhook URL.", - "x-example": null - }, - "security": { - "type": "boolean", - "description": "Certificate verification, false for disabled or true for enabled.", - "x-example": false + "description": "Build Commands.", + "x-example": "<BUILD_COMMAND>", + "x-nullable": true }, - "httpUser": { + "outputDirectory": { "type": "string", - "description": "Webhook HTTP user. Max length: 256 chars.", - "x-example": "<HTTP_USER>" + "description": "Output Directory.", + "x-example": "<OUTPUT_DIRECTORY>", + "x-nullable": true }, - "httpPass": { + "code": { "type": "string", - "description": "Webhook HTTP password. Max length: 256 chars.", - "x-example": "<HTTP_PASS>" + "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.", + "x-example": null, + "format": "binary" + }, + "activate": { + "type": "boolean", + "description": "Automatically activate the deployment when it is finished building.", + "x-example": false } }, "required": [ - "name", - "events", - "url", - "security" + "code" ] } } @@ -43214,21 +49221,21 @@ } } }, - "\/projects\/{projectId}\/webhooks\/{webhookId}": { - "get": { - "summary": "Get webhook", - "operationId": "projectsGetWebhook", + "\/sites\/{siteId}\/deployments\/duplicate": { + "post": { + "summary": "Create duplicate deployment", + "operationId": "sitesCreateDuplicateDeployment", "tags": [ - "projects" + "sites" ], - "description": "Get a webhook by its unique ID. This endpoint returns details about a specific webhook configured for a project. ", + "description": "Create a new build for an existing site deployment. This endpoint allows you to rebuild a deployment with the updated site configuration, including its commands and output directory if they have been modified. The build process will be queued and executed asynchronously. The original deployment's code will be preserved and used for the new build.", "responses": { - "200": { - "description": "Webhook", + "202": { + "description": "Deployment", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/webhook" + "$ref": "#\/components\/schemas\/deployment" } } } @@ -43236,68 +49243,80 @@ }, "deprecated": false, "x-appwrite": { - "method": "getWebhook", - "group": "webhooks", - "weight": 76, + "method": "createDuplicateDeployment", + "group": "deployments", + "weight": 543, "cookies": false, "type": "", - "demo": "projects\/get-webhook.md", + "demo": "sites\/create-duplicate-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.read", + "scope": "sites.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/get-webhook.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PROJECT_ID>" - }, - "in": "path" - }, - { - "name": "webhookId", - "description": "Webhook unique ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "schema": { "type": "string", - "x-example": "<WEBHOOK_ID>" + "x-example": "<SITE_ID>" }, "in": "path" } - ] - }, - "put": { - "summary": "Update webhook", - "operationId": "projectsUpdateWebhook", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "deploymentId": { + "type": "string", + "description": "Deployment ID.", + "x-example": "<DEPLOYMENT_ID>" + } + }, + "required": [ + "deploymentId" + ] + } + } + } + } + } + }, + "\/sites\/{siteId}\/deployments\/template": { + "post": { + "summary": "Create template deployment", + "operationId": "sitesCreateTemplateDeployment", "tags": [ - "projects" + "sites" ], - "description": "Update a webhook by its unique ID. Use this endpoint to update the URL, events, or status of an existing webhook. ", + "description": "Create a deployment based on a template.\n\nUse this endpoint with combination of [listTemplates](https:\/\/appwrite.io\/docs\/products\/sites\/templates) to find the template details.", "responses": { - "200": { - "description": "Webhook", + "202": { + "description": "Deployment", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/webhook" + "$ref": "#\/components\/schemas\/deployment" } } } @@ -43305,49 +49324,40 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateWebhook", - "group": "webhooks", - "weight": 77, + "method": "createTemplateDeployment", + "group": "deployments", + "weight": 536, "cookies": false, "type": "", - "demo": "projects\/update-webhook.md", + "demo": "sites\/create-template-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "sites.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-webhook.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PROJECT_ID>" - }, - "in": "path" - }, - { - "name": "webhookId", - "description": "Webhook unique ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "schema": { "type": "string", - "x-example": "<WEBHOOK_ID>" + "x-example": "<SITE_ID>" }, "in": "path" } @@ -43358,134 +49368,171 @@ "schema": { "type": "object", "properties": { - "name": { + "repository": { "type": "string", - "description": "Webhook name. Max length: 128 chars.", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Enable or disable a webhook.", - "x-example": false - }, - "events": { - "type": "array", - "description": "Events list. Maximum of 100 events are allowed.", - "x-example": null, - "items": { - "type": "string" - } + "description": "Repository name of the template.", + "x-example": "<REPOSITORY>" }, - "url": { + "owner": { "type": "string", - "description": "Webhook URL.", - "x-example": null + "description": "The name of the owner of the template.", + "x-example": "<OWNER>" }, - "security": { - "type": "boolean", - "description": "Certificate verification, false for disabled or true for enabled.", - "x-example": false + "rootDirectory": { + "type": "string", + "description": "Path to site code in the template repo.", + "x-example": "<ROOT_DIRECTORY>" }, - "httpUser": { + "type": { "type": "string", - "description": "Webhook HTTP user. Max length: 256 chars.", - "x-example": "<HTTP_USER>" + "description": "Type for the reference provided. Can be commit, branch, or tag", + "x-example": "branch", + "enum": [ + "branch", + "commit", + "tag" + ], + "x-enum-name": "TemplateReferenceType", + "x-enum-keys": [] }, - "httpPass": { + "reference": { "type": "string", - "description": "Webhook HTTP password. Max length: 256 chars.", - "x-example": "<HTTP_PASS>" + "description": "Reference value, can be a commit hash, branch name, or release tag", + "x-example": "<REFERENCE>" + }, + "activate": { + "type": "boolean", + "description": "Automatically activate the deployment when it is finished building.", + "x-example": false } }, "required": [ - "name", - "events", - "url", - "security" + "repository", + "owner", + "rootDirectory", + "type", + "reference" ] } } } } - }, - "delete": { - "summary": "Delete webhook", - "operationId": "projectsDeleteWebhook", + } + }, + "\/sites\/{siteId}\/deployments\/vcs": { + "post": { + "summary": "Create VCS deployment", + "operationId": "sitesCreateVcsDeployment", "tags": [ - "projects" + "sites" ], - "description": "Delete a webhook by its unique ID. Once deleted, the webhook will no longer receive project events. ", + "description": "Create a deployment when a site is connected to VCS.\n\nThis endpoint lets you create deployment from a branch, commit, or a tag.", "responses": { - "204": { - "description": "No content" + "202": { + "description": "Deployment", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/deployment" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteWebhook", - "group": "webhooks", - "weight": 79, + "method": "createVcsDeployment", + "group": "deployments", + "weight": 537, "cookies": false, "type": "", - "demo": "projects\/delete-webhook.md", + "demo": "sites\/create-vcs-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "sites.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/delete-webhook.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PROJECT_ID>" - }, - "in": "path" - }, - { - "name": "webhookId", - "description": "Webhook unique ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "schema": { "type": "string", - "x-example": "<WEBHOOK_ID>" + "x-example": "<SITE_ID>" }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Type of reference passed. Allowed values are: branch, commit", + "x-example": "branch", + "enum": [ + "branch", + "commit", + "tag" + ], + "x-enum-name": "VCSReferenceType", + "x-enum-keys": [] + }, + "reference": { + "type": "string", + "description": "VCS reference to create deployment from. Depending on type this can be: branch name, commit hash", + "x-example": "<REFERENCE>" + }, + "activate": { + "type": "boolean", + "description": "Automatically activate the deployment when it is finished building.", + "x-example": false + } + }, + "required": [ + "type", + "reference" + ] + } + } + } + } } }, - "\/projects\/{projectId}\/webhooks\/{webhookId}\/signature": { - "patch": { - "summary": "Update webhook signature key", - "operationId": "projectsUpdateWebhookSignature", + "\/sites\/{siteId}\/deployments\/{deploymentId}": { + "get": { + "summary": "Get deployment", + "operationId": "sitesGetDeployment", "tags": [ - "projects" + "sites" ], - "description": "Update the webhook signature key. This endpoint can be used to regenerate the signature key used to sign and validate payload deliveries for a specific webhook. ", + "description": "Get a site deployment by its unique ID.", "responses": { "200": { - "description": "Webhook", + "description": "Deployment", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/webhook" + "$ref": "#\/components\/schemas\/deployment" } } } @@ -43493,89 +49540,82 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateWebhookSignature", - "group": "webhooks", - "weight": 78, + "method": "getDeployment", + "group": "deployments", + "weight": 538, "cookies": false, "type": "", - "demo": "projects\/update-webhook-signature.md", + "demo": "sites\/get-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "sites.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-webhook-signature.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "schema": { "type": "string", - "x-example": "<PROJECT_ID>" + "x-example": "<SITE_ID>" }, "in": "path" }, { - "name": "webhookId", - "description": "Webhook unique ID.", + "name": "deploymentId", + "description": "Deployment ID.", "required": true, "schema": { "type": "string", - "x-example": "<WEBHOOK_ID>" + "x-example": "<DEPLOYMENT_ID>" }, "in": "path" } ] - } - }, - "\/proxy\/rules": { - "get": { - "summary": "List rules", - "operationId": "proxyListRules", + }, + "delete": { + "summary": "Delete deployment", + "operationId": "sitesDeleteDeployment", "tags": [ - "proxy" + "sites" ], - "description": "Get a list of all the proxy rules. You can use the query params to filter your results.", + "description": "Delete a site deployment by its unique ID.", "responses": { - "200": { - "description": "Rule List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/proxyRuleList" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "listRules", - "group": null, - "weight": 787, + "method": "deleteDeployment", + "group": "deployments", + "weight": 541, "cookies": false, "type": "", - "demo": "proxy\/list-rules.md", + "demo": "sites\/delete-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rules.read", + "scope": "sites.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -43585,149 +49625,63 @@ }, "security": [ { - "Project": [] + "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 the following attributes: domain, type, trigger, deploymentResourceType, deploymentResourceId, deploymentId, deploymentVcsProviderBranch", - "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, + "name": "siteId", + "description": "Site ID.", + "required": true, "schema": { "type": "string", - "x-example": "<SEARCH>", - "default": "" + "x-example": "<SITE_ID>" }, - "in": "query" + "in": "path" }, { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, "schema": { - "type": "boolean", - "x-example": false, - "default": true + "type": "string", + "x-example": "<DEPLOYMENT_ID>" }, - "in": "query" + "in": "path" } ] } }, - "\/proxy\/rules\/api": { - "post": { - "summary": "Create API rule", - "operationId": "proxyCreateAPIRule", - "tags": [ - "proxy" - ], - "description": "Create a new proxy rule for serving Appwrite's API on custom domain.", - "responses": { - "201": { - "description": "Rule", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/proxyRule" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "createAPIRule", - "group": null, - "weight": 782, - "cookies": false, - "type": "", - "demo": "proxy\/create-api-rule.md", - "rate-limit": 10, - "rate-time": 60, - "rate-key": "userId:{userId}, url:{url}", - "scope": "rules.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "domain": { - "type": "string", - "description": "Domain name.", - "x-example": null - } - }, - "required": [ - "domain" - ] - } - } - } - } - } - }, - "\/proxy\/rules\/function": { - "post": { - "summary": "Create function rule", - "operationId": "proxyCreateFunctionRule", + "\/sites\/{siteId}\/deployments\/{deploymentId}\/download": { + "get": { + "summary": "Get deployment download", + "operationId": "sitesGetDeploymentDownload", "tags": [ - "proxy" + "sites" ], - "description": "Create a new proxy rule for executing Appwrite Function on custom domain.", + "description": "Get a site deployment content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory.", "responses": { - "201": { - "description": "Rule", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/proxyRule" - } - } - } + "200": { + "description": "File" } }, "deprecated": false, "x-appwrite": { - "method": "createFunctionRule", - "group": null, - "weight": 784, + "method": "getDeploymentDownload", + "group": "deployments", + "weight": 542, "cookies": false, - "type": "", - "demo": "proxy\/create-function-rule.md", - "rate-limit": 10, - "rate-time": 60, - "rate-key": "userId:{userId}, url:{url}", - "scope": "rules.write", + "type": "location", + "demo": "sites\/get-deployment-download.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.read", "platforms": [ - "console" + "console", + "server", + "server" ], "packaging": false, "public": true, @@ -43737,56 +49691,67 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [], + "JWT": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "domain": { - "type": "string", - "description": "Domain name.", - "x-example": null - }, - "functionId": { - "type": "string", - "description": "ID of function to be executed.", - "x-example": "<FUNCTION_ID>" - }, - "branch": { - "type": "string", - "description": "Name of VCS branch to deploy changes automatically", - "x-example": "<BRANCH>" - } - }, - "required": [ - "domain", - "functionId" - ] - } - } + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DEPLOYMENT_ID>" + }, + "in": "path" + }, + { + "name": "type", + "description": "Deployment file to download. Can be: \"source\", \"output\".", + "required": false, + "schema": { + "type": "string", + "x-example": "source", + "enum": [ + "source", + "output" + ], + "x-enum-name": "DeploymentDownloadType", + "x-enum-keys": [], + "default": "source" + }, + "in": "query" } - } + ] } }, - "\/proxy\/rules\/redirect": { - "post": { - "summary": "Create Redirect rule", - "operationId": "proxyCreateRedirectRule", + "\/sites\/{siteId}\/deployments\/{deploymentId}\/status": { + "patch": { + "summary": "Update deployment status", + "operationId": "sitesUpdateDeploymentStatus", "tags": [ - "proxy" + "sites" ], - "description": "Create a new proxy rule for to redirect from custom domain to another domain.", + "description": "Cancel an ongoing site deployment build. If the build is already in progress, it will be stopped and marked as canceled. If the build hasn't started yet, it will be marked as canceled without executing. You cannot cancel builds that have already completed (status 'ready') or failed. The response includes the final build status and details.", "responses": { - "201": { - "description": "Rule", + "200": { + "description": "Deployment", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/proxyRule" + "$ref": "#\/components\/schemas\/deployment" } } } @@ -43794,18 +49759,19 @@ }, "deprecated": false, "x-appwrite": { - "method": "createRedirectRule", - "group": null, - "weight": 785, + "method": "updateDeploymentStatus", + "group": "deployments", + "weight": 544, "cookies": false, "type": "", - "demo": "proxy\/create-redirect-rule.md", - "rate-limit": 10, - "rate-time": 60, - "rate-key": "userId:{userId}, url:{url}", - "scope": "rules.write", + "demo": "sites\/update-deployment-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -43815,92 +49781,49 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "domain": { - "type": "string", - "description": "Domain name.", - "x-example": null - }, - "url": { - "type": "string", - "description": "Target URL of redirection", - "x-example": "https:\/\/example.com", - "format": "url" - }, - "statusCode": { - "type": "string", - "description": "Status code of redirection", - "x-example": "301", - "enum": [ - "301", - "302", - "307", - "308" - ], - "x-enum-name": null, - "x-enum-keys": [ - "Moved Permanently 301", - "Found 302", - "Temporary Redirect 307", - "Permanent Redirect 308" - ] - }, - "resourceId": { - "type": "string", - "description": "ID of parent resource.", - "x-example": "<RESOURCE_ID>" - }, - "resourceType": { - "type": "string", - "description": "Type of parent resource.", - "x-example": "site", - "enum": [ - "site", - "function" - ], - "x-enum-name": "ProxyResourceType", - "x-enum-keys": [ - "Site", - "Function" - ] - } - }, - "required": [ - "domain", - "url", - "statusCode", - "resourceId", - "resourceType" - ] - } - } + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DEPLOYMENT_ID>" + }, + "in": "path" } - } + ] } }, - "\/proxy\/rules\/site": { - "post": { - "summary": "Create site rule", - "operationId": "proxyCreateSiteRule", + "\/sites\/{siteId}\/logs": { + "get": { + "summary": "List logs", + "operationId": "sitesListLogs", "tags": [ - "proxy" + "sites" ], - "description": "Create a new proxy rule for serving Appwrite Site on custom domain.", + "description": "Get a list of all site logs. You can use the query params to filter your results.", "responses": { - "201": { - "description": "Rule", + "200": { + "description": "Executions List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/proxyRule" + "$ref": "#\/components\/schemas\/executionList" } } } @@ -43908,18 +49831,19 @@ }, "deprecated": false, "x-appwrite": { - "method": "createSiteRule", - "group": null, - "weight": 783, + "method": "listLogs", + "group": "logs", + "weight": 546, "cookies": false, "type": "", - "demo": "proxy\/create-site-rule.md", - "rate-limit": 10, - "rate-time": 60, - "rate-key": "userId:{userId}, url:{url}", - "scope": "rules.write", + "demo": "sites\/list-logs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "log.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -43929,56 +49853,63 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "domain": { - "type": "string", - "description": "Domain name.", - "x-example": null - }, - "siteId": { - "type": "string", - "description": "ID of site to be executed.", - "x-example": "<SITE_ID>" - }, - "branch": { - "type": "string", - "description": "Name of VCS branch to deploy changes automatically", - "x-example": "<BRANCH>" - } - }, - "required": [ - "domain", - "siteId" - ] - } - } + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<SITE_ID>" + }, + "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", + "x-example": false, + "default": true + }, + "in": "query" } - } + ] } }, - "\/proxy\/rules\/{ruleId}": { + "\/sites\/{siteId}\/logs\/{logId}": { "get": { - "summary": "Get rule", - "operationId": "proxyGetRule", + "summary": "Get log", + "operationId": "sitesGetLog", "tags": [ - "proxy" + "sites" ], - "description": "Get a proxy rule by its unique ID.", + "description": "Get a site request log by its unique ID.", "responses": { "200": { - "description": "Rule", + "description": "Execution", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/proxyRule" + "$ref": "#\/components\/schemas\/execution" } } } @@ -43986,18 +49917,19 @@ }, "deprecated": false, "x-appwrite": { - "method": "getRule", - "group": null, - "weight": 786, + "method": "getLog", + "group": "logs", + "weight": 545, "cookies": false, "type": "", - "demo": "proxy\/get-rule.md", + "demo": "sites\/get-log.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rules.read", + "scope": "log.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -44007,29 +49939,40 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "ruleId", - "description": "Rule ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "schema": { "type": "string", - "x-example": "<RULE_ID>" + "x-example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "logId", + "description": "Log ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<LOG_ID>" }, "in": "path" } ] }, "delete": { - "summary": "Delete rule", - "operationId": "proxyDeleteRule", + "summary": "Delete log", + "operationId": "sitesDeleteLog", "tags": [ - "proxy" + "sites" ], - "description": "Delete a proxy rule by its unique ID.", + "description": "Delete a site log by its unique ID.", "responses": { "204": { "description": "No content" @@ -44037,18 +49980,19 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteRule", - "group": null, - "weight": 788, + "method": "deleteLog", + "group": "logs", + "weight": 547, "cookies": false, "type": "", - "demo": "proxy\/delete-rule.md", + "demo": "sites\/delete-log.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rules.write", + "scope": "log.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -44058,38 +50002,49 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "ruleId", - "description": "Rule ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "schema": { "type": "string", - "x-example": "<RULE_ID>" + "x-example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "logId", + "description": "Log ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<LOG_ID>" }, "in": "path" } ] } }, - "\/proxy\/rules\/{ruleId}\/verification": { - "patch": { - "summary": "Update rule verification status", - "operationId": "proxyUpdateRuleVerification", + "\/sites\/{siteId}\/usage": { + "get": { + "summary": "Get site usage", + "operationId": "sitesGetUsage", "tags": [ - "proxy" + "sites" ], - "description": "Retry getting verification process of a proxy rule. This endpoint triggers domain verification by checking DNS records (CNAME) against the configured target domain. If verification is successful, a TLS certificate will be automatically provisioned for the domain.", + "description": "Get usage metrics and statistics for a for a specific site. View statistics including total deployments, builds, executions, storage usage, and compute time. The response includes both current totals and historical data for each metric. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, defaults to 30 days.", "responses": { "200": { - "description": "Rule", + "description": "UsageSite", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/proxyRule" + "$ref": "#\/components\/schemas\/usageSite" } } } @@ -44097,16 +50052,16 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateRuleVerification", + "method": "getUsage", "group": null, - "weight": 789, + "weight": 556, "cookies": false, "type": "", - "demo": "proxy\/update-rule-verification.md", + "demo": "sites\/get-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rules.write", + "scope": "sites.read", "platforms": [ "console" ], @@ -44123,33 +50078,55 @@ ], "parameters": [ { - "name": "ruleId", - "description": "Rule ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "schema": { "type": "string", - "x-example": "<RULE_ID>" + "x-example": "<SITE_ID>" }, "in": "path" + }, + { + "name": "range", + "description": "Date range.", + "required": false, + "schema": { + "type": "string", + "x-example": "24h", + "enum": [ + "24h", + "30d", + "90d" + ], + "x-enum-name": "UsageRange", + "x-enum-keys": [ + "Twenty Four Hours", + "Thirty Days", + "Ninety Days" + ], + "default": "30d" + }, + "in": "query" } ] } }, - "\/sites": { + "\/sites\/{siteId}\/variables": { "get": { - "summary": "List sites", - "operationId": "sitesList", + "summary": "List variables", + "operationId": "sitesListVariables", "tags": [ "sites" ], - "description": "Get a list of all the project's sites. You can use the query params to filter your results.", + "description": "Get a list of all variables of a specific site.", "responses": { "200": { - "description": "Sites List", + "description": "Variables List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/siteList" + "$ref": "#\/components\/schemas\/variableList" } } } @@ -44157,12 +50134,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "list", - "group": "sites", - "weight": 590, + "method": "listVariables", + "group": "variables", + "weight": 550, "cookies": false, "type": "", - "demo": "sites\/list.md", + "demo": "sites\/list-variables.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -44175,66 +50152,41 @@ "public": true, "auth": { "Project": [] - } - }, - "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, framework, deploymentId, buildCommand, installCommand, outputDirectory, installationId", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" - }, + } + }, + "security": [ { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "x-example": "<SEARCH>", - "default": "" - }, - "in": "query" - }, + "Project": [], + "Key": [] + } + ], + "parameters": [ { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, + "name": "siteId", + "description": "Site unique ID.", + "required": true, "schema": { - "type": "boolean", - "x-example": false, - "default": true + "type": "string", + "x-example": "<SITE_ID>" }, - "in": "query" + "in": "path" } ] }, "post": { - "summary": "Create site", - "operationId": "sitesCreate", + "summary": "Create variable", + "operationId": "sitesCreateVariable", "tags": [ "sites" ], - "description": "Create a new site.", + "description": "Create a new site variable. These variables can be accessed during build and runtime (server-side rendering) as environment variables.", "responses": { "201": { - "description": "Site", + "description": "Variable", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/site" + "$ref": "#\/components\/schemas\/variable" } } } @@ -44242,12 +50194,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "create", - "group": "sites", - "weight": 588, + "method": "createVariable", + "group": "variables", + "weight": 631, "cookies": false, "type": "", - "demo": "sites\/create.md", + "demo": "sites\/create-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -44268,227 +50220,43 @@ "Key": [] } ], + "parameters": [ + { + "name": "siteId", + "description": "Site unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<SITE_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "siteId": { - "type": "string", - "description": "Site 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.", - "x-example": "<SITE_ID>" - }, - "name": { - "type": "string", - "description": "Site name. Max length: 128 chars.", - "x-example": "<NAME>" - }, - "framework": { - "type": "string", - "description": "Sites framework.", - "x-example": "analog", - "enum": [ - "analog", - "angular", - "nextjs", - "react", - "nuxt", - "vue", - "sveltekit", - "astro", - "tanstack-start", - "remix", - "lynx", - "flutter", - "react-native", - "vite", - "other" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "enabled": { - "type": "boolean", - "description": "Is site enabled? When set to 'disabled', users cannot access the site but Server SDKs with and API key can still access the site. No data is lost when this is toggled.", - "x-example": false - }, - "logging": { - "type": "boolean", - "description": "When disabled, request logs will exclude logs and errors, and site responses will be slightly faster.", - "x-example": false - }, - "timeout": { - "type": "integer", - "description": "Maximum request time in seconds.", - "x-example": 1, - "format": "int32" - }, - "installCommand": { - "type": "string", - "description": "Install Command.", - "x-example": "<INSTALL_COMMAND>" - }, - "buildCommand": { - "type": "string", - "description": "Build Command.", - "x-example": "<BUILD_COMMAND>" - }, - "outputDirectory": { - "type": "string", - "description": "Output Directory for site.", - "x-example": "<OUTPUT_DIRECTORY>" - }, - "buildRuntime": { - "type": "string", - "description": "Runtime to use during build step.", - "x-example": "node-14.5", - "enum": [ - "node-14.5", - "node-16.0", - "node-18.0", - "node-19.0", - "node-20.0", - "node-21.0", - "node-22", - "node-23", - "node-24", - "node-25", - "php-8.0", - "php-8.1", - "php-8.2", - "php-8.3", - "php-8.4", - "ruby-3.0", - "ruby-3.1", - "ruby-3.2", - "ruby-3.3", - "ruby-3.4", - "ruby-4.0", - "python-3.8", - "python-3.9", - "python-3.10", - "python-3.11", - "python-3.12", - "python-3.13", - "python-3.14", - "python-ml-3.11", - "python-ml-3.12", - "python-ml-3.13", - "deno-1.21", - "deno-1.24", - "deno-1.35", - "deno-1.40", - "deno-1.46", - "deno-2.0", - "deno-2.5", - "deno-2.6", - "dart-2.15", - "dart-2.16", - "dart-2.17", - "dart-2.18", - "dart-2.19", - "dart-3.0", - "dart-3.1", - "dart-3.3", - "dart-3.5", - "dart-3.8", - "dart-3.9", - "dart-3.10", - "dotnet-6.0", - "dotnet-7.0", - "dotnet-8.0", - "dotnet-10", - "java-8.0", - "java-11.0", - "java-17.0", - "java-18.0", - "java-21.0", - "java-22", - "java-25", - "swift-5.5", - "swift-5.8", - "swift-5.9", - "swift-5.10", - "swift-6.2", - "kotlin-1.6", - "kotlin-1.8", - "kotlin-1.9", - "kotlin-2.0", - "kotlin-2.3", - "cpp-17", - "cpp-20", - "bun-1.0", - "bun-1.1", - "bun-1.2", - "bun-1.3", - "go-1.23", - "go-1.24", - "go-1.25", - "go-1.26", - "static-1", - "flutter-3.24", - "flutter-3.27", - "flutter-3.29", - "flutter-3.32", - "flutter-3.35", - "flutter-3.38" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "adapter": { - "type": "string", - "description": "Framework adapter defining rendering strategy. Allowed values are: static, ssr", - "x-example": "static", - "enum": [ - "static", - "ssr" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "installationId": { - "type": "string", - "description": "Appwrite Installation ID for VCS (Version Control System) deployment.", - "x-example": "<INSTALLATION_ID>" - }, - "fallbackFile": { - "type": "string", - "description": "Fallback file for single page application sites.", - "x-example": "<FALLBACK_FILE>" - }, - "providerRepositoryId": { + "key": { "type": "string", - "description": "Repository ID of the repo linked to the site.", - "x-example": "<PROVIDER_REPOSITORY_ID>" + "description": "Variable key. Max length: 255 chars.", + "x-example": "<KEY>" }, - "providerBranch": { + "value": { "type": "string", - "description": "Production branch for the repo linked to the site.", - "x-example": "<PROVIDER_BRANCH>" + "description": "Variable value. Max length: 8192 chars.", + "x-example": "<VALUE>" }, - "providerSilentMode": { + "secret": { "type": "boolean", - "description": "Is the VCS (Version Control System) connection in silent mode for the repo linked to the site? In silent mode, comments will not be made on commits and pull requests.", + "description": "Secret variables can be updated or deleted, but only sites can read them during build and runtime.", "x-example": false - }, - "providerRootDirectory": { - "type": "string", - "description": "Path to site code in the linked repo.", - "x-example": "<PROVIDER_ROOT_DIRECTORY>" - }, - "specification": { - "type": "string", - "description": "Framework specification for the site and builds.", - "x-example": null } }, "required": [ - "siteId", - "name", - "framework", - "buildRuntime" + "key", + "value" ] } } @@ -44496,21 +50264,21 @@ } } }, - "\/sites\/frameworks": { + "\/sites\/{siteId}\/variables\/{variableId}": { "get": { - "summary": "List frameworks", - "operationId": "sitesListFrameworks", + "summary": "Get variable", + "operationId": "sitesGetVariable", "tags": [ "sites" ], - "description": "Get a list of all frameworks that are currently available on the server instance.", + "description": "Get a variable by its unique ID.", "responses": { "200": { - "description": "Frameworks List", + "description": "Variable", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/frameworkList" + "$ref": "#\/components\/schemas\/variable" } } } @@ -44518,16 +50286,16 @@ }, "deprecated": false, "x-appwrite": { - "method": "listFrameworks", - "group": "frameworks", - "weight": 593, + "method": "getVariable", + "group": "variables", + "weight": 549, "cookies": false, "type": "", - "demo": "sites\/list-frameworks.md", + "demo": "sites\/get-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "sites.read", "platforms": [ "console", "server" @@ -44543,74 +50311,44 @@ "Project": [], "Key": [] } - ] - } - }, - "\/sites\/specifications": { - "get": { - "summary": "List specifications", - "operationId": "sitesListSpecifications", - "tags": [ - "sites" ], - "description": "List allowed site specifications for this instance.", - "responses": { - "200": { - "description": "Specifications List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/specificationList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "listSpecifications", - "group": "frameworks", - "weight": 616, - "cookies": false, - "type": "", - "demo": "sites\/list-specifications.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", - "platforms": [ - "server", - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ + "parameters": [ { - "Project": [], - "Key": [] + "name": "siteId", + "description": "Site unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<VARIABLE_ID>" + }, + "in": "path" } ] - } - }, - "\/sites\/templates": { - "get": { - "summary": "List templates", - "operationId": "sitesListTemplates", + }, + "put": { + "summary": "Update variable", + "operationId": "sitesUpdateVariable", "tags": [ "sites" ], - "description": "List available site templates. You can use template details in [createSite](\/docs\/references\/cloud\/server-nodejs\/sites#create) method.", + "description": "Update variable by its unique ID.", "responses": { "200": { - "description": "Site Templates List", + "description": "Variable", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/templateSiteList" + "$ref": "#\/components\/schemas\/variable" } } } @@ -44618,18 +50356,19 @@ }, "deprecated": false, "x-appwrite": { - "method": "listTemplates", - "group": "templates", - "weight": 612, + "method": "updateVariable", + "group": "variables", + "weight": 551, "cookies": false, "type": "", - "demo": "sites\/list-templates.md", + "demo": "sites\/update-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "sites.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -44639,110 +50378,143 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "frameworks", - "description": "List of frameworks allowed for filtering site templates. Maximum of 100 frameworks are allowed.", - "required": false, + "name": "siteId", + "description": "Site unique ID.", + "required": true, "schema": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "analog", - "angular", - "nextjs", - "react", - "nuxt", - "vue", - "sveltekit", - "astro", - "tanstack-start", - "remix", - "lynx", - "flutter", - "react-native", - "vite", - "other" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "default": [] + "type": "string", + "x-example": "<SITE_ID>" }, - "in": "query" + "in": "path" }, { - "name": "useCases", - "description": "List of use cases allowed for filtering site templates. Maximum of 100 use cases are allowed.", - "required": false, + "name": "variableId", + "description": "Variable unique ID.", + "required": true, "schema": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "portfolio", - "starter", - "events", - "ecommerce", - "documentation", - "blog", - "ai", - "forms", - "dashboard" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "default": [] + "type": "string", + "x-example": "<VARIABLE_ID>" }, - "in": "query" - }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Variable key. Max length: 255 chars.", + "x-example": "<KEY>" + }, + "value": { + "type": "string", + "description": "Variable value. Max length: 8192 chars.", + "x-example": "<VALUE>", + "x-nullable": true + }, + "secret": { + "type": "boolean", + "description": "Secret variables can be updated or deleted, but only sites can read them during build and runtime.", + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "key" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete variable", + "operationId": "sitesDeleteVariable", + "tags": [ + "sites" + ], + "description": "Delete a variable by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteVariable", + "group": "variables", + "weight": 552, + "cookies": false, + "type": "", + "demo": "sites\/delete-variable.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ { - "name": "limit", - "description": "Limit the number of templates returned in the response. Default limit is 25, and maximum limit is 5000.", - "required": false, + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site unique ID.", + "required": true, "schema": { - "type": "integer", - "format": "int32", - "x-example": 1, - "default": 25 + "type": "string", + "x-example": "<SITE_ID>" }, - "in": "query" + "in": "path" }, { - "name": "offset", - "description": "Offset the list of returned templates. Maximum offset is 5000.", - "required": false, + "name": "variableId", + "description": "Variable unique ID.", + "required": true, "schema": { - "type": "integer", - "format": "int32", - "x-example": 0, - "default": 0 + "type": "string", + "x-example": "<VARIABLE_ID>" }, - "in": "query" + "in": "path" } ] } }, - "\/sites\/templates\/{templateId}": { + "\/storage\/buckets": { "get": { - "summary": "Get site template", - "operationId": "sitesGetTemplate", + "summary": "List buckets", + "operationId": "storageListBuckets", "tags": [ - "sites" + "storage" ], - "description": "Get a site template using ID. You can use template details in [createSite](\/docs\/references\/cloud\/server-nodejs\/sites#create) method.", + "description": "Get a list of all the storage buckets. You can use the query params to filter your results.", "responses": { "200": { - "description": "Template Site", + "description": "Buckets List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/templateSite" + "$ref": "#\/components\/schemas\/bucketList" } } } @@ -44750,59 +50522,85 @@ }, "deprecated": false, "x-appwrite": { - "method": "getTemplate", - "group": "templates", - "weight": 613, + "method": "listBuckets", + "group": "buckets", + "weight": 598, "cookies": false, "type": "", - "demo": "sites\/get-template.md", + "demo": "storage\/list-buckets.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "buckets.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/list-buckets.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "templateId", - "description": "Template ID.", - "required": true, + "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: enabled, name, fileSecurity, maximumFileSize, encryption, antivirus, transformations", + "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", - "x-example": "<TEMPLATE_ID>" + "x-example": "<SEARCH>", + "default": "" }, - "in": "path" + "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", + "x-example": false, + "default": true + }, + "in": "query" } ] - } - }, - "\/sites\/usage": { - "get": { - "summary": "Get sites usage", - "operationId": "sitesListUsage", + }, + "post": { + "summary": "Create bucket", + "operationId": "storageCreateBucket", "tags": [ - "sites" + "storage" ], - "description": "Get usage metrics and statistics for all sites in the project. View statistics including total deployments, builds, logs, storage usage, and compute time. The response includes both current totals and historical data for each metric. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, defaults to 30 days.", + "description": "Create a new storage bucket.", "responses": { - "200": { - "description": "UsageSites", + "201": { + "description": "Bucket", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/usageSites" + "$ref": "#\/components\/schemas\/bucket" } } } @@ -44810,71 +50608,135 @@ }, "deprecated": false, "x-appwrite": { - "method": "listUsage", - "group": null, - "weight": 614, + "method": "createBucket", + "group": "buckets", + "weight": 596, "cookies": false, "type": "", - "demo": "sites\/list-usage.md", + "demo": "storage\/create-bucket.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": "buckets.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/create-bucket.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], - "parameters": [ - { - "name": "range", - "description": "Date range.", - "required": false, - "schema": { - "type": "string", - "x-example": "24h", - "enum": [ - "24h", - "30d", - "90d" - ], - "x-enum-name": "UsageRange", - "x-enum-keys": [ - "Twenty Four Hours", - "Thirty Days", - "Ninety Days" - ], - "default": "30d" - }, - "in": "query" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "bucketId": { + "type": "string", + "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.", + "x-example": "<BUCKET_ID>" + }, + "name": { + "type": "string", + "description": "Bucket name", + "x-example": "<NAME>" + }, + "permissions": { + "type": "array", + "description": "An array of permission strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + }, + "x-nullable": true + }, + "fileSecurity": { + "type": "boolean", + "description": "Enables configuring permissions for individual file. A user needs one of file or bucket level permissions to access a file. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": false + }, + "enabled": { + "type": "boolean", + "description": "Is bucket enabled? When set to 'disabled', users cannot access the files in this bucket but Server SDKs with and API key can still access the bucket. No files are lost when this is toggled.", + "x-example": false + }, + "maximumFileSize": { + "type": "integer", + "description": "Maximum file size allowed in bytes. Maximum allowed value is 5GB.", + "x-example": 1, + "format": "int32" + }, + "allowedFileExtensions": { + "type": "array", + "description": "Allowed file extensions. Maximum of 100 extensions are allowed, each 64 characters long.", + "x-example": null, + "items": { + "type": "string" + } + }, + "compression": { + "type": "string", + "description": "Compression algorithm chosen for compression. Can be one of none, [gzip](https:\/\/en.wikipedia.org\/wiki\/Gzip), or [zstd](https:\/\/en.wikipedia.org\/wiki\/Zstd), For file size above 20MB compression is skipped even if it's enabled", + "x-example": "none", + "enum": [ + "none", + "gzip", + "zstd" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "encryption": { + "type": "boolean", + "description": "Is encryption enabled? For file size above 20MB encryption is skipped even if it's enabled", + "x-example": false + }, + "antivirus": { + "type": "boolean", + "description": "Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled", + "x-example": false + }, + "transformations": { + "type": "boolean", + "description": "Are image transformations enabled?", + "x-example": false + } + }, + "required": [ + "bucketId", + "name" + ] + } + } } - ] + } } }, - "\/sites\/{siteId}": { + "\/storage\/buckets\/{bucketId}": { "get": { - "summary": "Get site", - "operationId": "sitesGet", + "summary": "Get bucket", + "operationId": "storageGetBucket", "tags": [ - "sites" + "storage" ], - "description": "Get a site by its unique ID.", + "description": "Get a storage bucket by its unique ID. This endpoint response returns a JSON object with the storage bucket metadata.", "responses": { "200": { - "description": "Site", + "description": "Bucket", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/site" + "$ref": "#\/components\/schemas\/bucket" } } } @@ -44882,22 +50744,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": "sites", - "weight": 589, + "method": "getBucket", + "group": "buckets", + "weight": 597, "cookies": false, "type": "", - "demo": "sites\/get.md", + "demo": "storage\/get-bucket.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": "buckets.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-bucket.md", "auth": { "Project": [] } @@ -44910,31 +50773,31 @@ ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "bucketId", + "description": "Bucket unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<SITE_ID>" + "x-example": "<BUCKET_ID>" }, "in": "path" } ] }, "put": { - "summary": "Update site", - "operationId": "sitesUpdate", + "summary": "Update bucket", + "operationId": "storageUpdateBucket", "tags": [ - "sites" + "storage" ], - "description": "Update site by its unique ID.", + "description": "Update a storage bucket by its unique ID.", "responses": { "200": { - "description": "Site", + "description": "Bucket", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/site" + "$ref": "#\/components\/schemas\/bucket" } } } @@ -44942,22 +50805,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "update", - "group": "sites", - "weight": 591, + "method": "updateBucket", + "group": "buckets", + "weight": 599, "cookies": false, "type": "", - "demo": "sites\/update.md", + "demo": "storage\/update-bucket.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "buckets.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/update-bucket.md", "auth": { "Project": [] } @@ -44970,12 +50834,12 @@ ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "bucketId", + "description": "Bucket unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<SITE_ID>" + "x-example": "<BUCKET_ID>" }, "in": "path" } @@ -44988,212 +50852,72 @@ "properties": { "name": { "type": "string", - "description": "Site name. Max length: 128 chars.", + "description": "Bucket name", "x-example": "<NAME>" }, - "framework": { - "type": "string", - "description": "Sites framework.", - "x-example": "analog", - "enum": [ - "analog", - "angular", - "nextjs", - "react", - "nuxt", - "vue", - "sveltekit", - "astro", - "tanstack-start", - "remix", - "lynx", - "flutter", - "react-native", - "vite", - "other" - ], - "x-enum-name": null, - "x-enum-keys": [] + "permissions": { + "type": "array", + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + }, + "x-nullable": true }, - "enabled": { + "fileSecurity": { "type": "boolean", - "description": "Is site enabled? When set to 'disabled', users cannot access the site but Server SDKs with and API key can still access the site. No data is lost when this is toggled.", + "description": "Enables configuring permissions for individual file. A user needs one of file or bucket level permissions to access a file. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", "x-example": false }, - "logging": { + "enabled": { "type": "boolean", - "description": "When disabled, request logs will exclude logs and errors, and site responses will be slightly faster.", + "description": "Is bucket enabled? When set to 'disabled', users cannot access the files in this bucket but Server SDKs with and API key can still access the bucket. No files are lost when this is toggled.", "x-example": false }, - "timeout": { + "maximumFileSize": { "type": "integer", - "description": "Maximum request time in seconds.", + "description": "Maximum file size allowed in bytes. Maximum allowed value is 5GB.", "x-example": 1, "format": "int32" }, - "installCommand": { - "type": "string", - "description": "Install Command.", - "x-example": "<INSTALL_COMMAND>" - }, - "buildCommand": { - "type": "string", - "description": "Build Command.", - "x-example": "<BUILD_COMMAND>" - }, - "outputDirectory": { - "type": "string", - "description": "Output Directory for site.", - "x-example": "<OUTPUT_DIRECTORY>" - }, - "buildRuntime": { - "type": "string", - "description": "Runtime to use during build step.", - "x-example": "node-14.5", - "enum": [ - "node-14.5", - "node-16.0", - "node-18.0", - "node-19.0", - "node-20.0", - "node-21.0", - "node-22", - "node-23", - "node-24", - "node-25", - "php-8.0", - "php-8.1", - "php-8.2", - "php-8.3", - "php-8.4", - "ruby-3.0", - "ruby-3.1", - "ruby-3.2", - "ruby-3.3", - "ruby-3.4", - "ruby-4.0", - "python-3.8", - "python-3.9", - "python-3.10", - "python-3.11", - "python-3.12", - "python-3.13", - "python-3.14", - "python-ml-3.11", - "python-ml-3.12", - "python-ml-3.13", - "deno-1.21", - "deno-1.24", - "deno-1.35", - "deno-1.40", - "deno-1.46", - "deno-2.0", - "deno-2.5", - "deno-2.6", - "dart-2.15", - "dart-2.16", - "dart-2.17", - "dart-2.18", - "dart-2.19", - "dart-3.0", - "dart-3.1", - "dart-3.3", - "dart-3.5", - "dart-3.8", - "dart-3.9", - "dart-3.10", - "dotnet-6.0", - "dotnet-7.0", - "dotnet-8.0", - "dotnet-10", - "java-8.0", - "java-11.0", - "java-17.0", - "java-18.0", - "java-21.0", - "java-22", - "java-25", - "swift-5.5", - "swift-5.8", - "swift-5.9", - "swift-5.10", - "swift-6.2", - "kotlin-1.6", - "kotlin-1.8", - "kotlin-1.9", - "kotlin-2.0", - "kotlin-2.3", - "cpp-17", - "cpp-20", - "bun-1.0", - "bun-1.1", - "bun-1.2", - "bun-1.3", - "go-1.23", - "go-1.24", - "go-1.25", - "go-1.26", - "static-1", - "flutter-3.24", - "flutter-3.27", - "flutter-3.29", - "flutter-3.32", - "flutter-3.35", - "flutter-3.38" - ], - "x-enum-name": null, - "x-enum-keys": [] + "allowedFileExtensions": { + "type": "array", + "description": "Allowed file extensions. Maximum of 100 extensions are allowed, each 64 characters long.", + "x-example": null, + "items": { + "type": "string" + } }, - "adapter": { + "compression": { "type": "string", - "description": "Framework adapter defining rendering strategy. Allowed values are: static, ssr", - "x-example": "static", + "description": "Compression algorithm chosen for compression. Can be one of none, [gzip](https:\/\/en.wikipedia.org\/wiki\/Gzip), or [zstd](https:\/\/en.wikipedia.org\/wiki\/Zstd), For file size above 20MB compression is skipped even if it's enabled", + "x-example": "none", "enum": [ - "static", - "ssr" + "none", + "gzip", + "zstd" ], "x-enum-name": null, "x-enum-keys": [] }, - "fallbackFile": { - "type": "string", - "description": "Fallback file for single page application sites.", - "x-example": "<FALLBACK_FILE>" - }, - "installationId": { - "type": "string", - "description": "Appwrite Installation ID for VCS (Version Control System) deployment.", - "x-example": "<INSTALLATION_ID>" - }, - "providerRepositoryId": { - "type": "string", - "description": "Repository ID of the repo linked to the site.", - "x-example": "<PROVIDER_REPOSITORY_ID>" - }, - "providerBranch": { - "type": "string", - "description": "Production branch for the repo linked to the site.", - "x-example": "<PROVIDER_BRANCH>" - }, - "providerSilentMode": { + "encryption": { "type": "boolean", - "description": "Is the VCS (Version Control System) connection in silent mode for the repo linked to the site? In silent mode, comments will not be made on commits and pull requests.", + "description": "Is encryption enabled? For file size above 20MB encryption is skipped even if it's enabled", "x-example": false }, - "providerRootDirectory": { - "type": "string", - "description": "Path to site code in the linked repo.", - "x-example": "<PROVIDER_ROOT_DIRECTORY>" + "antivirus": { + "type": "boolean", + "description": "Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled", + "x-example": false }, - "specification": { - "type": "string", - "description": "Framework specification for the site and builds.", - "x-example": null + "transformations": { + "type": "boolean", + "description": "Are image transformations enabled?", + "x-example": false } }, "required": [ - "name", - "framework" + "name" ] } } @@ -45201,12 +50925,12 @@ } }, "delete": { - "summary": "Delete site", - "operationId": "sitesDelete", + "summary": "Delete bucket", + "operationId": "storageDeleteBucket", "tags": [ - "sites" + "storage" ], - "description": "Delete a site by its unique ID.", + "description": "Delete a storage bucket by its unique ID.", "responses": { "204": { "description": "No content" @@ -45214,22 +50938,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": "sites", - "weight": 592, + "method": "deleteBucket", + "group": "buckets", + "weight": 600, "cookies": false, "type": "", - "demo": "sites\/delete.md", + "demo": "storage\/delete-bucket.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "buckets.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/delete-bucket.md", "auth": { "Project": [] } @@ -45242,33 +50967,33 @@ ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "bucketId", + "description": "Bucket unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<SITE_ID>" + "x-example": "<BUCKET_ID>" }, "in": "path" } ] } }, - "\/sites\/{siteId}\/deployment": { - "patch": { - "summary": "Update site's deployment", - "operationId": "sitesUpdateSiteDeployment", + "\/storage\/buckets\/{bucketId}\/files": { + "get": { + "summary": "List files", + "operationId": "storageListFiles", "tags": [ - "sites" + "storage" ], - "description": "Update the site active deployment. Use this endpoint to switch the code deployment that should be used when visitor opens your site.", + "description": "Get a list of all the user files. You can use the query params to filter your results.", "responses": { "200": { - "description": "Site", + "description": "Files List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/site" + "$ref": "#\/components\/schemas\/fileList" } } } @@ -45276,22 +51001,25 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateSiteDeployment", - "group": "sites", - "weight": 599, + "method": "listFiles", + "group": "files", + "weight": 603, "cookies": false, "type": "", - "demo": "sites\/update-site-deployment.md", + "demo": "storage\/list-files.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "files.read", "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/list-files.md", "auth": { "Project": [] } @@ -45299,35 +51027,152 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", "required": true, "schema": { "type": "string", - "x-example": "<SITE_ID>" + "x-example": "<BUCKET_ID>" + }, + "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, signature, mimeType, sizeOriginal, chunksTotal, chunksUploaded", + "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", + "x-example": "<SEARCH>", + "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", + "x-example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create file", + "operationId": "storageCreateFile", + "tags": [ + "storage" + ], + "description": "Create a new file. Before using this route, you should create a new bucket resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/storage#storageCreateBucket) API or directly from your Appwrite console.\n\nLarger files should be uploaded using multiple requests with the [content-range](https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTTP\/Headers\/Content-Range) header to send a partial request with a maximum supported chunk of `5MB`. The `content-range` header values should always be in bytes.\n\nWhen the first request is sent, the server will return the **File** object, and the subsequent part request must include the file's **id** in `x-appwrite-id` header to allow the server to know that the partial upload is for the existing file and not for a new one.\n\nIf you're creating a new file using one of the Appwrite SDKs, all the chunking logic will be managed by the SDK internally.\n", + "responses": { + "201": { + "description": "File", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/file" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createFile", + "group": "files", + "weight": 802, + "cookies": false, + "type": "upload", + "demo": "storage\/create-file.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId},chunkId:{chunkId}", + "scope": "files.write", + "platforms": [ + "console", + "client", + "server", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/create-file.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "schema": { + "type": "string", + "x-example": "<BUCKET_ID>" }, "in": "path" } ], "requestBody": { "content": { - "application\/json": { + "multipart\/form-data": { "schema": { "type": "object", "properties": { - "deploymentId": { + "fileId": { "type": "string", - "description": "Deployment ID.", - "x-example": "<DEPLOYMENT_ID>" + "description": "File 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.", + "x-example": "<FILE_ID>", + "x-upload-id": true + }, + "file": { + "type": "string", + "description": "Binary file. Appwrite SDKs provide helpers to handle file input. [Learn about file input](https:\/\/appwrite.io\/docs\/products\/storage\/upload-download#input-file).", + "x-example": null, + "format": "binary" + }, + "permissions": { + "type": "array", + "description": "An array of permission strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + }, + "x-nullable": true } }, "required": [ - "deploymentId" + "fileId", + "file" ] } } @@ -45335,21 +51180,21 @@ } } }, - "\/sites\/{siteId}\/deployments": { + "\/storage\/buckets\/{bucketId}\/files\/{fileId}": { "get": { - "summary": "List deployments", - "operationId": "sitesListDeployments", + "summary": "Get file", + "operationId": "storageGetFile", "tags": [ - "sites" + "storage" ], - "description": "Get a list of all the site's code deployments. You can use the query params to filter your results.", + "description": "Get a file by its unique ID. This endpoint response returns a JSON object with the file metadata.", "responses": { "200": { - "description": "Deployments List", + "description": "File", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/deploymentList" + "$ref": "#\/components\/schemas\/file" } } } @@ -45357,22 +51202,25 @@ }, "deprecated": false, "x-appwrite": { - "method": "listDeployments", - "group": "deployments", - "weight": 598, + "method": "getFile", + "group": "files", + "weight": 602, "cookies": false, "type": "", - "demo": "sites\/list-deployments.md", + "demo": "storage\/get-file.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": "files.read", "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file.md", "auth": { "Project": [] } @@ -45380,71 +51228,47 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", "required": true, "schema": { "type": "string", - "x-example": "<SITE_ID>" + "x-example": "<BUCKET_ID>" }, "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, + "name": "fileId", + "description": "File ID.", + "required": true, "schema": { "type": "string", - "x-example": "<SEARCH>", - "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", - "x-example": false, - "default": true + "x-example": "<FILE_ID>" }, - "in": "query" + "in": "path" } ] }, - "post": { - "summary": "Create deployment", - "operationId": "sitesCreateDeployment", + "put": { + "summary": "Update file", + "operationId": "storageUpdateFile", "tags": [ - "sites" + "storage" ], - "description": "Create a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the site's deployment to use your new deployment ID.", + "description": "Update a file by its unique ID. Only users with write permissions have access to update this resource.", "responses": { - "202": { - "description": "Deployment", + "200": { + "description": "File", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/deployment" + "$ref": "#\/components\/schemas\/file" } } } @@ -45452,22 +51276,25 @@ }, "deprecated": false, "x-appwrite": { - "method": "createDeployment", - "group": "deployments", - "weight": 594, + "method": "updateFile", + "group": "files", + "weight": 604, "cookies": false, - "type": "upload", - "demo": "sites\/create-deployment.md", + "type": "", + "demo": "storage\/update-file.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "files.write", "platforms": [ "console", + "client", + "server", "server" ], - "packaging": true, + "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/update-file.md", "auth": { "Project": [] } @@ -45475,105 +51302,160 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "bucketId", + "description": "Bucket unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<SITE_ID>" + "x-example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<FILE_ID>" }, "in": "path" } ], "requestBody": { "content": { - "multipart\/form-data": { + "application\/json": { "schema": { "type": "object", "properties": { - "installCommand": { - "type": "string", - "description": "Install Commands.", - "x-example": "<INSTALL_COMMAND>", - "x-nullable": true - }, - "buildCommand": { + "name": { "type": "string", - "description": "Build Commands.", - "x-example": "<BUILD_COMMAND>", - "x-nullable": true + "description": "File name.", + "x-example": "<NAME>" }, - "outputDirectory": { - "type": "string", - "description": "Output Directory.", - "x-example": "<OUTPUT_DIRECTORY>", + "permissions": { + "type": "array", + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + }, "x-nullable": true - }, - "code": { - "type": "string", - "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.", - "x-example": null, - "format": "binary" - }, - "activate": { - "type": "boolean", - "description": "Automatically activate the deployment when it is finished building.", - "x-example": false } - }, - "required": [ - "code", - "activate" - ] + } } } } } + }, + "delete": { + "summary": "Delete file", + "operationId": "storageDeleteFile", + "tags": [ + "storage" + ], + "description": "Delete a file by its unique ID. Only users with write permissions have access to delete this resource.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteFile", + "group": "files", + "weight": 605, + "cookies": false, + "type": "", + "demo": "storage\/delete-file.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "files.write", + "platforms": [ + "console", + "client", + "server", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/delete-file.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "schema": { + "type": "string", + "x-example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<FILE_ID>" + }, + "in": "path" + } + ] } }, - "\/sites\/{siteId}\/deployments\/duplicate": { - "post": { - "summary": "Create duplicate deployment", - "operationId": "sitesCreateDuplicateDeployment", + "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/download": { + "get": { + "summary": "Get file for download", + "operationId": "storageGetFileDownload", "tags": [ - "sites" + "storage" ], - "description": "Create a new build for an existing site deployment. This endpoint allows you to rebuild a deployment with the updated site configuration, including its commands and output directory if they have been modified. The build process will be queued and executed asynchronously. The original deployment's code will be preserved and used for the new build.", + "description": "Get a file 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": { - "202": { - "description": "Deployment", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/deployment" - } - } - } + "200": { + "description": "File" } }, "deprecated": false, "x-appwrite": { - "method": "createDuplicateDeployment", - "group": "deployments", - "weight": 602, + "method": "getFileDownload", + "group": "files", + "weight": 607, "cookies": false, - "type": "", - "demo": "sites\/create-duplicate-deployment.md", + "type": "location", + "demo": "storage\/get-file-download.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "files.read", "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-download.md", "auth": { "Project": [] } @@ -45581,80 +51463,79 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "bucketId", + "description": "Storage bucket ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", "required": true, "schema": { "type": "string", - "x-example": "<SITE_ID>" + "x-example": "<BUCKET_ID>" }, "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<FILE_ID>" + }, + "in": "path" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "schema": { + "type": "string", + "x-example": "<TOKEN>", + "default": "" + }, + "in": "query" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "deploymentId": { - "type": "string", - "description": "Deployment ID.", - "x-example": "<DEPLOYMENT_ID>" - } - }, - "required": [ - "deploymentId" - ] - } - } - } - } + ] } }, - "\/sites\/{siteId}\/deployments\/template": { - "post": { - "summary": "Create template deployment", - "operationId": "sitesCreateTemplateDeployment", + "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/preview": { + "get": { + "summary": "Get file preview", + "operationId": "storageGetFilePreview", "tags": [ - "sites" + "storage" ], - "description": "Create a deployment based on a template.\n\nUse this endpoint with combination of [listTemplates](https:\/\/appwrite.io\/docs\/products\/sites\/templates) to find the template details.", + "description": "Get a file preview image. Currently, this method supports preview for image files (jpg, png, and gif), other supported formats, like pdf, docs, slides, and spreadsheets, will return the file icon image. You can also pass query string arguments for cutting and resizing your preview image. Preview is supported only for image files smaller than 10MB.", "responses": { - "202": { - "description": "Deployment", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/deployment" - } - } - } + "200": { + "description": "Image" } }, "deprecated": false, "x-appwrite": { - "method": "createTemplateDeployment", - "group": "deployments", - "weight": 595, + "method": "getFilePreview", + "group": "files", + "weight": 606, "cookies": false, - "type": "", - "demo": "sites\/create-template-deployment.md", + "type": "location", + "demo": "storage\/get-file-preview.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "files.read", "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-preview.md", "auth": { "Project": [] } @@ -45662,116 +51543,229 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", "required": true, "schema": { "type": "string", - "x-example": "<SITE_ID>" + "x-example": "<BUCKET_ID>" }, "in": "path" + }, + { + "name": "fileId", + "description": "File ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<FILE_ID>" + }, + "in": "path" + }, + { + "name": "width", + "description": "Resize preview image width, Pass an integer between 0 to 4000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "height", + "description": "Resize preview image height, Pass an integer between 0 to 4000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "gravity", + "description": "Image crop gravity. Can be one of center,top-left,top,top-right,left,right,bottom-left,bottom,bottom-right", + "required": false, + "schema": { + "type": "string", + "x-example": "center", + "enum": [ + "center", + "top-left", + "top", + "top-right", + "left", + "right", + "bottom-left", + "bottom", + "bottom-right" + ], + "x-enum-name": "ImageGravity", + "x-enum-keys": [], + "default": "center" + }, + "in": "query" + }, + { + "name": "quality", + "description": "Preview image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "x-example": -1, + "default": -1 + }, + "in": "query" + }, + { + "name": "borderWidth", + "description": "Preview image border in pixels. Pass an integer between 0 to 100. Defaults to 0.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "borderColor", + "description": "Preview image border color. Use a valid HEX color, no # is needed for prefix.", + "required": false, + "schema": { + "type": "string", + "default": "" + }, + "in": "query" + }, + { + "name": "borderRadius", + "description": "Preview image border radius in pixels. Pass an integer between 0 to 4000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "opacity", + "description": "Preview image opacity. Only works with images having an alpha channel (like png). Pass a number between 0 to 1.", + "required": false, + "schema": { + "type": "number", + "format": "float", + "x-example": 0, + "default": 1 + }, + "in": "query" + }, + { + "name": "rotation", + "description": "Preview image rotation in degrees. Pass an integer between -360 and 360.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "x-example": -360, + "default": 0 + }, + "in": "query" + }, + { + "name": "background", + "description": "Preview image background color. Only works with transparent images (png). Use a valid HEX color, no # is needed for prefix.", + "required": false, + "schema": { + "type": "string", + "default": "" + }, + "in": "query" + }, + { + "name": "output", + "description": "Output format type (jpeg, jpg, png, gif and webp).", + "required": false, + "schema": { + "type": "string", + "x-example": "jpg", + "enum": [ + "jpg", + "jpeg", + "png", + "webp", + "heic", + "avif", + "gif" + ], + "x-enum-name": "ImageFormat", + "x-enum-keys": [], + "default": "" + }, + "in": "query" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "schema": { + "type": "string", + "x-example": "<TOKEN>", + "default": "" + }, + "in": "query" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "repository": { - "type": "string", - "description": "Repository name of the template.", - "x-example": "<REPOSITORY>" - }, - "owner": { - "type": "string", - "description": "The name of the owner of the template.", - "x-example": "<OWNER>" - }, - "rootDirectory": { - "type": "string", - "description": "Path to site code in the template repo.", - "x-example": "<ROOT_DIRECTORY>" - }, - "type": { - "type": "string", - "description": "Type for the reference provided. Can be commit, branch, or tag", - "x-example": "branch", - "enum": [ - "branch", - "commit", - "tag" - ], - "x-enum-name": "TemplateReferenceType", - "x-enum-keys": [] - }, - "reference": { - "type": "string", - "description": "Reference value, can be a commit hash, branch name, or release tag", - "x-example": "<REFERENCE>" - }, - "activate": { - "type": "boolean", - "description": "Automatically activate the deployment when it is finished building.", - "x-example": false - } - }, - "required": [ - "repository", - "owner", - "rootDirectory", - "type", - "reference" - ] - } - } - } - } + ] } }, - "\/sites\/{siteId}\/deployments\/vcs": { - "post": { - "summary": "Create VCS deployment", - "operationId": "sitesCreateVcsDeployment", + "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/view": { + "get": { + "summary": "Get file for view", + "operationId": "storageGetFileView", "tags": [ - "sites" + "storage" ], - "description": "Create a deployment when a site is connected to VCS.\n\nThis endpoint lets you create deployment from a branch, commit, or a tag.", + "description": "Get a file content by its unique ID. This endpoint is similar to the download method but returns with no 'Content-Disposition: attachment' header.", "responses": { - "202": { - "description": "Deployment", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/deployment" - } - } - } + "200": { + "description": "File" } }, "deprecated": false, "x-appwrite": { - "method": "createVcsDeployment", - "group": "deployments", - "weight": 596, + "method": "getFileView", + "group": "files", + "weight": 608, "cookies": false, - "type": "", - "demo": "sites\/create-vcs-deployment.md", + "type": "location", + "demo": "storage\/get-file-view.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "files.read", "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-view.md", "auth": { "Project": [] } @@ -45779,75 +51773,60 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", "required": true, "schema": { "type": "string", - "x-example": "<SITE_ID>" + "x-example": "<BUCKET_ID>" }, "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<FILE_ID>" + }, + "in": "path" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "schema": { + "type": "string", + "x-example": "<TOKEN>", + "default": "" + }, + "in": "query" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of reference passed. Allowed values are: branch, commit", - "x-example": "branch", - "enum": [ - "branch", - "commit", - "tag" - ], - "x-enum-name": "VCSReferenceType", - "x-enum-keys": [] - }, - "reference": { - "type": "string", - "description": "VCS reference to create deployment from. Depending on type this can be: branch name, commit hash", - "x-example": "<REFERENCE>" - }, - "activate": { - "type": "boolean", - "description": "Automatically activate the deployment when it is finished building.", - "x-example": false - } - }, - "required": [ - "type", - "reference" - ] - } - } - } - } + ] } }, - "\/sites\/{siteId}\/deployments\/{deploymentId}": { + "\/storage\/usage": { "get": { - "summary": "Get deployment", - "operationId": "sitesGetDeployment", + "summary": "Get storage usage stats", + "operationId": "storageGetUsage", "tags": [ - "sites" + "storage" ], - "description": "Get a site deployment by its unique ID.", + "description": "Get usage metrics and statistics for all buckets in the project. You can view the total number of buckets, files, storage usage. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.\n", "responses": { "200": { - "description": "Deployment", + "description": "StorageUsage", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/deployment" + "$ref": "#\/components\/schemas\/usageStorage" } } } @@ -45855,151 +51834,179 @@ }, "deprecated": false, "x-appwrite": { - "method": "getDeployment", - "group": "deployments", - "weight": 597, + "method": "getUsage", + "group": null, + "weight": 610, "cookies": false, "type": "", - "demo": "sites\/get-deployment.md", + "demo": "storage\/get-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": "files.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-usage.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<SITE_ID>" - }, - "in": "path" - }, - { - "name": "deploymentId", - "description": "Deployment ID.", - "required": true, + "name": "range", + "description": "Date range.", + "required": false, "schema": { "type": "string", - "x-example": "<DEPLOYMENT_ID>" + "x-example": "24h", + "enum": [ + "24h", + "30d", + "90d" + ], + "x-enum-name": "UsageRange", + "x-enum-keys": [ + "Twenty Four Hours", + "Thirty Days", + "Ninety Days" + ], + "default": "30d" }, - "in": "path" + "in": "query" } ] - }, - "delete": { - "summary": "Delete deployment", - "operationId": "sitesDeleteDeployment", + } + }, + "\/storage\/{bucketId}\/usage": { + "get": { + "summary": "Get bucket usage stats", + "operationId": "storageGetBucketUsage", "tags": [ - "sites" + "storage" ], - "description": "Delete a site deployment by its unique ID.", + "description": "Get usage metrics and statistics a specific bucket in the project. You can view the total number of files, storage usage. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.\n", "responses": { - "204": { - "description": "No content" + "200": { + "description": "UsageBuckets", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/usageBuckets" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteDeployment", - "group": "deployments", - "weight": 600, + "method": "getBucketUsage", + "group": null, + "weight": 611, "cookies": false, "type": "", - "demo": "sites\/delete-deployment.md", + "demo": "storage\/get-bucket-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "files.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-bucket-usage.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "bucketId", + "description": "Bucket ID.", "required": true, "schema": { "type": "string", - "x-example": "<SITE_ID>" + "x-example": "<BUCKET_ID>" }, "in": "path" }, { - "name": "deploymentId", - "description": "Deployment ID.", - "required": true, + "name": "range", + "description": "Date range.", + "required": false, "schema": { "type": "string", - "x-example": "<DEPLOYMENT_ID>" + "x-example": "24h", + "enum": [ + "24h", + "30d", + "90d" + ], + "x-enum-name": "UsageRange", + "x-enum-keys": [ + "Twenty Four Hours", + "Thirty Days", + "Ninety Days" + ], + "default": "30d" }, - "in": "path" + "in": "query" } ] } }, - "\/sites\/{siteId}\/deployments\/{deploymentId}\/download": { + "\/tablesdb": { "get": { - "summary": "Get deployment download", - "operationId": "sitesGetDeploymentDownload", + "summary": "List databases", + "operationId": "tablesDBList", "tags": [ - "sites" + "tablesDB" ], - "description": "Get a site deployment content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory.", + "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": "File" + "description": "Databases List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseList" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "getDeploymentDownload", - "group": "deployments", - "weight": 601, + "method": "list", + "group": "tablesdb", + "weight": 322, "cookies": false, - "type": "location", - "demo": "sites\/get-deployment-download.md", + "type": "", + "demo": "tablesdb\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": "databases.read", "platforms": [ "console", - "server", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list.md", "auth": { "Project": [] } @@ -46007,66 +52014,61 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", - "required": true, + "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": "string", - "x-example": "<SITE_ID>" + "type": "array", + "items": { + "type": "string" + }, + "default": [] }, - "in": "path" + "in": "query" }, { - "name": "deploymentId", - "description": "Deployment ID.", - "required": true, + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, "schema": { "type": "string", - "x-example": "<DEPLOYMENT_ID>" + "x-example": "<SEARCH>", + "default": "" }, - "in": "path" + "in": "query" }, { - "name": "type", - "description": "Deployment file to download. Can be: \"source\", \"output\".", + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", "required": false, "schema": { - "type": "string", - "x-example": "source", - "enum": [ - "source", - "output" - ], - "x-enum-name": "DeploymentDownloadType", - "x-enum-keys": [], - "default": "source" + "type": "boolean", + "x-example": false, + "default": true }, "in": "query" } ] - } - }, - "\/sites\/{siteId}\/deployments\/{deploymentId}\/status": { - "patch": { - "summary": "Update deployment status", - "operationId": "sitesUpdateDeploymentStatus", + }, + "post": { + "summary": "Create database", + "operationId": "tablesDBCreate", "tags": [ - "sites" + "tablesDB" ], - "description": "Cancel an ongoing site deployment build. If the build is already in progress, it will be stopped and marked as canceled. If the build hasn't started yet, it will be marked as canceled without executing. You cannot cancel builds that have already completed (status 'ready') or failed. The response includes the final build status and details.", + "description": "Create a new Database.\n", "responses": { - "200": { - "description": "Deployment", + "201": { + "description": "Database", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/deployment" + "$ref": "#\/components\/schemas\/database" } } } @@ -46074,22 +52076,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateDeploymentStatus", - "group": "deployments", - "weight": 603, + "method": "create", + "group": "tablesdb", + "weight": 318, "cookies": false, "type": "", - "demo": "sites\/update-deployment-status.md", + "demo": "tablesdb\/create.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create.md", "auth": { "Project": [] } @@ -46100,45 +52103,53 @@ "Key": [] } ], - "parameters": [ - { - "name": "siteId", - "description": "Site ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<SITE_ID>" - }, - "in": "path" - }, - { - "name": "deploymentId", - "description": "Deployment ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DEPLOYMENT_ID>" - }, - "in": "path" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "databaseId": { + "type": "string", + "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.", + "x-example": "<DATABASE_ID>" + }, + "name": { + "type": "string", + "description": "Database name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "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.", + "x-example": false + } + }, + "required": [ + "databaseId", + "name" + ] + } + } } - ] + } } }, - "\/sites\/{siteId}\/logs": { + "\/tablesdb\/transactions": { "get": { - "summary": "List logs", - "operationId": "sitesListLogs", + "summary": "List transactions", + "operationId": "tablesDBListTransactions", "tags": [ - "sites" + "tablesDB" ], - "description": "Get a list of all site logs. You can use the query params to filter your results.", + "description": "List transactions across all databases.", "responses": { "200": { - "description": "Executions List", + "description": "Transaction List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/executionList" + "$ref": "#\/components\/schemas\/transactionList" } } } @@ -46146,22 +52157,28 @@ }, "deprecated": false, "x-appwrite": { - "method": "listLogs", - "group": "logs", - "weight": 605, + "method": "listTransactions", + "group": "transactions", + "weight": 389, "cookies": false, "type": "", - "demo": "sites\/list-logs.md", + "demo": "tablesdb\/list-transactions.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "log.read", + "scope": [ + "documents.read", + "rows.read" + ], "platforms": [ "console", + "server", + "client", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-transactions.md", "auth": { "Project": [] } @@ -46169,23 +52186,14 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ - { - "name": "siteId", - "description": "Site ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<SITE_ID>" - }, - "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", + "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", @@ -46195,36 +52203,97 @@ "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", - "x-example": false, - "default": true - }, - "in": "query" } ] + }, + "post": { + "summary": "Create transaction", + "operationId": "tablesDBCreateTransaction", + "tags": [ + "tablesDB" + ], + "description": "Create a new transaction.", + "responses": { + "201": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createTransaction", + "group": "transactions", + "weight": 385, + "cookies": false, + "type": "", + "demo": "tablesdb\/create-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "documents.write", + "rows.write" + ], + "platforms": [ + "console", + "server", + "client", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-transaction.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ttl": { + "type": "integer", + "description": "Seconds before the transaction expires.", + "x-example": 60, + "format": "int32" + } + } + } + } + } + } } }, - "\/sites\/{siteId}\/logs\/{logId}": { + "\/tablesdb\/transactions\/{transactionId}": { "get": { - "summary": "Get log", - "operationId": "sitesGetLog", + "summary": "Get transaction", + "operationId": "tablesDBGetTransaction", "tags": [ - "sites" + "tablesDB" ], - "description": "Get a site request log by its unique ID.", + "description": "Get a transaction by its unique ID.", "responses": { "200": { - "description": "Execution", + "description": "Transaction", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/execution" + "$ref": "#\/components\/schemas\/transaction" } } } @@ -46232,22 +52301,28 @@ }, "deprecated": false, "x-appwrite": { - "method": "getLog", - "group": "logs", - "weight": 604, + "method": "getTransaction", + "group": "transactions", + "weight": 386, "cookies": false, "type": "", - "demo": "sites\/get-log.md", + "demo": "tablesdb\/get-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "log.read", + "scope": [ + "documents.read", + "rows.read" + ], "platforms": [ "console", + "server", + "client", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-transaction.md", "auth": { "Project": [] } @@ -46255,62 +52330,66 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<SITE_ID>" - }, - "in": "path" - }, - { - "name": "logId", - "description": "Log ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "schema": { "type": "string", - "x-example": "<LOG_ID>" + "x-example": "<TRANSACTION_ID>" }, "in": "path" } ] }, - "delete": { - "summary": "Delete log", - "operationId": "sitesDeleteLog", + "patch": { + "summary": "Update transaction", + "operationId": "tablesDBUpdateTransaction", "tags": [ - "sites" + "tablesDB" ], - "description": "Delete a site log by its unique ID.", + "description": "Update a transaction, to either commit or roll back its operations.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteLog", - "group": "logs", - "weight": 606, + "method": "updateTransaction", + "group": "transactions", + "weight": 387, "cookies": false, "type": "", - "demo": "sites\/delete-log.md", + "demo": "tablesdb\/update-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "log.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "console", + "server", + "client", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-transaction.md", "auth": { "Project": [] } @@ -46318,130 +52397,120 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<SITE_ID>" - }, - "in": "path" - }, - { - "name": "logId", - "description": "Log ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "schema": { "type": "string", - "x-example": "<LOG_ID>" + "x-example": "<TRANSACTION_ID>" }, "in": "path" } - ] - } - }, - "\/sites\/{siteId}\/usage": { - "get": { - "summary": "Get site usage", - "operationId": "sitesGetUsage", - "tags": [ - "sites" ], - "description": "Get usage metrics and statistics for a for a specific site. View statistics including total deployments, builds, executions, storage usage, and compute time. The response includes both current totals and historical data for each metric. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, defaults to 30 days.", - "responses": { - "200": { - "description": "UsageSite", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/usageSite" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "commit": { + "type": "boolean", + "description": "Commit transaction?", + "x-example": false + }, + "rollback": { + "type": "boolean", + "description": "Rollback transaction?", + "x-example": false + } } } } } + } + }, + "delete": { + "summary": "Delete transaction", + "operationId": "tablesDBDeleteTransaction", + "tags": [ + "tablesDB" + ], + "description": "Delete a transaction by its unique ID.", + "responses": { + "204": { + "description": "No content" + } }, "deprecated": false, "x-appwrite": { - "method": "getUsage", - "group": null, - "weight": 615, + "method": "deleteTransaction", + "group": "transactions", + "weight": 388, "cookies": false, "type": "", - "demo": "sites\/get-usage.md", + "demo": "tablesdb\/delete-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ - "console" + "console", + "server", + "client", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-transaction.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "schema": { "type": "string", - "x-example": "<SITE_ID>" + "x-example": "<TRANSACTION_ID>" }, "in": "path" - }, - { - "name": "range", - "description": "Date range.", - "required": false, - "schema": { - "type": "string", - "x-example": "24h", - "enum": [ - "24h", - "30d", - "90d" - ], - "x-enum-name": "UsageRange", - "x-enum-keys": [ - "Twenty Four Hours", - "Thirty Days", - "Ninety Days" - ], - "default": "30d" - }, - "in": "query" } ] } }, - "\/sites\/{siteId}\/variables": { - "get": { - "summary": "List variables", - "operationId": "sitesListVariables", + "\/tablesdb\/transactions\/{transactionId}\/operations": { + "post": { + "summary": "Create operations", + "operationId": "tablesDBCreateOperations", "tags": [ - "sites" + "tablesDB" ], - "description": "Get a list of all variables of a specific site.", + "description": "Create multiple operations in a single transaction.", "responses": { - "200": { - "description": "Variables List", + "201": { + "description": "Transaction", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/variableList" + "$ref": "#\/components\/schemas\/transaction" } } } @@ -46449,22 +52518,28 @@ }, "deprecated": false, "x-appwrite": { - "method": "listVariables", - "group": "variables", - "weight": 609, + "method": "createOperations", + "group": "transactions", + "weight": 390, "cookies": false, "type": "", - "demo": "sites\/list-variables.md", + "demo": "tablesdb\/create-operations.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "console", + "server", + "client", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-operations.md", "auth": { "Project": [] } @@ -46472,36 +52547,58 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site unique ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "schema": { "type": "string", - "x-example": "<SITE_ID>" + "x-example": "<TRANSACTION_ID>" }, "in": "path" } - ] - }, - "post": { - "summary": "Create variable", - "operationId": "sitesCreateVariable", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "operations": { + "type": "array", + "description": "Array of staged operations.", + "x-example": "[\n\t {\n\t \"action\": \"create\",\n\t \"databaseId\": \"<DATABASE_ID>\",\n\t \"tableId\": \"<TABLE_ID>\",\n\t \"rowId\": \"<ROW_ID>\",\n\t \"data\": {\n\t \"name\": \"Walter O'Brien\"\n\t }\n\t }\n\t]", + "items": { + "type": "object" + } + } + } + } + } + } + } + } + }, + "\/tablesdb\/usage": { + "get": { + "summary": "Get TablesDB usage stats", + "operationId": "tablesDBListUsage", "tags": [ - "sites" + "tablesDB" ], - "description": "Create a new site variable. These variables can be accessed during build and runtime (server-side rendering) as environment variables.", + "description": "List usage metrics and statistics for all databases in the project. You can view the total number of databases, tables, rows, and storage usage. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.", "responses": { - "201": { - "description": "Variable", + "200": { + "description": "UsageDatabases", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/variable" + "$ref": "#\/components\/schemas\/usageDatabases" } } } @@ -46509,91 +52606,98 @@ }, "deprecated": false, "x-appwrite": { - "method": "createVariable", - "group": "variables", - "weight": 607, + "method": "listUsage", + "group": null, + "weight": 324, "cookies": false, "type": "", - "demo": "sites\/create-variable.md", + "demo": "tablesdb\/list-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": [ + "tables.read", + "collections.read" + ], "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-usage.md", + "methods": [ + { + "name": "listUsage", + "namespace": "tablesDB", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "range" + ], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/usageDatabases" + } + ], + "description": "List usage metrics and statistics for all databases in the project. You can view the total number of databases, tables, rows, and storage usage. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.", + "demo": "tablesdb\/list-usage.md", + "public": true + } + ], "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site unique ID.", - "required": true, + "name": "range", + "description": "Date range.", + "required": false, "schema": { "type": "string", - "x-example": "<SITE_ID>" + "x-example": "24h", + "enum": [ + "24h", + "30d", + "90d" + ], + "x-enum-name": "UsageRange", + "x-enum-keys": [ + "Twenty Four Hours", + "Thirty Days", + "Ninety Days" + ], + "default": "30d" }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Variable key. Max length: 255 chars.", - "x-example": "<KEY>" - }, - "value": { - "type": "string", - "description": "Variable value. Max length: 8192 chars.", - "x-example": "<VALUE>" - }, - "secret": { - "type": "boolean", - "description": "Secret variables can be updated or deleted, but only sites can read them during build and runtime.", - "x-example": false - } - }, - "required": [ - "key", - "value" - ] - } - } + "in": "query" } - } + ] } }, - "\/sites\/{siteId}\/variables\/{variableId}": { + "\/tablesdb\/{databaseId}": { "get": { - "summary": "Get variable", - "operationId": "sitesGetVariable", + "summary": "Get database", + "operationId": "tablesDBGet", "tags": [ - "sites" + "tablesDB" ], - "description": "Get a variable by its unique ID.", + "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", "responses": { "200": { - "description": "Variable", + "description": "Database", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/variable" + "$ref": "#\/components\/schemas\/database" } } } @@ -46601,22 +52705,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "getVariable", - "group": "variables", - "weight": 608, + "method": "get", + "group": "tablesdb", + "weight": 319, "cookies": false, "type": "", - "demo": "sites\/get-variable.md", + "demo": "tablesdb\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": "databases.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get.md", "auth": { "Project": [] } @@ -46629,41 +52734,31 @@ ], "parameters": [ { - "name": "siteId", - "description": "Site unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<SITE_ID>" - }, - "in": "path" - }, - { - "name": "variableId", - "description": "Variable unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<VARIABLE_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } ] }, "put": { - "summary": "Update variable", - "operationId": "sitesUpdateVariable", + "summary": "Update database", + "operationId": "tablesDBUpdate", "tags": [ - "sites" + "tablesDB" ], - "description": "Update variable by its unique ID.", + "description": "Update a database by its unique ID.", "responses": { "200": { - "description": "Variable", + "description": "Database", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/variable" + "$ref": "#\/components\/schemas\/database" } } } @@ -46671,22 +52766,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateVariable", - "group": "variables", - "weight": 610, + "method": "update", + "group": "tablesdb", + "weight": 320, "cookies": false, "type": "", - "demo": "sites\/update-variable.md", + "demo": "tablesdb\/update.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update.md", "auth": { "Project": [] } @@ -46699,22 +52795,12 @@ ], "parameters": [ { - "name": "siteId", - "description": "Site unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<SITE_ID>" - }, - "in": "path" - }, - { - "name": "variableId", - "description": "Variable unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<VARIABLE_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } @@ -46725,39 +52811,29 @@ "schema": { "type": "object", "properties": { - "key": { - "type": "string", - "description": "Variable key. Max length: 255 chars.", - "x-example": "<KEY>" - }, - "value": { + "name": { "type": "string", - "description": "Variable value. Max length: 8192 chars.", - "x-example": "<VALUE>", - "x-nullable": true + "description": "Database name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "secret": { + "enabled": { "type": "boolean", - "description": "Secret variables can be updated or deleted, but only sites can read them during build and runtime.", - "x-example": false, - "x-nullable": true + "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.", + "x-example": false } - }, - "required": [ - "key" - ] + } } } } } }, "delete": { - "summary": "Delete variable", - "operationId": "sitesDeleteVariable", + "summary": "Delete database", + "operationId": "tablesDBDelete", "tags": [ - "sites" + "tablesDB" ], - "description": "Delete a variable by its unique ID.", + "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" @@ -46765,22 +52841,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteVariable", - "group": "variables", - "weight": 611, + "method": "delete", + "group": "tablesdb", + "weight": 321, "cookies": false, "type": "", - "demo": "sites\/delete-variable.md", + "demo": "tablesdb\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete.md", "auth": { "Project": [] } @@ -46793,43 +52870,33 @@ ], "parameters": [ { - "name": "siteId", - "description": "Site unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<SITE_ID>" - }, - "in": "path" - }, - { - "name": "variableId", - "description": "Variable unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<VARIABLE_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } ] } }, - "\/storage\/buckets": { + "\/tablesdb\/{databaseId}\/tables": { "get": { - "summary": "List buckets", - "operationId": "storageListBuckets", + "summary": "List tables", + "operationId": "tablesDBListTables", "tags": [ - "storage" + "tablesDB" ], - "description": "Get a list of all the storage buckets. You can use the query params to filter your results.", + "description": "Get a list of all tables that belong to the provided databaseId. You can use the search parameter to filter your results.", "responses": { "200": { - "description": "Buckets List", + "description": "Tables List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/bucketList" + "$ref": "#\/components\/schemas\/tableList" } } } @@ -46837,23 +52904,26 @@ }, "deprecated": false, "x-appwrite": { - "method": "listBuckets", - "group": "buckets", - "weight": 530, + "method": "listTables", + "group": "tables", + "weight": 329, "cookies": false, "type": "", - "demo": "storage\/list-buckets.md", + "demo": "tablesdb\/list-tables.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "buckets.read", + "scope": [ + "tables.read", + "collections.read" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/list-buckets.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-tables.md", "auth": { "Project": [] } @@ -46865,9 +52935,19 @@ } ], "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "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: enabled, name, fileSecurity, maximumFileSize, encryption, antivirus, transformations", + "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, enabled, rowSecurity", "required": false, "schema": { "type": "array", @@ -46903,19 +52983,19 @@ ] }, "post": { - "summary": "Create bucket", - "operationId": "storageCreateBucket", + "summary": "Create table", + "operationId": "tablesDBCreateTable", "tags": [ - "storage" + "tablesDB" ], - "description": "Create a new storage bucket.", + "description": "Create a new Table. Before using this route, you should create a new database resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", "responses": { "201": { - "description": "Bucket", + "description": "Table", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/bucket" + "$ref": "#\/components\/schemas\/table" } } } @@ -46923,23 +53003,26 @@ }, "deprecated": false, "x-appwrite": { - "method": "createBucket", - "group": "buckets", - "weight": 528, + "method": "createTable", + "group": "tables", + "weight": 325, "cookies": false, "type": "", - "demo": "storage\/create-bucket.md", + "demo": "tablesdb\/create-table.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "buckets.write", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/create-bucket.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-table.md", "auth": { "Project": [] } @@ -46950,85 +53033,72 @@ "Key": [] } ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "bucketId": { + "tableId": { "type": "string", "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.", - "x-example": "<BUCKET_ID>" + "x-example": "<TABLE_ID>" }, "name": { "type": "string", - "description": "Bucket name", + "description": "Table name. Max length: 128 chars.", "x-example": "<NAME>" }, "permissions": { "type": "array", - "description": "An array of permission strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/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).", "x-example": "[\"read(\"any\")\"]", "items": { "type": "string" }, "x-nullable": true }, - "fileSecurity": { + "rowSecurity": { "type": "boolean", - "description": "Enables configuring permissions for individual file. A user needs one of file or bucket level permissions to access a file. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "description": "Enables configuring permissions for individual rows. A user needs one of row or table level permissions to access a row. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", "x-example": false }, "enabled": { "type": "boolean", - "description": "Is bucket enabled? When set to 'disabled', users cannot access the files in this bucket but Server SDKs with and API key can still access the bucket. No files are lost when this is toggled.", + "description": "Is table enabled? When set to 'disabled', users cannot access the table but Server SDKs with and API key can still read and write to the table. No data is lost when this is toggled.", "x-example": false }, - "maximumFileSize": { - "type": "integer", - "description": "Maximum file size allowed in bytes. Maximum allowed value is 5GB.", - "x-example": 1, - "format": "int32" - }, - "allowedFileExtensions": { + "columns": { "type": "array", - "description": "Allowed file extensions. Maximum of 100 extensions are allowed, each 64 characters long.", + "description": "Array of column definitions to create. Each column should contain: key (string), type (string: string, integer, float, boolean, datetime, relationship), size (integer, required for string type), required (boolean, optional), default (mixed, optional), array (boolean, optional), and type-specific options.", "x-example": null, "items": { - "type": "string" + "type": "object" } }, - "compression": { - "type": "string", - "description": "Compression algorithm chosen for compression. Can be one of none, [gzip](https:\/\/en.wikipedia.org\/wiki\/Gzip), or [zstd](https:\/\/en.wikipedia.org\/wiki\/Zstd), For file size above 20MB compression is skipped even if it's enabled", - "x-example": "none", - "enum": [ - "none", - "gzip", - "zstd" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "encryption": { - "type": "boolean", - "description": "Is encryption enabled? For file size above 20MB encryption is skipped even if it's enabled", - "x-example": false - }, - "antivirus": { - "type": "boolean", - "description": "Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled", - "x-example": false - }, - "transformations": { - "type": "boolean", - "description": "Are image transformations enabled?", - "x-example": false + "indexes": { + "type": "array", + "description": "Array of index definitions to create. Each index should contain: key (string), type (string: key, fulltext, unique, spatial), attributes (array of column keys), orders (array of ASC\/DESC, optional), and lengths (array of integers, optional).", + "x-example": null, + "items": { + "type": "object" + } } }, "required": [ - "bucketId", + "tableId", "name" ] } @@ -47037,21 +53107,21 @@ } } }, - "\/storage\/buckets\/{bucketId}": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}": { "get": { - "summary": "Get bucket", - "operationId": "storageGetBucket", + "summary": "Get table", + "operationId": "tablesDBGetTable", "tags": [ - "storage" + "tablesDB" ], - "description": "Get a storage bucket by its unique ID. This endpoint response returns a JSON object with the storage bucket metadata.", + "description": "Get a table by its unique ID. This endpoint response returns a JSON object with the table metadata.", "responses": { "200": { - "description": "Bucket", + "description": "Table", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/bucket" + "$ref": "#\/components\/schemas\/table" } } } @@ -47059,23 +53129,26 @@ }, "deprecated": false, "x-appwrite": { - "method": "getBucket", - "group": "buckets", - "weight": 529, + "method": "getTable", + "group": "tables", + "weight": 326, "cookies": false, "type": "", - "demo": "storage\/get-bucket.md", + "demo": "tablesdb\/get-table.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "buckets.read", + "scope": [ + "tables.read", + "collections.read" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-bucket.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-table.md", "auth": { "Project": [] } @@ -47088,31 +53161,41 @@ ], "parameters": [ { - "name": "bucketId", - "description": "Bucket unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<BUCKET_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TABLE_ID>" }, "in": "path" } ] }, "put": { - "summary": "Update bucket", - "operationId": "storageUpdateBucket", + "summary": "Update table", + "operationId": "tablesDBUpdateTable", "tags": [ - "storage" + "tablesDB" ], - "description": "Update a storage bucket by its unique ID.", + "description": "Update a table by its unique ID.", "responses": { "200": { - "description": "Bucket", + "description": "Table", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/bucket" + "$ref": "#\/components\/schemas\/table" } } } @@ -47120,23 +53203,26 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateBucket", - "group": "buckets", - "weight": 531, + "method": "updateTable", + "group": "tables", + "weight": 327, "cookies": false, "type": "", - "demo": "storage\/update-bucket.md", + "demo": "tablesdb\/update-table.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "buckets.write", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/update-bucket.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-table.md", "auth": { "Project": [] } @@ -47149,12 +53235,22 @@ ], "parameters": [ { - "name": "bucketId", - "description": "Bucket unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<BUCKET_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TABLE_ID>" }, "in": "path" } @@ -47167,7 +53263,7 @@ "properties": { "name": { "type": "string", - "description": "Bucket name", + "description": "Table name. Max length: 128 chars.", "x-example": "<NAME>" }, "permissions": { @@ -47179,73 +53275,29 @@ }, "x-nullable": true }, - "fileSecurity": { + "rowSecurity": { "type": "boolean", - "description": "Enables configuring permissions for individual file. A user needs one of file or bucket level permissions to access a file. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "description": "Enables configuring permissions for individual rows. A user needs one of row or table-level permissions to access a row. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", "x-example": false }, "enabled": { "type": "boolean", - "description": "Is bucket enabled? When set to 'disabled', users cannot access the files in this bucket but Server SDKs with and API key can still access the bucket. No files are lost when this is toggled.", - "x-example": false - }, - "maximumFileSize": { - "type": "integer", - "description": "Maximum file size allowed in bytes. Maximum allowed value is 5GB.", - "x-example": 1, - "format": "int32" - }, - "allowedFileExtensions": { - "type": "array", - "description": "Allowed file extensions. Maximum of 100 extensions are allowed, each 64 characters long.", - "x-example": null, - "items": { - "type": "string" - } - }, - "compression": { - "type": "string", - "description": "Compression algorithm chosen for compression. Can be one of none, [gzip](https:\/\/en.wikipedia.org\/wiki\/Gzip), or [zstd](https:\/\/en.wikipedia.org\/wiki\/Zstd), For file size above 20MB compression is skipped even if it's enabled", - "x-example": "none", - "enum": [ - "none", - "gzip", - "zstd" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "encryption": { - "type": "boolean", - "description": "Is encryption enabled? For file size above 20MB encryption is skipped even if it's enabled", - "x-example": false - }, - "antivirus": { - "type": "boolean", - "description": "Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled", - "x-example": false - }, - "transformations": { - "type": "boolean", - "description": "Are image transformations enabled?", + "description": "Is table enabled? When set to 'disabled', users cannot access the table but Server SDKs with and API key can still read and write to the table. No data is lost when this is toggled.", "x-example": false } - }, - "required": [ - "name" - ] + } } } } } }, "delete": { - "summary": "Delete bucket", - "operationId": "storageDeleteBucket", + "summary": "Delete table", + "operationId": "tablesDBDeleteTable", "tags": [ - "storage" + "tablesDB" ], - "description": "Delete a storage bucket by its unique ID.", + "description": "Delete a table by its unique ID. Only users with write permissions have access to delete this resource.", "responses": { "204": { "description": "No content" @@ -47253,23 +53305,26 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteBucket", - "group": "buckets", - "weight": 532, + "method": "deleteTable", + "group": "tables", + "weight": 328, "cookies": false, "type": "", - "demo": "storage\/delete-bucket.md", + "demo": "tablesdb\/delete-table.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "buckets.write", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/delete-bucket.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-table.md", "auth": { "Project": [] } @@ -47282,33 +53337,43 @@ ], "parameters": [ { - "name": "bucketId", - "description": "Bucket unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<BUCKET_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TABLE_ID>" }, "in": "path" } ] } }, - "\/storage\/buckets\/{bucketId}\/files": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns": { "get": { - "summary": "List files", - "operationId": "storageListFiles", + "summary": "List columns", + "operationId": "tablesDBListColumns", "tags": [ - "storage" + "tablesDB" ], - "description": "Get a list of all the user files. You can use the query params to filter your results.", + "description": "List columns in the table.", "responses": { "200": { - "description": "Files List", + "description": "Columns List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/fileList" + "$ref": "#\/components\/schemas\/columnList" } } } @@ -47316,25 +53381,26 @@ }, "deprecated": false, "x-appwrite": { - "method": "listFiles", - "group": "files", - "weight": 535, + "method": "listColumns", + "group": "columns", + "weight": 334, "cookies": false, "type": "", - "demo": "storage\/list-files.md", + "demo": "tablesdb\/list-columns.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", + "scope": [ + "tables.read", + "collections.read" + ], "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/list-files.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-columns.md", "auth": { "Project": [] } @@ -47342,24 +53408,33 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<BUCKET_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TABLE_ID>" }, "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, signature, mimeType, sizeOriginal, chunksTotal, chunksUploaded", + "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: key, type, size, required, array, status, error", "required": false, "schema": { "type": "array", @@ -47370,17 +53445,6 @@ }, "in": "query" }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "x-example": "<SEARCH>", - "default": "" - }, - "in": "query" - }, { "name": "total", "description": "When set to false, the total count returned will be 0 and will not be calculated.", @@ -47393,21 +53457,23 @@ "in": "query" } ] - }, + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/boolean": { "post": { - "summary": "Create file", - "operationId": "storageCreateFile", + "summary": "Create boolean column", + "operationId": "tablesDBCreateBooleanColumn", "tags": [ - "storage" + "tablesDB" ], - "description": "Create a new file. Before using this route, you should create a new bucket resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/storage#storageCreateBucket) API or directly from your Appwrite console.\n\nLarger files should be uploaded using multiple requests with the [content-range](https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTTP\/Headers\/Content-Range) header to send a partial request with a maximum supported chunk of `5MB`. The `content-range` header values should always be in bytes.\n\nWhen the first request is sent, the server will return the **File** object, and the subsequent part request must include the file's **id** in `x-appwrite-id` header to allow the server to know that the partial upload is for the existing file and not for a new one.\n\nIf you're creating a new file using one of the Appwrite SDKs, all the chunking logic will be managed by the SDK internally.\n", + "description": "Create a boolean column.\n", "responses": { - "201": { - "description": "File", + "202": { + "description": "ColumnBoolean", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/file" + "$ref": "#\/components\/schemas\/columnBoolean" } } } @@ -47415,25 +53481,26 @@ }, "deprecated": false, "x-appwrite": { - "method": "createFile", - "group": "files", - "weight": 781, + "method": "createBooleanColumn", + "group": "columns", + "weight": 335, "cookies": false, - "type": "upload", - "demo": "storage\/create-file.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId},chunkId:{chunkId}", - "scope": "files.write", + "type": "", + "demo": "tablesdb\/create-boolean-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/create-file.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-boolean-column.md", "auth": { "Project": [] } @@ -47441,53 +53508,62 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<BUCKET_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "x-example": "<TABLE_ID>" }, "in": "path" } ], "requestBody": { "content": { - "multipart\/form-data": { + "application\/json": { "schema": { "type": "object", "properties": { - "fileId": { + "key": { "type": "string", - "description": "File 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.", - "x-example": "<FILE_ID>", - "x-upload-id": true + "description": "Column Key.", + "x-example": null }, - "file": { - "type": "string", - "description": "Binary file. Appwrite SDKs provide helpers to handle file input. [Learn about file input](https:\/\/appwrite.io\/docs\/products\/storage\/upload-download#input-file).", - "x-example": null, - "format": "binary" + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false }, - "permissions": { - "type": "array", - "description": "An array of permission strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "x-example": "[\"read(\"any\")\"]", - "items": { - "type": "string" - }, + "default": { + "type": "boolean", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "x-example": false, "x-nullable": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "x-example": false } }, "required": [ - "fileId", - "file" + "key", + "required" ] } } @@ -47495,21 +53571,21 @@ } } }, - "\/storage\/buckets\/{bucketId}\/files\/{fileId}": { - "get": { - "summary": "Get file", - "operationId": "storageGetFile", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/boolean\/{key}": { + "patch": { + "summary": "Update boolean column", + "operationId": "tablesDBUpdateBooleanColumn", "tags": [ - "storage" + "tablesDB" ], - "description": "Get a file by its unique ID. This endpoint response returns a JSON object with the file metadata.", + "description": "Update a boolean column. Changing the `default` value will not update already existing rows.", "responses": { "200": { - "description": "File", + "description": "ColumnBoolean", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/file" + "$ref": "#\/components\/schemas\/columnBoolean" } } } @@ -47517,25 +53593,26 @@ }, "deprecated": false, "x-appwrite": { - "method": "getFile", - "group": "files", - "weight": 534, + "method": "updateBooleanColumn", + "group": "columns", + "weight": 336, "cookies": false, "type": "", - "demo": "storage\/get-file.md", + "demo": "tablesdb\/update-boolean-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-boolean-column.md", "auth": { "Project": [] } @@ -47543,102 +53620,36 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<BUCKET_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" }, { - "name": "fileId", - "description": "File ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<FILE_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update file", - "operationId": "storageUpdateFile", - "tags": [ - "storage" - ], - "description": "Update a file by its unique ID. Only users with write permissions have access to update this resource.", - "responses": { - "200": { - "description": "File", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/file" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "updateFile", - "group": "files", - "weight": 536, - "cookies": false, - "type": "", - "demo": "storage\/update-file.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "files.write", - "platforms": [ - "console", - "client", - "server", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/update-file.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "bucketId", - "description": "Bucket unique ID.", + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "schema": { "type": "string", - "x-example": "<BUCKET_ID>" + "x-example": "<TABLE_ID>" }, "in": "path" }, { - "name": "fileId", - "description": "File ID.", + "name": "key", + "description": "Column Key.", "required": true, "schema": { - "type": "string", - "x-example": "<FILE_ID>" + "type": "string" }, "in": "path" } @@ -47649,128 +53660,76 @@ "schema": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "File name.", - "x-example": "<NAME>" + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false }, - "permissions": { - "type": "array", - "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "x-example": "[\"read(\"any\")\"]", - "items": { - "type": "string" - }, + "default": { + "type": "boolean", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "x-example": false, + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "x-example": null, "x-nullable": true } - } + }, + "required": [ + "required", + "default" + ] } } } } - }, - "delete": { - "summary": "Delete file", - "operationId": "storageDeleteFile", - "tags": [ - "storage" - ], - "description": "Delete a file by its unique ID. Only users with write permissions have access to delete this resource.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "method": "deleteFile", - "group": "files", - "weight": 537, - "cookies": false, - "type": "", - "demo": "storage\/delete-file.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "files.write", - "platforms": [ - "console", - "client", - "server", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/delete-file.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", - "required": true, - "schema": { - "type": "string", - "x-example": "<BUCKET_ID>" - }, - "in": "path" - }, - { - "name": "fileId", - "description": "File ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<FILE_ID>" - }, - "in": "path" - } - ] - } - }, - "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/download": { - "get": { - "summary": "Get file for download", - "operationId": "storageGetFileDownload", + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/datetime": { + "post": { + "summary": "Create datetime column", + "operationId": "tablesDBCreateDatetimeColumn", "tags": [ - "storage" + "tablesDB" ], - "description": "Get a file 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.", + "description": "Create a date time column according to the ISO 8601 standard.", "responses": { - "200": { - "description": "File" + "202": { + "description": "ColumnDatetime", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnDatetime" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "getFileDownload", - "group": "files", - "weight": 539, + "method": "createDatetimeColumn", + "group": "columns", + "weight": 337, "cookies": false, - "type": "location", - "demo": "storage\/get-file-download.md", + "type": "", + "demo": "tablesdb\/create-datetime-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-download.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-datetime-column.md", "auth": { "Project": [] } @@ -47778,79 +53737,111 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "bucketId", - "description": "Storage bucket ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<BUCKET_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" }, { - "name": "fileId", - "description": "File ID.", + "name": "tableId", + "description": "Table ID.", "required": true, "schema": { "type": "string", - "x-example": "<FILE_ID>" + "x-example": "<TABLE_ID>" }, "in": "path" - }, - { - "name": "token", - "description": "File token for accessing this file.", - "required": false, - "schema": { - "type": "string", - "x-example": "<TOKEN>", - "default": "" - }, - "in": "query" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "x-example": null + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false + }, + "default": { + "type": "string", + "description": "Default value for the column in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Cannot be set when column is required.", + "x-example": null, + "x-nullable": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "x-example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } } }, - "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/preview": { - "get": { - "summary": "Get file preview", - "operationId": "storageGetFilePreview", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/datetime\/{key}": { + "patch": { + "summary": "Update dateTime column", + "operationId": "tablesDBUpdateDatetimeColumn", "tags": [ - "storage" + "tablesDB" ], - "description": "Get a file preview image. Currently, this method supports preview for image files (jpg, png, and gif), other supported formats, like pdf, docs, slides, and spreadsheets, will return the file icon image. You can also pass query string arguments for cutting and resizing your preview image. Preview is supported only for image files smaller than 10MB.", + "description": "Update a date time column. Changing the `default` value will not update already existing rows.", "responses": { "200": { - "description": "Image" + "description": "ColumnDatetime", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnDatetime" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "getFilePreview", - "group": "files", - "weight": 538, + "method": "updateDatetimeColumn", + "group": "columns", + "weight": 338, "cookies": false, - "type": "location", - "demo": "storage\/get-file-preview.md", + "type": "", + "demo": "tablesdb\/update-datetime-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-preview.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-datetime-column.md", "auth": { "Project": [] } @@ -47858,229 +53849,116 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<BUCKET_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" }, { - "name": "fileId", - "description": "File ID", + "name": "tableId", + "description": "Table ID.", "required": true, "schema": { "type": "string", - "x-example": "<FILE_ID>" + "x-example": "<TABLE_ID>" }, "in": "path" }, { - "name": "width", - "description": "Resize preview image width, Pass an integer between 0 to 4000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "x-example": 0, - "default": 0 - }, - "in": "query" - }, - { - "name": "height", - "description": "Resize preview image height, Pass an integer between 0 to 4000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "x-example": 0, - "default": 0 - }, - "in": "query" - }, - { - "name": "gravity", - "description": "Image crop gravity. Can be one of center,top-left,top,top-right,left,right,bottom-left,bottom,bottom-right", - "required": false, - "schema": { - "type": "string", - "x-example": "center", - "enum": [ - "center", - "top-left", - "top", - "top-right", - "left", - "right", - "bottom-left", - "bottom", - "bottom-right" - ], - "x-enum-name": "ImageGravity", - "x-enum-keys": [], - "default": "center" - }, - "in": "query" - }, - { - "name": "quality", - "description": "Preview image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "x-example": -1, - "default": -1 - }, - "in": "query" - }, - { - "name": "borderWidth", - "description": "Preview image border in pixels. Pass an integer between 0 to 100. Defaults to 0.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "x-example": 0, - "default": 0 - }, - "in": "query" - }, - { - "name": "borderColor", - "description": "Preview image border color. Use a valid HEX color, no # is needed for prefix.", - "required": false, - "schema": { - "type": "string", - "default": "" - }, - "in": "query" - }, - { - "name": "borderRadius", - "description": "Preview image border radius in pixels. Pass an integer between 0 to 4000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "x-example": 0, - "default": 0 - }, - "in": "query" - }, - { - "name": "opacity", - "description": "Preview image opacity. Only works with images having an alpha channel (like png). Pass a number between 0 to 1.", - "required": false, - "schema": { - "type": "number", - "format": "float", - "x-example": 0, - "default": 1 - }, - "in": "query" - }, - { - "name": "rotation", - "description": "Preview image rotation in degrees. Pass an integer between -360 and 360.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "x-example": -360, - "default": 0 - }, - "in": "query" - }, - { - "name": "background", - "description": "Preview image background color. Only works with transparent images (png). Use a valid HEX color, no # is needed for prefix.", - "required": false, - "schema": { - "type": "string", - "default": "" - }, - "in": "query" - }, - { - "name": "output", - "description": "Output format type (jpeg, jpg, png, gif and webp).", - "required": false, - "schema": { - "type": "string", - "x-example": "jpg", - "enum": [ - "jpg", - "jpeg", - "png", - "webp", - "heic", - "avif", - "gif" - ], - "x-enum-name": "ImageFormat", - "x-enum-keys": [], - "default": "" - }, - "in": "query" - }, - { - "name": "token", - "description": "File token for accessing this file.", - "required": false, + "name": "key", + "description": "Column Key.", + "required": true, "schema": { - "type": "string", - "x-example": "<TOKEN>", - "default": "" + "type": "string" }, - "in": "query" + "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "x-example": null, + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } } }, - "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/view": { - "get": { - "summary": "Get file for view", - "operationId": "storageGetFileView", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/email": { + "post": { + "summary": "Create email column", + "operationId": "tablesDBCreateEmailColumn", "tags": [ - "storage" + "tablesDB" ], - "description": "Get a file content by its unique ID. This endpoint is similar to the download method but returns with no 'Content-Disposition: attachment' header.", + "description": "Create an email column.\n", "responses": { - "200": { - "description": "File" + "202": { + "description": "ColumnEmail", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnEmail" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "getFileView", - "group": "files", - "weight": 540, + "method": "createEmailColumn", + "group": "columns", + "weight": 339, "cookies": false, - "type": "location", - "demo": "storage\/get-file-view.md", + "type": "", + "demo": "tablesdb\/create-email-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-view.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-email-column.md", "auth": { "Project": [] } @@ -48088,60 +53966,85 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<BUCKET_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" }, { - "name": "fileId", - "description": "File ID.", + "name": "tableId", + "description": "Table ID.", "required": true, "schema": { "type": "string", - "x-example": "<FILE_ID>" + "x-example": "<TABLE_ID>" }, "in": "path" - }, - { - "name": "token", - "description": "File token for accessing this file.", - "required": false, - "schema": { - "type": "string", - "x-example": "<TOKEN>", - "default": "" - }, - "in": "query" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "x-example": null + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "x-example": "email@example.com", + "format": "email", + "x-nullable": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "x-example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } } }, - "\/storage\/usage": { - "get": { - "summary": "Get storage usage stats", - "operationId": "storageGetUsage", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/email\/{key}": { + "patch": { + "summary": "Update email column", + "operationId": "tablesDBUpdateEmailColumn", "tags": [ - "storage" + "tablesDB" ], - "description": "Get usage metrics and statistics for all buckets in the project. You can view the total number of buckets, files, storage usage. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.\n", + "description": "Update an email column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "StorageUsage", + "description": "ColumnEmail", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/usageStorage" + "$ref": "#\/components\/schemas\/columnEmail" } } } @@ -48149,72 +54052,117 @@ }, "deprecated": false, "x-appwrite": { - "method": "getUsage", - "group": null, - "weight": 542, + "method": "updateEmailColumn", + "group": "columns", + "weight": 340, "cookies": false, "type": "", - "demo": "storage\/get-usage.md", + "demo": "tablesdb\/update-email-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-usage.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-email-column.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "range", - "description": "Date range.", - "required": false, + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, "schema": { "type": "string", - "x-example": "24h", - "enum": [ - "24h", - "30d", - "90d" - ], - "x-enum-name": "UsageRange", - "x-enum-keys": [ - "Twenty Four Hours", - "Thirty Days", - "Ninety Days" - ], - "default": "30d" + "x-example": "<TABLE_ID>" }, - "in": "query" + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string" + }, + "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "x-example": "email@example.com", + "format": "email", + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } } }, - "\/storage\/{bucketId}\/usage": { - "get": { - "summary": "Get bucket usage stats", - "operationId": "storageGetBucketUsage", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/enum": { + "post": { + "summary": "Create enum column", + "operationId": "tablesDBCreateEnumColumn", "tags": [ - "storage" + "tablesDB" ], - "description": "Get usage metrics and statistics a specific bucket in the project. You can view the total number of files, storage usage. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.\n", + "description": "Create an enumeration column. The `elements` param acts as a white-list of accepted values for this column.", "responses": { - "200": { - "description": "UsageBuckets", + "202": { + "description": "ColumnEnum", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/usageBuckets" + "$ref": "#\/components\/schemas\/columnEnum" } } } @@ -48222,82 +54170,120 @@ }, "deprecated": false, "x-appwrite": { - "method": "getBucketUsage", - "group": null, - "weight": 543, + "method": "createEnumColumn", + "group": "columns", + "weight": 341, "cookies": false, "type": "", - "demo": "storage\/get-bucket-usage.md", + "demo": "tablesdb\/create-enum-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-bucket-usage.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-enum-column.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "bucketId", - "description": "Bucket ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<BUCKET_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" }, { - "name": "range", - "description": "Date range.", - "required": false, + "name": "tableId", + "description": "Table ID.", + "required": true, "schema": { "type": "string", - "x-example": "24h", - "enum": [ - "24h", - "30d", - "90d" - ], - "x-enum-name": "UsageRange", - "x-enum-keys": [ - "Twenty Four Hours", - "Thirty Days", - "Ninety Days" - ], - "default": "30d" + "x-example": "<TABLE_ID>" }, - "in": "query" + "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "x-example": null + }, + "elements": { + "type": "array", + "description": "Array of enum values.", + "x-example": null, + "items": { + "type": "string" + } + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "x-example": "<DEFAULT>", + "x-nullable": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "x-example": false + } + }, + "required": [ + "key", + "elements", + "required" + ] + } + } + } + } } }, - "\/tablesdb": { - "get": { - "summary": "List databases", - "operationId": "tablesDBList", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/enum\/{key}": { + "patch": { + "summary": "Update enum column", + "operationId": "tablesDBUpdateEnumColumn", "tags": [ "tablesDB" ], - "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.", + "description": "Update an enum column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "Databases List", + "description": "ColumnEnum", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/databaseList" + "$ref": "#\/components\/schemas\/columnEnum" } } } @@ -48305,23 +54291,26 @@ }, "deprecated": false, "x-appwrite": { - "method": "list", - "group": "tablesdb", - "weight": 338, + "method": "updateEnumColumn", + "group": "columns", + "weight": 342, "cookies": false, "type": "", - "demo": "tablesdb\/list.md", + "demo": "tablesdb\/update-enum-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-enum-column.md", "auth": { "Project": [] } @@ -48334,56 +54323,93 @@ ], "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, + "name": "databaseId", + "description": "Database ID.", + "required": true, "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] + "type": "string", + "x-example": "<DATABASE_ID>" }, - "in": "query" + "in": "path" }, { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, + "name": "tableId", + "description": "Table ID.", + "required": true, "schema": { "type": "string", - "x-example": "<SEARCH>", - "default": "" + "x-example": "<TABLE_ID>" }, - "in": "query" + "in": "path" }, { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, + "name": "key", + "description": "Column Key.", + "required": true, "schema": { - "type": "boolean", - "x-example": false, - "default": true + "type": "string" }, - "in": "query" + "in": "path" } - ] - }, + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "elements": { + "type": "array", + "description": "Updated list of enum values.", + "x-example": null, + "items": { + "type": "string" + } + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "x-example": "<DEFAULT>", + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "elements", + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/float": { "post": { - "summary": "Create database", - "operationId": "tablesDBCreate", + "summary": "Create float column", + "operationId": "tablesDBCreateFloatColumn", "tags": [ "tablesDB" ], - "description": "Create a new Database.\n", + "description": "Create a float column. Optionally, minimum and maximum values can be provided.\n", "responses": { - "201": { - "description": "Database", + "202": { + "description": "ColumnFloat", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/database" + "$ref": "#\/components\/schemas\/columnFloat" } } } @@ -48391,23 +54417,26 @@ }, "deprecated": false, "x-appwrite": { - "method": "create", - "group": "tablesdb", - "weight": 334, + "method": "createFloatColumn", + "group": "columns", + "weight": 343, "cookies": false, "type": "", - "demo": "tablesdb\/create.md", + "demo": "tablesdb\/create-float-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-float-column.md", "auth": { "Project": [] } @@ -48418,31 +54447,74 @@ "Key": [] } ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TABLE_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "databaseId": { + "key": { "type": "string", - "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.", - "x-example": "<DATABASE_ID>" + "description": "Column Key.", + "x-example": null }, - "name": { - "type": "string", - "description": "Database name. Max length: 128 chars.", - "x-example": "<NAME>" + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false }, - "enabled": { + "min": { + "type": "number", + "description": "Minimum value", + "x-example": null, + "format": "float", + "x-nullable": true + }, + "max": { + "type": "number", + "description": "Maximum value", + "x-example": null, + "format": "float", + "x-nullable": true + }, + "default": { + "type": "number", + "description": "Default value. Cannot be set when required.", + "x-example": null, + "format": "float", + "x-nullable": true + }, + "array": { "type": "boolean", - "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.", + "description": "Is column an array?", "x-example": false } }, "required": [ - "databaseId", - "name" + "key", + "required" ] } } @@ -48450,21 +54522,21 @@ } } }, - "\/tablesdb\/transactions": { - "get": { - "summary": "List transactions", - "operationId": "tablesDBListTransactions", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/float\/{key}": { + "patch": { + "summary": "Update float column", + "operationId": "tablesDBUpdateFloatColumn", "tags": [ "tablesDB" ], - "description": "List transactions across all databases.", + "description": "Update a float column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "Transaction List", + "description": "ColumnFloat", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/transactionList" + "$ref": "#\/components\/schemas\/columnFloat" } } } @@ -48472,28 +54544,26 @@ }, "deprecated": false, "x-appwrite": { - "method": "listTransactions", - "group": "transactions", - "weight": 405, + "method": "updateFloatColumn", + "group": "columns", + "weight": 344, "cookies": false, "type": "", - "demo": "tablesdb\/list-transactions.md", + "demo": "tablesdb\/update-float-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "documents.read", - "rows.read" + "tables.write", + "collections.write" ], "platforms": [ "console", - "server", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-transactions.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-float-column.md", "auth": { "Project": [] } @@ -48501,40 +54571,104 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "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).", - "required": false, + "name": "databaseId", + "description": "Database ID.", + "required": true, "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] + "type": "string", + "x-example": "<DATABASE_ID>" }, - "in": "query" + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string" + }, + "in": "path" } - ] - }, + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false + }, + "min": { + "type": "number", + "description": "Minimum value", + "x-example": null, + "format": "float", + "x-nullable": true + }, + "max": { + "type": "number", + "description": "Maximum value", + "x-example": null, + "format": "float", + "x-nullable": true + }, + "default": { + "type": "number", + "description": "Default value. Cannot be set when required.", + "x-example": null, + "format": "float", + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/integer": { "post": { - "summary": "Create transaction", - "operationId": "tablesDBCreateTransaction", + "summary": "Create integer column", + "operationId": "tablesDBCreateIntegerColumn", "tags": [ "tablesDB" ], - "description": "Create a new transaction.", - "responses": { - "201": { - "description": "Transaction", + "description": "Create an integer column. Optionally, minimum and maximum values can be provided.\n", + "responses": { + "202": { + "description": "ColumnInteger", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/transaction" + "$ref": "#\/components\/schemas\/columnInteger" } } } @@ -48542,28 +54676,26 @@ }, "deprecated": false, "x-appwrite": { - "method": "createTransaction", - "group": "transactions", - "weight": 401, + "method": "createIntegerColumn", + "group": "columns", + "weight": 345, "cookies": false, "type": "", - "demo": "tablesdb\/create-transaction.md", + "demo": "tablesdb\/create-integer-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "documents.write", - "rows.write" + "tables.write", + "collections.write" ], "platforms": [ "console", - "server", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-transaction.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-integer-column.md", "auth": { "Project": [] } @@ -48571,8 +54703,29 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TABLE_ID>" + }, + "in": "path" } ], "requestBody": { @@ -48581,34 +54734,68 @@ "schema": { "type": "object", "properties": { - "ttl": { + "key": { + "type": "string", + "description": "Column Key.", + "x-example": null + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false + }, + "min": { "type": "integer", - "description": "Seconds before the transaction expires.", - "x-example": 60, - "format": "int32" + "description": "Minimum value", + "x-example": null, + "format": "int64", + "x-nullable": true + }, + "max": { + "type": "integer", + "description": "Maximum value", + "x-example": null, + "format": "int64", + "x-nullable": true + }, + "default": { + "type": "integer", + "description": "Default value. Cannot be set when column is required.", + "x-example": null, + "format": "int64", + "x-nullable": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "x-example": false } - } + }, + "required": [ + "key", + "required" + ] } } } } } }, - "\/tablesdb\/transactions\/{transactionId}": { - "get": { - "summary": "Get transaction", - "operationId": "tablesDBGetTransaction", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/integer\/{key}": { + "patch": { + "summary": "Update integer column", + "operationId": "tablesDBUpdateIntegerColumn", "tags": [ "tablesDB" ], - "description": "Get a transaction by its unique ID.", + "description": "Update an integer column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "Transaction", + "description": "ColumnInteger", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/transaction" + "$ref": "#\/components\/schemas\/columnInteger" } } } @@ -48616,28 +54803,26 @@ }, "deprecated": false, "x-appwrite": { - "method": "getTransaction", - "group": "transactions", - "weight": 402, + "method": "updateIntegerColumn", + "group": "columns", + "weight": 346, "cookies": false, "type": "", - "demo": "tablesdb\/get-transaction.md", + "demo": "tablesdb\/update-integer-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "documents.read", - "rows.read" + "tables.write", + "collections.write" ], "platforms": [ "console", - "server", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-transaction.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-integer-column.md", "auth": { "Project": [] } @@ -48645,37 +54830,104 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "transactionId", - "description": "Transaction ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<TRANSACTION_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string" }, "in": "path" } - ] - }, - "patch": { - "summary": "Update transaction", - "operationId": "tablesDBUpdateTransaction", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false + }, + "min": { + "type": "integer", + "description": "Minimum value", + "x-example": null, + "format": "int64", + "x-nullable": true + }, + "max": { + "type": "integer", + "description": "Maximum value", + "x-example": null, + "format": "int64", + "x-nullable": true + }, + "default": { + "type": "integer", + "description": "Default value. Cannot be set when column is required.", + "x-example": null, + "format": "int64", + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/ip": { + "post": { + "summary": "Create IP address column", + "operationId": "tablesDBCreateIpColumn", "tags": [ "tablesDB" ], - "description": "Update a transaction, to either commit or roll back its operations.", + "description": "Create IP address column.\n", "responses": { - "200": { - "description": "Transaction", + "202": { + "description": "ColumnIP", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/transaction" + "$ref": "#\/components\/schemas\/columnIp" } } } @@ -48683,28 +54935,26 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateTransaction", - "group": "transactions", - "weight": 403, + "method": "createIpColumn", + "group": "columns", + "weight": 347, "cookies": false, "type": "", - "demo": "tablesdb\/update-transaction.md", + "demo": "tablesdb\/create-ip-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "documents.write", - "rows.write" + "tables.write", + "collections.write" ], "platforms": [ "console", - "server", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-transaction.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-ip-column.md", "auth": { "Project": [] } @@ -48712,18 +54962,27 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "transactionId", - "description": "Transaction ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<TRANSACTION_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TABLE_ID>" }, "in": "path" } @@ -48734,58 +54993,80 @@ "schema": { "type": "object", "properties": { - "commit": { + "key": { + "type": "string", + "description": "Column Key.", + "x-example": null + }, + "required": { "type": "boolean", - "description": "Commit transaction?", + "description": "Is column required?", "x-example": false }, - "rollback": { + "default": { + "type": "string", + "description": "Default value. Cannot be set when column is required.", + "x-example": null, + "x-nullable": true + }, + "array": { "type": "boolean", - "description": "Rollback transaction?", + "description": "Is column an array?", "x-example": false } - } + }, + "required": [ + "key", + "required" + ] } } } } - }, - "delete": { - "summary": "Delete transaction", - "operationId": "tablesDBDeleteTransaction", + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/ip\/{key}": { + "patch": { + "summary": "Update IP address column", + "operationId": "tablesDBUpdateIpColumn", "tags": [ "tablesDB" ], - "description": "Delete a transaction by its unique ID.", + "description": "Update an ip column. Changing the `default` value will not update already existing rows.\n", "responses": { - "204": { - "description": "No content" + "200": { + "description": "ColumnIP", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnIp" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteTransaction", - "group": "transactions", - "weight": 404, + "method": "updateIpColumn", + "group": "columns", + "weight": 348, "cookies": false, "type": "", - "demo": "tablesdb\/delete-transaction.md", + "demo": "tablesdb\/update-ip-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "documents.write", - "rows.write" + "tables.write", + "collections.write" ], "platforms": [ "console", - "server", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-transaction.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-ip-column.md", "auth": { "Project": [] } @@ -48793,39 +55074,89 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "transactionId", - "description": "Transaction ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<TRANSACTION_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string" }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false + }, + "default": { + "type": "string", + "description": "Default value. Cannot be set when column is required.", + "x-example": null, + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } } }, - "\/tablesdb\/transactions\/{transactionId}\/operations": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/line": { "post": { - "summary": "Create operations", - "operationId": "tablesDBCreateOperations", + "summary": "Create line column", + "operationId": "tablesDBCreateLineColumn", "tags": [ "tablesDB" ], - "description": "Create multiple operations in a single transaction.", + "description": "Create a geometric line column.", "responses": { - "201": { - "description": "Transaction", + "202": { + "description": "ColumnLine", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/transaction" + "$ref": "#\/components\/schemas\/columnLine" } } } @@ -48833,28 +55164,26 @@ }, "deprecated": false, "x-appwrite": { - "method": "createOperations", - "group": "transactions", - "weight": 406, + "method": "createLineColumn", + "group": "columns", + "weight": 349, "cookies": false, "type": "", - "demo": "tablesdb\/create-operations.md", + "demo": "tablesdb\/create-line-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "documents.write", - "rows.write" + "tables.write", + "collections.write" ], "platforms": [ "console", - "server", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-operations.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-line-column.md", "auth": { "Project": [] } @@ -48862,18 +55191,27 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "transactionId", - "description": "Transaction ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<TRANSACTION_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "x-example": "<TABLE_ID>" }, "in": "path" } @@ -48884,36 +55222,55 @@ "schema": { "type": "object", "properties": { - "operations": { + "key": { + "type": "string", + "description": "Column Key.", + "x-example": null + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false + }, + "default": { "type": "array", - "description": "Array of staged operations.", - "x-example": "[\n\t {\n\t \"action\": \"create\",\n\t \"databaseId\": \"<DATABASE_ID>\",\n\t \"tableId\": \"<TABLE_ID>\",\n\t \"rowId\": \"<ROW_ID>\",\n\t \"data\": {\n\t \"name\": \"Walter O'Brien\"\n\t }\n\t }\n\t]", + "description": "Default value for column 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 column is required.", + "x-example": "[[1, 2], [3, 4], [5, 6]]", "items": { - "type": "object" - } + "oneOf": [ + { + "type": "array" + } + ] + }, + "x-nullable": true } - } + }, + "required": [ + "key", + "required" + ] } } } } } }, - "\/tablesdb\/usage": { - "get": { - "summary": "Get TablesDB usage stats", - "operationId": "tablesDBListUsage", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/line\/{key}": { + "patch": { + "summary": "Update line column", + "operationId": "tablesDBUpdateLineColumn", "tags": [ "tablesDB" ], - "description": "List usage metrics and statistics for all databases in the project. You can view the total number of databases, tables, rows, and storage usage. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.", + "description": "Update a line column. Changing the `default` value will not update already existing rows.", "responses": { "200": { - "description": "UsageDatabases", + "description": "ColumnLine", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/usageDatabases" + "$ref": "#\/components\/schemas\/columnLine" } } } @@ -48921,98 +55278,122 @@ }, "deprecated": false, "x-appwrite": { - "method": "listUsage", - "group": null, - "weight": 340, - "cookies": false, - "type": "", - "demo": "tablesdb\/list-usage.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.read", - "collections.read" - ], - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-usage.md", - "methods": [ - { - "name": "listUsage", - "namespace": "tablesDB", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "range" - ], - "required": [], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/usageDatabases" - } - ], - "description": "List usage metrics and statistics for all databases in the project. You can view the total number of databases, tables, rows, and storage usage. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.", - "demo": "tablesdb\/list-usage.md", - "public": true - } + "method": "updateLineColumn", + "group": "columns", + "weight": 350, + "cookies": false, + "type": "", + "demo": "tablesdb\/update-line-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write" + ], + "platforms": [ + "console", + "server" ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-line-column.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "range", - "description": "Date range.", - "required": false, + "name": "databaseId", + "description": "Database ID.", + "required": true, "schema": { "type": "string", - "x-example": "24h", - "enum": [ - "24h", - "30d", - "90d" - ], - "x-enum-name": "UsageRange", - "x-enum-keys": [ - "Twenty Four Hours", - "Thirty Days", - "Ninety Days" - ], - "default": "30d" + "x-example": "<DATABASE_ID>" }, - "in": "query" + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "x-example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string" + }, + "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false + }, + "default": { + "type": "array", + "description": "Default value for column 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 column is required.", + "x-example": "[[1, 2], [3, 4], [5, 6]]", + "items": { + "oneOf": [ + { + "type": "array" + } + ] + }, + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required" + ] + } + } + } + } } }, - "\/tablesdb\/{databaseId}": { - "get": { - "summary": "Get database", - "operationId": "tablesDBGet", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/longtext": { + "post": { + "summary": "Create longtext column", + "operationId": "tablesDBCreateLongtextColumn", "tags": [ "tablesDB" ], - "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", + "description": "Create a longtext column.\n", "responses": { - "200": { - "description": "Database", + "202": { + "description": "ColumnLongtext", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/database" + "$ref": "#\/components\/schemas\/columnLongtext" } } } @@ -49020,23 +55401,26 @@ }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": "tablesdb", - "weight": 335, + "method": "createLongtextColumn", + "group": "columns", + "weight": 367, "cookies": false, "type": "", - "demo": "tablesdb\/get.md", + "demo": "tablesdb\/create-longtext-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-longtext-column.md", "auth": { "Project": [] } @@ -49057,23 +55441,76 @@ "x-example": "<DATABASE_ID>" }, "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "x-example": "<TABLE_ID>" + }, + "in": "path" } - ] - }, - "put": { - "summary": "Update database", - "operationId": "tablesDBUpdate", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "x-example": null + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "x-example": "<DEFAULT>", + "x-nullable": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "x-example": false + }, + "encrypt": { + "type": "boolean", + "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", + "x-example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/longtext\/{key}": { + "patch": { + "summary": "Update longtext column", + "operationId": "tablesDBUpdateLongtextColumn", "tags": [ "tablesDB" ], - "description": "Update a database by its unique ID.", + "description": "Update a longtext column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "Database", + "description": "ColumnLongtext", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/database" + "$ref": "#\/components\/schemas\/columnLongtext" } } } @@ -49081,23 +55518,26 @@ }, "deprecated": false, "x-appwrite": { - "method": "update", - "group": "tablesdb", - "weight": 336, + "method": "updateLongtextColumn", + "group": "columns", + "weight": 368, "cookies": false, "type": "", - "demo": "tablesdb\/update.md", + "demo": "tablesdb\/update-longtext-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-longtext-column.md", "auth": { "Project": [] } @@ -49118,6 +55558,25 @@ "x-example": "<DATABASE_ID>" }, "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "x-example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string" + }, + "in": "path" } ], "requestBody": { @@ -49126,53 +55585,76 @@ "schema": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "Database name. Max length: 128 chars.", - "x-example": "<NAME>" - }, - "enabled": { + "required": { "type": "boolean", - "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.", + "description": "Is column required?", "x-example": false + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "x-example": "<DEFAULT>", + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "x-example": null, + "x-nullable": true } - } + }, + "required": [ + "required", + "default" + ] } } } } - }, - "delete": { - "summary": "Delete database", - "operationId": "tablesDBDelete", + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/mediumtext": { + "post": { + "summary": "Create mediumtext column", + "operationId": "tablesDBCreateMediumtextColumn", "tags": [ "tablesDB" ], - "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", + "description": "Create a mediumtext column.\n", "responses": { - "204": { - "description": "No content" + "202": { + "description": "ColumnMediumtext", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnMediumtext" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": "tablesdb", - "weight": 337, + "method": "createMediumtextColumn", + "group": "columns", + "weight": 365, "cookies": false, "type": "", - "demo": "tablesdb\/delete.md", + "demo": "tablesdb\/create-mediumtext-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-mediumtext-column.md", "auth": { "Project": [] } @@ -49193,25 +55675,76 @@ "x-example": "<DATABASE_ID>" }, "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "x-example": "<TABLE_ID>" + }, + "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "x-example": null + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "x-example": "<DEFAULT>", + "x-nullable": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "x-example": false + }, + "encrypt": { + "type": "boolean", + "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", + "x-example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } } }, - "\/tablesdb\/{databaseId}\/tables": { - "get": { - "summary": "List tables", - "operationId": "tablesDBListTables", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/mediumtext\/{key}": { + "patch": { + "summary": "Update mediumtext column", + "operationId": "tablesDBUpdateMediumtextColumn", "tags": [ "tablesDB" ], - "description": "Get a list of all tables that belong to the provided databaseId. You can use the search parameter to filter your results.", + "description": "Update a mediumtext column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "Tables List", + "description": "ColumnMediumtext", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/tableList" + "$ref": "#\/components\/schemas\/columnMediumtext" } } } @@ -49219,18 +55752,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "listTables", - "group": "tables", - "weight": 345, + "method": "updateMediumtextColumn", + "group": "columns", + "weight": 366, "cookies": false, "type": "", - "demo": "tablesdb\/list-tables.md", + "demo": "tablesdb\/update-mediumtext-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.read", - "collections.read" + "tables.write", + "collections.write" ], "platforms": [ "console", @@ -49238,7 +55771,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-tables.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-mediumtext-column.md", "auth": { "Project": [] } @@ -49261,56 +55794,74 @@ "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 columns: name, enabled, rowSecurity", - "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, + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, "schema": { "type": "string", - "x-example": "<SEARCH>", - "default": "" + "x-example": "<TABLE_ID>" }, - "in": "query" + "in": "path" }, { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, + "name": "key", + "description": "Column Key.", + "required": true, "schema": { - "type": "boolean", - "x-example": false, - "default": true + "type": "string" }, - "in": "query" + "in": "path" } - ] - }, + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "x-example": "<DEFAULT>", + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/point": { "post": { - "summary": "Create table", - "operationId": "tablesDBCreateTable", + "summary": "Create point column", + "operationId": "tablesDBCreatePointColumn", "tags": [ "tablesDB" ], - "description": "Create a new Table. Before using this route, you should create a new database resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "description": "Create a geometric point column.", "responses": { - "201": { - "description": "Table", + "202": { + "description": "ColumnPoint", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/table" + "$ref": "#\/components\/schemas\/columnPoint" } } } @@ -49318,12 +55869,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "createTable", - "group": "tables", - "weight": 341, + "method": "createPointColumn", + "group": "columns", + "weight": 351, "cookies": false, "type": "", - "demo": "tablesdb\/create-table.md", + "demo": "tablesdb\/create-point-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -49337,7 +55888,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-table.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-point-column.md", "auth": { "Project": [] } @@ -49358,6 +55909,16 @@ "x-example": "<DATABASE_ID>" }, "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "x-example": "<TABLE_ID>" + }, + "in": "path" } ], "requestBody": { @@ -49366,55 +55927,33 @@ "schema": { "type": "object", "properties": { - "tableId": { - "type": "string", - "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.", - "x-example": "<TABLE_ID>" - }, - "name": { + "key": { "type": "string", - "description": "Table name. Max length: 128 chars.", - "x-example": "<NAME>" - }, - "permissions": { - "type": "array", - "description": "An array of permissions strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "x-example": "[\"read(\"any\")\"]", - "items": { - "type": "string" - }, - "x-nullable": true - }, - "rowSecurity": { - "type": "boolean", - "description": "Enables configuring permissions for individual rows. A user needs one of row or table level permissions to access a row. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "x-example": false + "description": "Column Key.", + "x-example": null }, - "enabled": { + "required": { "type": "boolean", - "description": "Is table enabled? When set to 'disabled', users cannot access the table but Server SDKs with and API key can still read and write to the table. No data is lost when this is toggled.", + "description": "Is column required?", "x-example": false }, - "columns": { - "type": "array", - "description": "Array of column definitions to create. Each column should contain: key (string), type (string: string, integer, float, boolean, datetime, relationship), size (integer, required for string type), required (boolean, optional), default (mixed, optional), array (boolean, optional), and type-specific options.", - "x-example": null, - "items": { - "type": "object" - } - }, - "indexes": { + "default": { "type": "array", - "description": "Array of index definitions to create. Each index should contain: key (string), type (string: key, fulltext, unique, spatial), attributes (array of column keys), orders (array of ASC\/DESC, optional), and lengths (array of integers, optional).", - "x-example": null, + "description": "Default value for column when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when column is required.", + "x-example": "[1, 2]", "items": { - "type": "object" - } + "oneOf": [ + { + "type": "array" + } + ] + }, + "x-nullable": true } }, "required": [ - "tableId", - "name" + "key", + "required" ] } } @@ -49422,21 +55961,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}": { - "get": { - "summary": "Get table", - "operationId": "tablesDBGetTable", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/point\/{key}": { + "patch": { + "summary": "Update point column", + "operationId": "tablesDBUpdatePointColumn", "tags": [ "tablesDB" ], - "description": "Get a table by its unique ID. This endpoint response returns a JSON object with the table metadata.", + "description": "Update a point column. Changing the `default` value will not update already existing rows.", "responses": { "200": { - "description": "Table", + "description": "ColumnPoint", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/table" + "$ref": "#\/components\/schemas\/columnPoint" } } } @@ -49444,18 +55983,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "getTable", - "group": "tables", - "weight": 342, + "method": "updatePointColumn", + "group": "columns", + "weight": 352, "cookies": false, "type": "", - "demo": "tablesdb\/get-table.md", + "demo": "tablesdb\/update-point-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.read", - "collections.read" + "tables.write", + "collections.write" ], "platforms": [ "console", @@ -49463,7 +56002,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-table.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-point-column.md", "auth": { "Project": [] } @@ -49487,30 +56026,79 @@ }, { "name": "tableId", - "description": "Table ID.", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "schema": { "type": "string", "x-example": "<TABLE_ID>" }, "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string" + }, + "in": "path" } - ] - }, - "put": { - "summary": "Update table", - "operationId": "tablesDBUpdateTable", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false + }, + "default": { + "type": "array", + "description": "Default value for column when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when column is required.", + "x-example": "[1, 2]", + "items": { + "oneOf": [ + { + "type": "array" + } + ] + }, + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/polygon": { + "post": { + "summary": "Create polygon column", + "operationId": "tablesDBCreatePolygonColumn", "tags": [ "tablesDB" ], - "description": "Update a table by its unique ID.", + "description": "Create a geometric polygon column.", "responses": { - "200": { - "description": "Table", + "202": { + "description": "ColumnPolygon", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/table" + "$ref": "#\/components\/schemas\/columnPolygon" } } } @@ -49518,12 +56106,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateTable", - "group": "tables", - "weight": 343, + "method": "createPolygonColumn", + "group": "columns", + "weight": 353, "cookies": false, "type": "", - "demo": "tablesdb\/update-table.md", + "demo": "tablesdb\/create-polygon-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -49537,7 +56125,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-table.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-polygon-column.md", "auth": { "Project": [] } @@ -49561,7 +56149,7 @@ }, { "name": "tableId", - "description": "Table ID.", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "schema": { "type": "string", @@ -49576,56 +56164,68 @@ "schema": { "type": "object", "properties": { - "name": { + "key": { "type": "string", - "description": "Table name. Max length: 128 chars.", - "x-example": "<NAME>" + "description": "Column Key.", + "x-example": null }, - "permissions": { + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false + }, + "default": { "type": "array", - "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "x-example": "[\"read(\"any\")\"]", + "description": "Default value for column 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 column is required.", + "x-example": "[[[1, 2], [3, 4], [5, 6], [1, 2]]]", "items": { - "type": "string" + "oneOf": [ + { + "type": "array" + } + ] }, "x-nullable": true - }, - "rowSecurity": { - "type": "boolean", - "description": "Enables configuring permissions for individual rows. A user needs one of row or table-level permissions to access a row. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "x-example": false - }, - "enabled": { - "type": "boolean", - "description": "Is table enabled? When set to 'disabled', users cannot access the table but Server SDKs with and API key can still read and write to the table. No data is lost when this is toggled.", - "x-example": false } - } + }, + "required": [ + "key", + "required" + ] } } } } - }, - "delete": { - "summary": "Delete table", - "operationId": "tablesDBDeleteTable", + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/polygon\/{key}": { + "patch": { + "summary": "Update polygon column", + "operationId": "tablesDBUpdatePolygonColumn", "tags": [ "tablesDB" ], - "description": "Delete a table by its unique ID. Only users with write permissions have access to delete this resource.", + "description": "Update a polygon column. Changing the `default` value will not update already existing rows.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "ColumnPolygon", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnPolygon" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteTable", - "group": "tables", - "weight": 344, + "method": "updatePolygonColumn", + "group": "columns", + "weight": 354, "cookies": false, "type": "", - "demo": "tablesdb\/delete-table.md", + "demo": "tablesdb\/update-polygon-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -49639,7 +56239,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-table.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-polygon-column.md", "auth": { "Project": [] } @@ -49663,32 +56263,79 @@ }, { "name": "tableId", - "description": "Table ID.", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "schema": { "type": "string", "x-example": "<TABLE_ID>" }, "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string" + }, + "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false + }, + "default": { + "type": "array", + "description": "Default value for column 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 column is required.", + "x-example": "[[[1, 2], [3, 4], [5, 6], [1, 2]]]", + "items": { + "oneOf": [ + { + "type": "array" + } + ] + }, + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required" + ] + } + } + } + } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns": { - "get": { - "summary": "List columns", - "operationId": "tablesDBListColumns", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/relationship": { + "post": { + "summary": "Create relationship column", + "operationId": "tablesDBCreateRelationshipColumn", "tags": [ "tablesDB" ], - "description": "List columns in the table.", + "description": "Create relationship column. [Learn more about relationship columns](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-columns).\n", "responses": { - "200": { - "description": "Columns List", + "202": { + "description": "ColumnRelationship", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnList" + "$ref": "#\/components\/schemas\/columnRelationship" } } } @@ -49696,18 +56343,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "listColumns", + "method": "createRelationshipColumn", "group": "columns", - "weight": 350, + "weight": 355, "cookies": false, "type": "", - "demo": "tablesdb\/list-columns.md", + "demo": "tablesdb\/create-relationship-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.read", - "collections.read" + "tables.write", + "collections.write" ], "platforms": [ "console", @@ -49715,7 +56362,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-columns.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-relationship-column.md", "auth": { "Project": [] } @@ -49746,62 +56393,100 @@ "x-example": "<TABLE_ID>" }, "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 columns: 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", - "x-example": false, - "default": true - }, - "in": "query" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "relatedTableId": { + "type": "string", + "description": "Related Table ID.", + "x-example": "<RELATED_TABLE_ID>" + }, + "type": { + "type": "string", + "description": "Relation type", + "x-example": "oneToOne", + "enum": [ + "oneToOne", + "manyToOne", + "manyToMany", + "oneToMany" + ], + "x-enum-name": "RelationshipType", + "x-enum-keys": [] + }, + "twoWay": { + "type": "boolean", + "description": "Is Two Way?", + "x-example": false + }, + "key": { + "type": "string", + "description": "Column Key.", + "x-example": null, + "x-nullable": true + }, + "twoWayKey": { + "type": "string", + "description": "Two Way Column Key.", + "x-example": null, + "x-nullable": true + }, + "onDelete": { + "type": "string", + "description": "Constraints option", + "x-example": "cascade", + "enum": [ + "cascade", + "restrict", + "setNull" + ], + "x-enum-name": "RelationMutate", + "x-enum-keys": [] + } + }, + "required": [ + "relatedTableId", + "type" + ] + } + } + } + } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/boolean": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/string": { "post": { - "summary": "Create boolean column", - "operationId": "tablesDBCreateBooleanColumn", + "summary": "Create string column", + "operationId": "tablesDBCreateStringColumn", "tags": [ "tablesDB" ], - "description": "Create a boolean column.\n", + "description": "Create a string column.\n", "responses": { "202": { - "description": "ColumnBoolean", + "description": "ColumnString", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnBoolean" + "$ref": "#\/components\/schemas\/columnString" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "createBooleanColumn", + "method": "createStringColumn", "group": "columns", - "weight": 351, + "weight": 357, "cookies": false, "type": "", - "demo": "tablesdb\/create-boolean-column.md", + "demo": "tablesdb\/create-string-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -49815,7 +56500,11 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-boolean-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-string-column.md", + "deprecated": { + "since": "1.9.0", + "replaceWith": "tablesDB.createTextColumn" + }, "auth": { "Project": [] } @@ -49859,25 +56548,37 @@ "description": "Column Key.", "x-example": null }, + "size": { + "type": "integer", + "description": "Column size for text columns, in number of characters.", + "x-example": 1, + "format": "int32" + }, "required": { "type": "boolean", "description": "Is column required?", "x-example": false }, "default": { - "type": "boolean", + "type": "string", "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": false, + "x-example": "<DEFAULT>", "x-nullable": true }, "array": { "type": "boolean", "description": "Is column an array?", "x-example": false + }, + "encrypt": { + "type": "boolean", + "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", + "x-example": false } }, "required": [ "key", + "size", "required" ] } @@ -49886,34 +56587,34 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/boolean\/{key}": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/string\/{key}": { "patch": { - "summary": "Update boolean column", - "operationId": "tablesDBUpdateBooleanColumn", + "summary": "Update string column", + "operationId": "tablesDBUpdateStringColumn", "tags": [ "tablesDB" ], - "description": "Update a boolean column. Changing the `default` value will not update already existing rows.", + "description": "Update a string column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "ColumnBoolean", + "description": "ColumnString", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnBoolean" + "$ref": "#\/components\/schemas\/columnString" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "updateBooleanColumn", + "method": "updateStringColumn", "group": "columns", - "weight": 352, + "weight": 358, "cookies": false, "type": "", - "demo": "tablesdb\/update-boolean-column.md", + "demo": "tablesdb\/update-string-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -49927,7 +56628,11 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-boolean-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-string-column.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateTextColumn" + }, "auth": { "Project": [] } @@ -49981,9 +56686,16 @@ "x-example": false }, "default": { - "type": "boolean", + "type": "string", "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": false, + "x-example": "<DEFAULT>", + "x-nullable": true + }, + "size": { + "type": "integer", + "description": "Maximum size of the string column.", + "x-example": 1, + "format": "int32", "x-nullable": true }, "newKey": { @@ -50003,21 +56715,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/datetime": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/text": { "post": { - "summary": "Create datetime column", - "operationId": "tablesDBCreateDatetimeColumn", + "summary": "Create text column", + "operationId": "tablesDBCreateTextColumn", "tags": [ "tablesDB" ], - "description": "Create a date time column according to the ISO 8601 standard.", + "description": "Create a text column.\n", "responses": { "202": { - "description": "ColumnDatetime", + "description": "ColumnText", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnDatetime" + "$ref": "#\/components\/schemas\/columnText" } } } @@ -50025,12 +56737,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "createDatetimeColumn", + "method": "createTextColumn", "group": "columns", - "weight": 353, + "weight": 363, "cookies": false, "type": "", - "demo": "tablesdb\/create-datetime-column.md", + "demo": "tablesdb\/create-text-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -50044,7 +56756,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-datetime-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-text-column.md", "auth": { "Project": [] } @@ -50068,7 +56780,7 @@ }, { "name": "tableId", - "description": "Table ID.", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "schema": { "type": "string", @@ -50095,14 +56807,19 @@ }, "default": { "type": "string", - "description": "Default value for the column in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Cannot be set when column is required.", - "x-example": null, + "description": "Default value for column when not provided. Cannot be set when column is required.", + "x-example": "<DEFAULT>", "x-nullable": true }, "array": { "type": "boolean", "description": "Is column an array?", "x-example": false + }, + "encrypt": { + "type": "boolean", + "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", + "x-example": false } }, "required": [ @@ -50115,21 +56832,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/datetime\/{key}": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/text\/{key}": { "patch": { - "summary": "Update dateTime column", - "operationId": "tablesDBUpdateDatetimeColumn", + "summary": "Update text column", + "operationId": "tablesDBUpdateTextColumn", "tags": [ "tablesDB" ], - "description": "Update a date time column. Changing the `default` value will not update already existing rows.", + "description": "Update a text column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "ColumnDatetime", + "description": "ColumnText", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnDatetime" + "$ref": "#\/components\/schemas\/columnText" } } } @@ -50137,12 +56854,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateDatetimeColumn", + "method": "updateTextColumn", "group": "columns", - "weight": 354, + "weight": 364, "cookies": false, "type": "", - "demo": "tablesdb\/update-datetime-column.md", + "demo": "tablesdb\/update-text-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -50156,7 +56873,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-datetime-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-text-column.md", "auth": { "Project": [] } @@ -50180,7 +56897,7 @@ }, { "name": "tableId", - "description": "Table ID.", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "schema": { "type": "string", @@ -50212,7 +56929,7 @@ "default": { "type": "string", "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": null, + "x-example": "<DEFAULT>", "x-nullable": true }, "newKey": { @@ -50232,21 +56949,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/email": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/url": { "post": { - "summary": "Create email column", - "operationId": "tablesDBCreateEmailColumn", + "summary": "Create URL column", + "operationId": "tablesDBCreateUrlColumn", "tags": [ "tablesDB" ], - "description": "Create an email column.\n", + "description": "Create a URL column.\n", "responses": { "202": { - "description": "ColumnEmail", + "description": "ColumnURL", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnEmail" + "$ref": "#\/components\/schemas\/columnUrl" } } } @@ -50254,12 +56971,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "createEmailColumn", + "method": "createUrlColumn", "group": "columns", - "weight": 355, + "weight": 359, "cookies": false, "type": "", - "demo": "tablesdb\/create-email-column.md", + "demo": "tablesdb\/create-url-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -50273,7 +56990,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-email-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-url-column.md", "auth": { "Project": [] } @@ -50325,8 +57042,8 @@ "default": { "type": "string", "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": "email@example.com", - "format": "email", + "x-example": "https:\/\/example.com", + "format": "url", "x-nullable": true }, "array": { @@ -50345,21 +57062,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/email\/{key}": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/url\/{key}": { "patch": { - "summary": "Update email column", - "operationId": "tablesDBUpdateEmailColumn", + "summary": "Update URL column", + "operationId": "tablesDBUpdateUrlColumn", "tags": [ "tablesDB" ], - "description": "Update an email column. Changing the `default` value will not update already existing rows.\n", + "description": "Update an url column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "ColumnEmail", + "description": "ColumnURL", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnEmail" + "$ref": "#\/components\/schemas\/columnUrl" } } } @@ -50367,12 +57084,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateEmailColumn", + "method": "updateUrlColumn", "group": "columns", - "weight": 356, + "weight": 360, "cookies": false, "type": "", - "demo": "tablesdb\/update-email-column.md", + "demo": "tablesdb\/update-url-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -50386,7 +57103,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-email-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-url-column.md", "auth": { "Project": [] } @@ -50442,8 +57159,8 @@ "default": { "type": "string", "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": "email@example.com", - "format": "email", + "x-example": "https:\/\/example.com", + "format": "url", "x-nullable": true }, "newKey": { @@ -50463,21 +57180,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/enum": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/varchar": { "post": { - "summary": "Create enum column", - "operationId": "tablesDBCreateEnumColumn", + "summary": "Create varchar column", + "operationId": "tablesDBCreateVarcharColumn", "tags": [ "tablesDB" ], - "description": "Create an enumeration column. The `elements` param acts as a white-list of accepted values for this column.", + "description": "Create a varchar column.\n", "responses": { "202": { - "description": "ColumnEnum", + "description": "ColumnVarchar", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnEnum" + "$ref": "#\/components\/schemas\/columnVarchar" } } } @@ -50485,12 +57202,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "createEnumColumn", + "method": "createVarcharColumn", "group": "columns", - "weight": 357, + "weight": 361, "cookies": false, "type": "", - "demo": "tablesdb\/create-enum-column.md", + "demo": "tablesdb\/create-varchar-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -50504,7 +57221,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-enum-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-varchar-column.md", "auth": { "Project": [] } @@ -50528,7 +57245,7 @@ }, { "name": "tableId", - "description": "Table ID.", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "schema": { "type": "string", @@ -50548,13 +57265,11 @@ "description": "Column Key.", "x-example": null }, - "elements": { - "type": "array", - "description": "Array of enum values.", - "x-example": null, - "items": { - "type": "string" - } + "size": { + "type": "integer", + "description": "Column size for varchar columns, in number of characters. Maximum size is 16381.", + "x-example": 1, + "format": "int32" }, "required": { "type": "boolean", @@ -50571,11 +57286,16 @@ "type": "boolean", "description": "Is column an array?", "x-example": false + }, + "encrypt": { + "type": "boolean", + "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", + "x-example": false } }, "required": [ "key", - "elements", + "size", "required" ] } @@ -50584,21 +57304,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/enum\/{key}": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/varchar\/{key}": { "patch": { - "summary": "Update enum column", - "operationId": "tablesDBUpdateEnumColumn", + "summary": "Update varchar column", + "operationId": "tablesDBUpdateVarcharColumn", "tags": [ "tablesDB" ], - "description": "Update an enum column. Changing the `default` value will not update already existing rows.\n", + "description": "Update a varchar column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "ColumnEnum", + "description": "ColumnVarchar", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnEnum" + "$ref": "#\/components\/schemas\/columnVarchar" } } } @@ -50606,12 +57326,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateEnumColumn", + "method": "updateVarcharColumn", "group": "columns", - "weight": 358, + "weight": 362, "cookies": false, "type": "", - "demo": "tablesdb\/update-enum-column.md", + "demo": "tablesdb\/update-varchar-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -50625,7 +57345,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-enum-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-varchar-column.md", "auth": { "Project": [] } @@ -50649,7 +57369,7 @@ }, { "name": "tableId", - "description": "Table ID.", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "schema": { "type": "string", @@ -50673,14 +57393,6 @@ "schema": { "type": "object", "properties": { - "elements": { - "type": "array", - "description": "Updated list of enum values.", - "x-example": null, - "items": { - "type": "string" - } - }, "required": { "type": "boolean", "description": "Is column required?", @@ -50692,6 +57404,13 @@ "x-example": "<DEFAULT>", "x-nullable": true }, + "size": { + "type": "integer", + "description": "Maximum size of the varchar column.", + "x-example": 1, + "format": "int32", + "x-nullable": true + }, "newKey": { "type": "string", "description": "New Column Key.", @@ -50700,7 +57419,6 @@ } }, "required": [ - "elements", "required", "default" ] @@ -50710,21 +57428,52 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/float": { - "post": { - "summary": "Create float column", - "operationId": "tablesDBCreateFloatColumn", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/{key}": { + "get": { + "summary": "Get column", + "operationId": "tablesDBGetColumn", "tags": [ "tablesDB" ], - "description": "Create a float column. Optionally, minimum and maximum values can be provided.\n", + "description": "Get column by ID.", "responses": { - "202": { - "description": "ColumnFloat", + "200": { + "description": "ColumnBoolean, or ColumnInteger, or ColumnFloat, or ColumnEmail, or ColumnEnum, or ColumnURL, or ColumnIP, or ColumnDatetime, or ColumnRelationship, or ColumnString", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnFloat" + "oneOf": [ + { + "$ref": "#\/components\/schemas\/columnBoolean" + }, + { + "$ref": "#\/components\/schemas\/columnInteger" + }, + { + "$ref": "#\/components\/schemas\/columnFloat" + }, + { + "$ref": "#\/components\/schemas\/columnEmail" + }, + { + "$ref": "#\/components\/schemas\/columnEnum" + }, + { + "$ref": "#\/components\/schemas\/columnUrl" + }, + { + "$ref": "#\/components\/schemas\/columnIp" + }, + { + "$ref": "#\/components\/schemas\/columnDatetime" + }, + { + "$ref": "#\/components\/schemas\/columnRelationship" + }, + { + "$ref": "#\/components\/schemas\/columnString" + } + ] } } } @@ -50732,18 +57481,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "createFloatColumn", + "method": "getColumn", "group": "columns", - "weight": 359, + "weight": 332, "cookies": false, "type": "", - "demo": "tablesdb\/create-float-column.md", + "demo": "tablesdb\/get-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.write", - "collections.write" + "tables.read", + "collections.read" ], "platforms": [ "console", @@ -50751,7 +57500,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-float-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-column.md", "auth": { "Project": [] } @@ -50782,76 +57531,110 @@ "x-example": "<TABLE_ID>" }, "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string" + }, + "in": "path" } + ] + }, + "delete": { + "summary": "Delete column", + "operationId": "tablesDBDeleteColumn", + "tags": [ + "tablesDB" ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "x-example": null - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": false - }, - "min": { - "type": "number", - "description": "Minimum value", - "x-example": null, - "format": "float", - "x-nullable": true - }, - "max": { - "type": "number", - "description": "Maximum value", - "x-example": null, - "format": "float", - "x-nullable": true - }, - "default": { - "type": "number", - "description": "Default value. Cannot be set when required.", - "x-example": null, - "format": "float", - "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "x-example": false - } - }, - "required": [ - "key", - "required" - ] - } - } + "description": "Deletes a column.", + "responses": { + "204": { + "description": "No content" } - } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteColumn", + "group": "columns", + "weight": 333, + "cookies": false, + "type": "", + "demo": "tablesdb\/delete-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-column.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string" + }, + "in": "path" + } + ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/float\/{key}": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/{key}\/relationship": { "patch": { - "summary": "Update float column", - "operationId": "tablesDBUpdateFloatColumn", + "summary": "Update relationship column", + "operationId": "tablesDBUpdateRelationshipColumn", "tags": [ "tablesDB" ], - "description": "Update a float column. Changing the `default` value will not update already existing rows.\n", + "description": "Update relationship column. [Learn more about relationship columns](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-columns).\n", "responses": { "200": { - "description": "ColumnFloat", + "description": "ColumnRelationship", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnFloat" + "$ref": "#\/components\/schemas\/columnRelationship" } } } @@ -50859,12 +57642,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateFloatColumn", + "method": "updateRelationshipColumn", "group": "columns", - "weight": 360, + "weight": 356, "cookies": false, "type": "", - "demo": "tablesdb\/update-float-column.md", + "demo": "tablesdb\/update-relationship-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -50878,7 +57661,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-float-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-relationship-column.md", "auth": { "Project": [] } @@ -50926,30 +57709,17 @@ "schema": { "type": "object", "properties": { - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": false - }, - "min": { - "type": "number", - "description": "Minimum value", - "x-example": null, - "format": "float", - "x-nullable": true - }, - "max": { - "type": "number", - "description": "Maximum value", - "x-example": null, - "format": "float", - "x-nullable": true - }, - "default": { - "type": "number", - "description": "Default value. Cannot be set when required.", - "x-example": null, - "format": "float", + "onDelete": { + "type": "string", + "description": "Constraints option", + "x-example": "cascade", + "enum": [ + "cascade", + "restrict", + "setNull" + ], + "x-enum-name": "RelationMutate", + "x-enum-keys": [], "x-nullable": true }, "newKey": { @@ -50958,32 +57728,126 @@ "x-example": null, "x-nullable": true } - }, - "required": [ - "required", - "default" - ] + } } } } } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/integer": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/indexes": { + "get": { + "summary": "List indexes", + "operationId": "tablesDBListIndexes", + "tags": [ + "tablesDB" + ], + "description": "List indexes on the table.", + "responses": { + "200": { + "description": "Column Indexes List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnIndexList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listIndexes", + "group": "indexes", + "weight": 372, + "cookies": false, + "type": "", + "demo": "tablesdb\/list-indexes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.read", + "collections.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-indexes.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "x-example": "<TABLE_ID>" + }, + "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 columns: 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", + "x-example": false, + "default": true + }, + "in": "query" + } + ] + }, "post": { - "summary": "Create integer column", - "operationId": "tablesDBCreateIntegerColumn", + "summary": "Create index", + "operationId": "tablesDBCreateIndex", "tags": [ "tablesDB" ], - "description": "Create an integer column. Optionally, minimum and maximum values can be provided.\n", + "description": "Creates an index on the columns listed. Your index should include all the columns you will query in a single request.\nType can be `key`, `fulltext`, or `unique`.", "responses": { "202": { - "description": "ColumnInteger", + "description": "Index", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnInteger" + "$ref": "#\/components\/schemas\/columnIndex" } } } @@ -50991,12 +57855,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "createIntegerColumn", - "group": "columns", - "weight": 361, + "method": "createIndex", + "group": "indexes", + "weight": 369, "cookies": false, "type": "", - "demo": "tablesdb\/create-integer-column.md", + "demo": "tablesdb\/create-index.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -51010,7 +57874,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-integer-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-index.md", "auth": { "Project": [] } @@ -51034,7 +57898,7 @@ }, { "name": "tableId", - "description": "Table ID.", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "schema": { "type": "string", @@ -51051,44 +57915,57 @@ "properties": { "key": { "type": "string", - "description": "Column Key.", + "description": "Index Key.", "x-example": null }, - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": false + "type": { + "type": "string", + "description": "Index type.", + "x-example": "key", + "enum": [ + "key", + "fulltext", + "unique", + "spatial" + ], + "x-enum-name": "IndexType", + "x-enum-keys": [] }, - "min": { - "type": "integer", - "description": "Minimum value", + "columns": { + "type": "array", + "description": "Array of columns to index. Maximum of 100 columns are allowed, each 32 characters long.", "x-example": null, - "format": "int64", - "x-nullable": true + "items": { + "type": "string" + } }, - "max": { - "type": "integer", - "description": "Maximum value", + "orders": { + "type": "array", + "description": "Array of index orders. Maximum of 100 orders are allowed.", "x-example": null, - "format": "int64", - "x-nullable": true + "items": { + "type": "string", + "enum": [ + "asc", + "desc" + ], + "x-enum-name": "OrderBy", + "x-enum-keys": [] + } }, - "default": { - "type": "integer", - "description": "Default value. Cannot be set when column is required.", + "lengths": { + "type": "array", + "description": "Length of index. Maximum of 100", "x-example": null, - "format": "int64", - "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "x-example": false + "items": { + "type": "integer" + } } }, "required": [ "key", - "required" + "type", + "columns" ] } } @@ -51096,21 +57973,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/integer\/{key}": { - "patch": { - "summary": "Update integer column", - "operationId": "tablesDBUpdateIntegerColumn", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/indexes\/{key}": { + "get": { + "summary": "Get index", + "operationId": "tablesDBGetIndex", "tags": [ "tablesDB" ], - "description": "Update an integer column. Changing the `default` value will not update already existing rows.\n", + "description": "Get index by ID.", "responses": { "200": { - "description": "ColumnInteger", + "description": "Index", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnInteger" + "$ref": "#\/components\/schemas\/columnIndex" } } } @@ -51118,18 +57995,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateIntegerColumn", - "group": "columns", - "weight": 362, + "method": "getIndex", + "group": "indexes", + "weight": 370, "cookies": false, "type": "", - "demo": "tablesdb\/update-integer-column.md", + "demo": "tablesdb\/get-index.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.write", - "collections.write" + "tables.read", + "collections.read" ], "platforms": [ "console", @@ -51137,7 +58014,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-integer-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-index.md", "auth": { "Project": [] } @@ -51161,7 +58038,7 @@ }, { "name": "tableId", - "description": "Table ID.", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "schema": { "type": "string", @@ -51171,91 +58048,35 @@ }, { "name": "key", - "description": "Column Key.", + "description": "Index Key.", "required": true, "schema": { "type": "string" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": false - }, - "min": { - "type": "integer", - "description": "Minimum value", - "x-example": null, - "format": "int64", - "x-nullable": true - }, - "max": { - "type": "integer", - "description": "Maximum value", - "x-example": null, - "format": "int64", - "x-nullable": true - }, - "default": { - "type": "integer", - "description": "Default value. Cannot be set when column is required.", - "x-example": null, - "format": "int64", - "x-nullable": true - }, - "newKey": { - "type": "string", - "description": "New Column Key.", - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/ip": { - "post": { - "summary": "Create IP address column", - "operationId": "tablesDBCreateIpColumn", + ] + }, + "delete": { + "summary": "Delete index", + "operationId": "tablesDBDeleteIndex", "tags": [ "tablesDB" ], - "description": "Create IP address column.\n", + "description": "Delete an index.", "responses": { - "202": { - "description": "ColumnIP", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnIp" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "createIpColumn", - "group": "columns", - "weight": 363, + "method": "deleteIndex", + "group": "indexes", + "weight": 371, "cookies": false, "type": "", - "demo": "tablesdb\/create-ip-column.md", + "demo": "tablesdb\/delete-index.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -51269,7 +58090,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-ip-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-index.md", "auth": { "Project": [] } @@ -51293,68 +58114,41 @@ }, { "name": "tableId", - "description": "Table ID.", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "schema": { "type": "string", "x-example": "<TABLE_ID>" }, "in": "path" + }, + { + "name": "key", + "description": "Index Key.", + "required": true, + "schema": { + "type": "string" + }, + "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "x-example": null - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": false - }, - "default": { - "type": "string", - "description": "Default value. Cannot be set when column is required.", - "x-example": null, - "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "x-example": false - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } + ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/ip\/{key}": { - "patch": { - "summary": "Update IP address column", - "operationId": "tablesDBUpdateIpColumn", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/logs": { + "get": { + "summary": "List table logs", + "operationId": "tablesDBListTableLogs", "tags": [ "tablesDB" ], - "description": "Update an ip column. Changing the `default` value will not update already existing rows.\n", + "description": "Get the table activity logs list by its unique ID.", "responses": { "200": { - "description": "ColumnIP", + "description": "Logs List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnIp" + "$ref": "#\/components\/schemas\/logList" } } } @@ -51362,34 +58156,32 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateIpColumn", - "group": "columns", - "weight": 364, + "method": "listTableLogs", + "group": "tables", + "weight": 330, "cookies": false, "type": "", - "demo": "tablesdb\/update-ip-column.md", + "demo": "tablesdb\/list-table-logs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.write", - "collections.write" + "tables.read", + "collections.read" ], "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-ip-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-table-logs.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ @@ -51414,64 +58206,36 @@ "in": "path" }, { - "name": "key", - "description": "Column Key.", - "required": true, + "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": "string" + "type": "array", + "items": { + "type": "string" + }, + "default": [] }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": false - }, - "default": { - "type": "string", - "description": "Default value. Cannot be set when column is required.", - "x-example": null, - "x-nullable": true - }, - "newKey": { - "type": "string", - "description": "New Column Key.", - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } + "in": "query" } - } + ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/line": { - "post": { - "summary": "Create line column", - "operationId": "tablesDBCreateLineColumn", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows": { + "get": { + "summary": "List rows", + "operationId": "tablesDBListRows", "tags": [ "tablesDB" ], - "description": "Create a geometric line column.", + "description": "Get a list of all the user's rows in a given table. You can use the query params to filter your results.", "responses": { - "202": { - "description": "ColumnLine", + "200": { + "description": "Rows List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnLine" + "$ref": "#\/components\/schemas\/rowList" } } } @@ -51479,26 +58243,28 @@ }, "deprecated": false, "x-appwrite": { - "method": "createLineColumn", - "group": "columns", - "weight": 365, + "method": "listRows", + "group": "rows", + "weight": 381, "cookies": false, "type": "", - "demo": "tablesdb\/create-line-column.md", + "demo": "tablesdb\/list-rows.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.write", - "collections.write" + "rows.read", + "documents.read" ], "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-line-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-rows.md", "auth": { "Project": [] } @@ -51506,7 +58272,8 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ @@ -51522,70 +58289,76 @@ }, { "name": "tableId", - "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/products\/databases\/tables#create-table).", "required": true, "schema": { "type": "string", "x-example": "<TABLE_ID>" }, "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", + "x-example": "<TRANSACTION_ID>" + }, + "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", + "x-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", + "x-example": 0, + "default": 0 + }, + "in": "query" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "x-example": null - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": false - }, - "default": { - "type": "array", - "description": "Default value for column 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 column is required.", - "x-example": "[[1, 2], [3, 4], [5, 6]]", - "items": { - "oneOf": [ - { - "type": "array" - } - ] - }, - "x-nullable": true - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/line\/{key}": { - "patch": { - "summary": "Update line column", - "operationId": "tablesDBUpdateLineColumn", + ] + }, + "post": { + "summary": "Create row", + "operationId": "tablesDBCreateRow", "tags": [ "tablesDB" ], - "description": "Update a line column. Changing the `default` value will not update already existing rows.", + "description": "Create a new Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", "responses": { - "200": { - "description": "ColumnLine", + "201": { + "description": "Row", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnLine" + "$ref": "#\/components\/schemas\/row" } } } @@ -51593,26 +58366,89 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateLineColumn", - "group": "columns", - "weight": 366, + "method": "createRow", + "group": "rows", + "weight": 373, "cookies": false, "type": "", - "demo": "tablesdb\/update-line-column.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", + "demo": "tablesdb\/create-row.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", "scope": [ - "tables.write", - "collections.write" + "rows.write", + "documents.write" ], "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-line-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-row.md", + "methods": [ + { + "name": "createRow", + "namespace": "tablesDB", + "desc": "Create row", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "tableId", + "rowId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "tableId", + "rowId", + "data" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/row" + } + ], + "description": "Create a new Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "demo": "tablesdb\/create-row.md", + "public": true + }, + { + "name": "createRows", + "namespace": "tablesDB", + "desc": "Create rows", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "tableId", + "rows", + "transactionId" + ], + "required": [ + "databaseId", + "tableId", + "rows" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/rowList" + } + ], + "description": "Create new Rows. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "demo": "tablesdb\/create-rows.md", + "public": true + } + ], "auth": { "Project": [] } @@ -51620,7 +58456,8 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ @@ -51636,22 +58473,13 @@ }, { "name": "tableId", - "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable). Make sure to define columns before creating rows.", "required": true, "schema": { "type": "string", "x-example": "<TABLE_ID>" }, "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string" - }, - "in": "path" } ], "requestBody": { @@ -51660,55 +58488,59 @@ "schema": { "type": "object", "properties": { - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": false + "rowId": { + "type": "string", + "description": "Row 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.", + "x-example": "<ROW_ID>" }, - "default": { + "data": { + "type": "object", + "description": "Row data as JSON object.", + "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":30,\"isAdmin\":false}" + }, + "permissions": { "type": "array", - "description": "Default value for column 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 column is required.", - "x-example": "[[1, 2], [3, 4], [5, 6]]", + "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).", + "x-example": "[\"read(\"any\")\"]", "items": { - "oneOf": [ - { - "type": "array" - } - ] + "type": "string" }, "x-nullable": true }, - "newKey": { - "type": "string", - "description": "New Column Key.", + "rows": { + "type": "array", + "description": "Array of rows data as JSON objects.", "x-example": null, + "items": { + "type": "object" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>", "x-nullable": true } - }, - "required": [ - "required" - ] + } } } } } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/longtext": { - "post": { - "summary": "Create longtext column", - "operationId": "tablesDBCreateLongtextColumn", + }, + "put": { + "summary": "Upsert rows", + "operationId": "tablesDBUpsertRows", "tags": [ "tablesDB" ], - "description": "Create a longtext column.\n", + "description": "Create or update Rows. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.\n", "responses": { - "202": { - "description": "ColumnLongtext", + "201": { + "description": "Rows List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnLongtext" + "$ref": "#\/components\/schemas\/rowList" } } } @@ -51716,18 +58548,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "createLongtextColumn", - "group": "columns", - "weight": 383, + "method": "upsertRows", + "group": "rows", + "weight": 378, "cookies": false, "type": "", - "demo": "tablesdb\/create-longtext-column.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", + "demo": "tablesdb\/upsert-rows.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", "scope": [ - "tables.write", - "collections.write" + "rows.write", + "documents.write" ], "platforms": [ "console", @@ -51735,7 +58567,37 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-longtext-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/upsert-rows.md", + "methods": [ + { + "name": "upsertRows", + "namespace": "tablesDB", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "tableId", + "rows", + "transactionId" + ], + "required": [ + "databaseId", + "tableId", + "rows" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/rowList" + } + ], + "description": "Create or update Rows. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.\n", + "demo": "tablesdb\/upsert-rows.md", + "public": true + } + ], "auth": { "Project": [] } @@ -51759,7 +58621,7 @@ }, { "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "description": "Table ID.", "required": true, "schema": { "type": "string", @@ -51774,58 +58636,43 @@ "schema": { "type": "object", "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "x-example": null - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": false + "rows": { + "type": "array", + "description": "Array of row data as JSON objects. May contain partial rows.", + "x-example": null, + "items": { + "type": "object" + } }, - "default": { + "transactionId": { "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": "<DEFAULT>", + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>", "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "x-example": false - }, - "encrypt": { - "type": "boolean", - "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", - "x-example": false } }, "required": [ - "key", - "required" + "rows" ] } } } } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/longtext\/{key}": { + }, "patch": { - "summary": "Update longtext column", - "operationId": "tablesDBUpdateLongtextColumn", + "summary": "Update rows", + "operationId": "tablesDBUpdateRows", "tags": [ "tablesDB" ], - "description": "Update a longtext column. Changing the `default` value will not update already existing rows.\n", + "description": "Update all rows that match your queries, if no queries are submitted then all rows are updated. You can pass only specific fields to be updated.", "responses": { "200": { - "description": "ColumnLongtext", + "description": "Rows List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnLongtext" + "$ref": "#\/components\/schemas\/rowList" } } } @@ -51833,18 +58680,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateLongtextColumn", - "group": "columns", - "weight": 384, + "method": "updateRows", + "group": "rows", + "weight": 376, "cookies": false, "type": "", - "demo": "tablesdb\/update-longtext-column.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", + "demo": "tablesdb\/update-rows.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", "scope": [ - "tables.write", - "collections.write" + "rows.write", + "documents.write" ], "platforms": [ "console", @@ -51852,7 +58699,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-longtext-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-rows.md", "auth": { "Project": [] } @@ -51876,22 +58723,13 @@ }, { "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "description": "Table ID.", "required": true, "schema": { "type": "string", "x-example": "<TABLE_ID>" }, "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string" - }, - "in": "path" } ], "requestBody": { @@ -51900,49 +58738,45 @@ "schema": { "type": "object", "properties": { - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": false + "data": { + "type": "object", + "description": "Row data as JSON object. Include only column and value pairs to be updated.", + "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":33,\"isAdmin\":false}" }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": "<DEFAULT>", - "x-nullable": true + "queries": { + "type": "array", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "x-example": null, + "items": { + "type": "string" + } }, - "newKey": { + "transactionId": { "type": "string", - "description": "New Column Key.", - "x-example": null, + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>", "x-nullable": true } - }, - "required": [ - "required", - "default" - ] + } } } } } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/mediumtext": { - "post": { - "summary": "Create mediumtext column", - "operationId": "tablesDBCreateMediumtextColumn", + }, + "delete": { + "summary": "Delete rows", + "operationId": "tablesDBDeleteRows", "tags": [ "tablesDB" ], - "description": "Create a mediumtext column.\n", + "description": "Bulk delete rows using queries, if no queries are passed then all rows are deleted.", "responses": { - "202": { - "description": "ColumnMediumtext", + "200": { + "description": "Rows List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnMediumtext" + "$ref": "#\/components\/schemas\/rowList" } } } @@ -51950,18 +58784,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "createMediumtextColumn", - "group": "columns", - "weight": 381, + "method": "deleteRows", + "group": "rows", + "weight": 380, "cookies": false, "type": "", - "demo": "tablesdb\/create-mediumtext-column.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", + "demo": "tablesdb\/delete-rows.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", "scope": [ - "tables.write", - "collections.write" + "rows.write", + "documents.write" ], "platforms": [ "console", @@ -51969,7 +58803,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-mediumtext-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-rows.md", "auth": { "Project": [] } @@ -52008,58 +58842,42 @@ "schema": { "type": "object", "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "x-example": null - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": false - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": "<DEFAULT>", - "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "x-example": false - }, - "encrypt": { - "type": "boolean", - "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", - "x-example": false + "queries": { + "type": "array", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "x-example": null, + "items": { + "type": "string" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>", + "x-nullable": true } - }, - "required": [ - "key", - "required" - ] + } } } } } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/mediumtext\/{key}": { - "patch": { - "summary": "Update mediumtext column", - "operationId": "tablesDBUpdateMediumtextColumn", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}": { + "get": { + "summary": "Get row", + "operationId": "tablesDBGetRow", "tags": [ "tablesDB" ], - "description": "Update a mediumtext column. Changing the `default` value will not update already existing rows.\n", + "description": "Get a row by its unique ID. This endpoint response returns a JSON object with the row data.", "responses": { "200": { - "description": "ColumnMediumtext", + "description": "Row", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnMediumtext" + "$ref": "#\/components\/schemas\/row" } } } @@ -52067,26 +58885,28 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateMediumtextColumn", - "group": "columns", - "weight": 382, + "method": "getRow", + "group": "rows", + "weight": 374, "cookies": false, "type": "", - "demo": "tablesdb\/update-mediumtext-column.md", + "demo": "tablesdb\/get-row.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.write", - "collections.write" + "rows.read", + "documents.read" ], "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-mediumtext-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-row.md", "auth": { "Project": [] } @@ -52094,7 +58914,8 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ @@ -52119,64 +58940,54 @@ "in": "path" }, { - "name": "key", - "description": "Column Key.", + "name": "rowId", + "description": "Row ID.", "required": true, "schema": { - "type": "string" + "type": "string", + "x-example": "<ROW_ID>" }, "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", + "x-example": "<TRANSACTION_ID>" + }, + "in": "query" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": false - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": "<DEFAULT>", - "x-nullable": true - }, - "newKey": { - "type": "string", - "description": "New Column Key.", - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/point": { - "post": { - "summary": "Create point column", - "operationId": "tablesDBCreatePointColumn", + ] + }, + "put": { + "summary": "Upsert a row", + "operationId": "tablesDBUpsertRow", "tags": [ "tablesDB" ], - "description": "Create a geometric point column.", + "description": "Create or update a Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", "responses": { - "202": { - "description": "ColumnPoint", + "201": { + "description": "Row", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnPoint" + "$ref": "#\/components\/schemas\/row" } } } @@ -52184,26 +58995,60 @@ }, "deprecated": false, "x-appwrite": { - "method": "createPointColumn", - "group": "columns", - "weight": 367, + "method": "upsertRow", + "group": "rows", + "weight": 377, "cookies": false, "type": "", - "demo": "tablesdb\/create-point-column.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", + "demo": "tablesdb\/upsert-row.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", "scope": [ - "tables.write", - "collections.write" + "rows.write", + "documents.write" ], "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-point-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/upsert-row.md", + "methods": [ + { + "name": "upsertRow", + "namespace": "tablesDB", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "tableId", + "rowId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "tableId", + "rowId" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/row" + } + ], + "description": "Create or update a Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "demo": "tablesdb\/upsert-row.md", + "public": true + } + ], "auth": { "Project": [] } @@ -52211,7 +59056,8 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ @@ -52227,13 +59073,23 @@ }, { "name": "tableId", - "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "description": "Table ID.", "required": true, "schema": { "type": "string", "x-example": "<TABLE_ID>" }, "in": "path" + }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<ROW_ID>" + }, + "in": "path" } ], "requestBody": { @@ -52242,55 +59098,46 @@ "schema": { "type": "object", "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "x-example": null - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": false + "data": { + "type": "object", + "description": "Row data as JSON object. Include all required columns of the row to be created or updated.", + "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":33,\"isAdmin\":false}" }, - "default": { + "permissions": { "type": "array", - "description": "Default value for column when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when column is required.", - "x-example": "[1, 2]", + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": "[\"read(\"any\")\"]", "items": { - "oneOf": [ - { - "type": "array" - } - ] + "type": "string" }, "x-nullable": true + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>", + "x-nullable": true } - }, - "required": [ - "key", - "required" - ] + } } } } } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/point\/{key}": { + }, "patch": { - "summary": "Update point column", - "operationId": "tablesDBUpdatePointColumn", + "summary": "Update row", + "operationId": "tablesDBUpdateRow", "tags": [ "tablesDB" ], - "description": "Update a point column. Changing the `default` value will not update already existing rows.", + "description": "Update a row by its unique ID. Using the patch method you can pass only specific fields that will get updated.", "responses": { "200": { - "description": "ColumnPoint", + "description": "Row", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnPoint" + "$ref": "#\/components\/schemas\/row" } } } @@ -52298,26 +59145,28 @@ }, "deprecated": false, "x-appwrite": { - "method": "updatePointColumn", - "group": "columns", - "weight": 368, + "method": "updateRow", + "group": "rows", + "weight": 375, "cookies": false, "type": "", - "demo": "tablesdb\/update-point-column.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", + "demo": "tablesdb\/update-row.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", "scope": [ - "tables.write", - "collections.write" + "rows.write", + "documents.write" ], "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-point-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-row.md", "auth": { "Project": [] } @@ -52325,7 +59174,8 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ @@ -52341,7 +59191,7 @@ }, { "name": "tableId", - "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "description": "Table ID.", "required": true, "schema": { "type": "string", @@ -52350,11 +59200,12 @@ "in": "path" }, { - "name": "key", - "description": "Column Key.", + "name": "rowId", + "description": "Row ID.", "required": true, "schema": { - "type": "string" + "type": "string", + "x-example": "<ROW_ID>" }, "in": "path" } @@ -52365,82 +59216,68 @@ "schema": { "type": "object", "properties": { - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": false + "data": { + "type": "object", + "description": "Row data as JSON object. Include only columns and value pairs to be updated.", + "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":33,\"isAdmin\":false}" }, - "default": { + "permissions": { "type": "array", - "description": "Default value for column when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when column is required.", - "x-example": "[1, 2]", + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": "[\"read(\"any\")\"]", "items": { - "oneOf": [ - { - "type": "array" - } - ] + "type": "string" }, "x-nullable": true }, - "newKey": { + "transactionId": { "type": "string", - "description": "New Column Key.", - "x-example": null, + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>", "x-nullable": true } - }, - "required": [ - "required" - ] + } } } } } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/polygon": { - "post": { - "summary": "Create polygon column", - "operationId": "tablesDBCreatePolygonColumn", + }, + "delete": { + "summary": "Delete row", + "operationId": "tablesDBDeleteRow", "tags": [ "tablesDB" ], - "description": "Create a geometric polygon column.", + "description": "Delete a row by its unique ID.", "responses": { - "202": { - "description": "ColumnPolygon", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnPolygon" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "createPolygonColumn", - "group": "columns", - "weight": 369, + "method": "deleteRow", + "group": "rows", + "weight": 379, "cookies": false, "type": "", - "demo": "tablesdb\/create-polygon-column.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", + "demo": "tablesdb\/delete-row.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", "scope": [ - "tables.write", - "collections.write" + "rows.write", + "documents.write" ], "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-polygon-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-row.md", "auth": { "Project": [] } @@ -52448,7 +59285,8 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ @@ -52464,13 +59302,23 @@ }, { "name": "tableId", - "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "schema": { "type": "string", "x-example": "<TABLE_ID>" }, "in": "path" + }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<ROW_ID>" + }, + "in": "path" } ], "requestBody": { @@ -52479,55 +59327,34 @@ "schema": { "type": "object", "properties": { - "key": { + "transactionId": { "type": "string", - "description": "Column Key.", - "x-example": null - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": false - }, - "default": { - "type": "array", - "description": "Default value for column 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 column is required.", - "x-example": "[[[1, 2], [3, 4], [5, 6], [1, 2]]]", - "items": { - "oneOf": [ - { - "type": "array" - } - ] - }, + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>", "x-nullable": true } - }, - "required": [ - "key", - "required" - ] + } } } } } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/polygon\/{key}": { - "patch": { - "summary": "Update polygon column", - "operationId": "tablesDBUpdatePolygonColumn", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}\/logs": { + "get": { + "summary": "List row logs", + "operationId": "tablesDBListRowLogs", "tags": [ "tablesDB" ], - "description": "Update a polygon column. Changing the `default` value will not update already existing rows.", + "description": "Get the row activity logs list by its unique ID.", "responses": { "200": { - "description": "ColumnPolygon", + "description": "Logs List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnPolygon" + "$ref": "#\/components\/schemas\/logList" } } } @@ -52535,34 +59362,32 @@ }, "deprecated": false, "x-appwrite": { - "method": "updatePolygonColumn", - "group": "columns", - "weight": 370, + "method": "listRowLogs", + "group": "logs", + "weight": 382, "cookies": false, "type": "", - "demo": "tablesdb\/update-polygon-column.md", + "demo": "tablesdb\/list-row-logs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.write", - "collections.write" + "rows.read", + "documents.read" ], "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-polygon-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-row-logs.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ @@ -52578,7 +59403,7 @@ }, { "name": "tableId", - "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "description": "Table ID.", "required": true, "schema": { "type": "string", @@ -52587,70 +59412,46 @@ "in": "path" }, { - "name": "key", - "description": "Column Key.", + "name": "rowId", + "description": "Row ID.", "required": true, "schema": { - "type": "string" + "type": "string", + "x-example": "<ROW_ID>" }, "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). Only supported methods are limit and offset", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "in": "query" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": false - }, - "default": { - "type": "array", - "description": "Default value for column 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 column is required.", - "x-example": "[[[1, 2], [3, 4], [5, 6], [1, 2]]]", - "items": { - "oneOf": [ - { - "type": "array" - } - ] - }, - "x-nullable": true - }, - "newKey": { - "type": "string", - "description": "New Column Key.", - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "required" - ] - } - } - } - } + ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/relationship": { - "post": { - "summary": "Create relationship column", - "operationId": "tablesDBCreateRelationshipColumn", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}\/{column}\/decrement": { + "patch": { + "summary": "Decrement row column", + "operationId": "tablesDBDecrementRowColumn", "tags": [ "tablesDB" ], - "description": "Create relationship column. [Learn more about relationship columns](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-columns).\n", + "description": "Decrement a specific column of a row by a given value.", "responses": { - "202": { - "description": "ColumnRelationship", + "200": { + "description": "Row", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnRelationship" + "$ref": "#\/components\/schemas\/row" } } } @@ -52658,26 +59459,28 @@ }, "deprecated": false, "x-appwrite": { - "method": "createRelationshipColumn", - "group": "columns", - "weight": 371, + "method": "decrementRowColumn", + "group": "rows", + "weight": 384, "cookies": false, "type": "", - "demo": "tablesdb\/create-relationship-column.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", + "demo": "tablesdb\/decrement-row-column.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", "scope": [ - "tables.write", - "collections.write" + "rows.write", + "documents.write" ], "platforms": [ + "client", + "server", "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-relationship-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/decrement-row-column.md", "auth": { "Project": [] } @@ -52685,6 +59488,7 @@ "security": [ { "Project": [], + "JWT": [], "Key": [] } ], @@ -52708,6 +59512,25 @@ "x-example": "<TABLE_ID>" }, "in": "path" + }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<ROW_ID>" + }, + "in": "path" + }, + { + "name": "column", + "description": "Column key.", + "required": true, + "schema": { + "type": "string" + }, + "in": "path" } ], "requestBody": { @@ -52716,110 +59539,76 @@ "schema": { "type": "object", "properties": { - "relatedTableId": { - "type": "string", - "description": "Related Table ID.", - "x-example": "<RELATED_TABLE_ID>" - }, - "type": { - "type": "string", - "description": "Relation type", - "x-example": "oneToOne", - "enum": [ - "oneToOne", - "manyToOne", - "manyToMany", - "oneToMany" - ], - "x-enum-name": "RelationshipType", - "x-enum-keys": [] - }, - "twoWay": { - "type": "boolean", - "description": "Is Two Way?", - "x-example": false - }, - "key": { - "type": "string", - "description": "Column Key.", + "value": { + "type": "number", + "description": "Value to increment the column by. The value must be a number.", "x-example": null, - "x-nullable": true + "format": "float" }, - "twoWayKey": { - "type": "string", - "description": "Two Way Column Key.", + "min": { + "type": "number", + "description": "Minimum value for the column. If the current value is lesser than this value, an exception will be thrown.", "x-example": null, + "format": "float", "x-nullable": true }, - "onDelete": { + "transactionId": { "type": "string", - "description": "Constraints option", - "x-example": "cascade", - "enum": [ - "cascade", - "restrict", - "setNull" - ], - "x-enum-name": "RelationMutate", - "x-enum-keys": [] + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>", + "x-nullable": true } - }, - "required": [ - "relatedTableId", - "type" - ] + } } } } } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/string": { - "post": { - "summary": "Create string column", - "operationId": "tablesDBCreateStringColumn", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}\/{column}\/increment": { + "patch": { + "summary": "Increment row column", + "operationId": "tablesDBIncrementRowColumn", "tags": [ "tablesDB" ], - "description": "Create a string column.\n", + "description": "Increment a specific column of a row by a given value.", "responses": { - "202": { - "description": "ColumnString", + "200": { + "description": "Row", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnString" + "$ref": "#\/components\/schemas\/row" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createStringColumn", - "group": "columns", - "weight": 373, + "method": "incrementRowColumn", + "group": "rows", + "weight": 383, "cookies": false, "type": "", - "demo": "tablesdb\/create-string-column.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", + "demo": "tablesdb\/increment-row-column.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", "scope": [ - "tables.write", - "collections.write" + "rows.write", + "documents.write" ], "platforms": [ + "client", + "server", "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-string-column.md", - "deprecated": { - "since": "1.9.0", - "replaceWith": "tablesDB.createTextColumn" - }, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/increment-row-column.md", "auth": { "Project": [] } @@ -52827,6 +59616,7 @@ "security": [ { "Project": [], + "JWT": [], "Key": [] } ], @@ -52843,13 +59633,32 @@ }, { "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "description": "Table ID.", "required": true, "schema": { "type": "string", "x-example": "<TABLE_ID>" }, "in": "path" + }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<ROW_ID>" + }, + "in": "path" + }, + { + "name": "column", + "description": "Column key.", + "required": true, + "schema": { + "type": "string" + }, + "in": "path" } ], "requestBody": { @@ -52858,104 +59667,80 @@ "schema": { "type": "object", "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "x-example": null - }, - "size": { - "type": "integer", - "description": "Column size for text columns, in number of characters.", - "x-example": 1, - "format": "int32" + "value": { + "type": "number", + "description": "Value to increment the column by. The value must be a number.", + "x-example": null, + "format": "float" }, - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": false + "max": { + "type": "number", + "description": "Maximum value for the column. If the current value is greater than this value, an error will be thrown.", + "x-example": null, + "format": "float", + "x-nullable": true }, - "default": { + "transactionId": { "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": "<DEFAULT>", + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>", "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "x-example": false - }, - "encrypt": { - "type": "boolean", - "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", - "x-example": false } - }, - "required": [ - "key", - "size", - "required" - ] + } } } } } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/string\/{key}": { - "patch": { - "summary": "Update string column", - "operationId": "tablesDBUpdateStringColumn", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/usage": { + "get": { + "summary": "Get table usage stats", + "operationId": "tablesDBGetTableUsage", "tags": [ "tablesDB" ], - "description": "Update a string column. Changing the `default` value will not update already existing rows.\n", + "description": "Get usage metrics and statistics for a table. Returning the total number of rows. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.", "responses": { "200": { - "description": "ColumnString", + "description": "UsageTable", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnString" + "$ref": "#\/components\/schemas\/usageTable" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateStringColumn", - "group": "columns", - "weight": 374, + "method": "getTableUsage", + "group": null, + "weight": 331, "cookies": false, "type": "", - "demo": "tablesdb\/update-string-column.md", + "demo": "tablesdb\/get-table-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.write", - "collections.write" + "tables.read", + "collections.read" ], "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-string-column.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateTextColumn" - }, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-table-usage.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ @@ -52970,81 +59755,55 @@ "in": "path" }, { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", - "required": true, + "name": "range", + "description": "Date range.", + "required": false, "schema": { "type": "string", - "x-example": "<TABLE_ID>" + "x-example": "24h", + "enum": [ + "24h", + "30d", + "90d" + ], + "x-enum-name": "UsageRange", + "x-enum-keys": [ + "Twenty Four Hours", + "Thirty Days", + "Ninety Days" + ], + "default": "30d" }, - "in": "path" + "in": "query" }, { - "name": "key", - "description": "Column Key.", + "name": "tableId", + "description": "Table ID.", "required": true, "schema": { - "type": "string" + "type": "string", + "x-example": "<TABLE_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": false - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": "<DEFAULT>", - "x-nullable": true - }, - "size": { - "type": "integer", - "description": "Maximum size of the string column.", - "x-example": 1, - "format": "int32", - "x-nullable": true - }, - "newKey": { - "type": "string", - "description": "New Column Key.", - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } + ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/text": { - "post": { - "summary": "Create text column", - "operationId": "tablesDBCreateTextColumn", + "\/tablesdb\/{databaseId}\/usage": { + "get": { + "summary": "Get TablesDB usage stats", + "operationId": "tablesDBGetUsage", "tags": [ "tablesDB" ], - "description": "Create a text column.\n", + "description": "Get usage metrics and statistics for a database. You can view the total number of tables, rows, and storage usage. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.", "responses": { - "202": { - "description": "ColumnText", + "200": { + "description": "UsageDatabase", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnText" + "$ref": "#\/components\/schemas\/usageDatabase" } } } @@ -53052,34 +59811,58 @@ }, "deprecated": false, "x-appwrite": { - "method": "createTextColumn", - "group": "columns", - "weight": 379, + "method": "getUsage", + "group": null, + "weight": 323, "cookies": false, "type": "", - "demo": "tablesdb\/create-text-column.md", + "demo": "tablesdb\/get-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.write", - "collections.write" + "tables.read", + "collections.read" ], "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-text-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-database-usage.md", + "methods": [ + { + "name": "getUsage", + "namespace": "tablesDB", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "range" + ], + "required": [ + "databaseId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/usageDatabase" + } + ], + "description": "Get usage metrics and statistics for a database. You can view the total number of tables, rows, and storage usage. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.", + "demo": "tablesdb\/get-usage.md", + "public": true + } + ], "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ @@ -53094,74 +59877,45 @@ "in": "path" }, { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", - "required": true, + "name": "range", + "description": "Date range.", + "required": false, "schema": { "type": "string", - "x-example": "<TABLE_ID>" + "x-example": "24h", + "enum": [ + "24h", + "30d", + "90d" + ], + "x-enum-name": "UsageRange", + "x-enum-keys": [ + "Twenty Four Hours", + "Thirty Days", + "Ninety Days" + ], + "default": "30d" }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "x-example": null - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": false - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": "<DEFAULT>", - "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "x-example": false - }, - "encrypt": { - "type": "boolean", - "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", - "x-example": false - } - }, - "required": [ - "key", - "required" - ] - } - } + "in": "query" } - } + ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/text\/{key}": { - "patch": { - "summary": "Update text column", - "operationId": "tablesDBUpdateTextColumn", + "\/teams": { + "get": { + "summary": "List teams", + "operationId": "teamsList", "tags": [ - "tablesDB" + "teams" ], - "description": "Update a text column. Changing the `default` value will not update already existing rows.\n", + "description": "Get a list of all the teams in which the current user is a member. You can use the parameters to filter your results.", "responses": { "200": { - "description": "ColumnText", + "description": "Teams List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnText" + "$ref": "#\/components\/schemas\/teamList" } } } @@ -53169,26 +59923,25 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateTextColumn", - "group": "columns", - "weight": 380, + "method": "list", + "group": "teams", + "weight": 579, "cookies": false, "type": "", - "demo": "tablesdb\/update-text-column.md", + "demo": "teams\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write" - ], + "scope": "teams.read", "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-text-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/list-teams.md", "auth": { "Project": [] } @@ -53196,89 +59949,62 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, + "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, total, billingPlan", + "required": false, "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" + "type": "array", + "items": { + "type": "string" + }, + "default": [] }, - "in": "path" + "in": "query" }, { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", - "required": true, + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, "schema": { "type": "string", - "x-example": "<TABLE_ID>" + "x-example": "<SEARCH>", + "default": "" }, - "in": "path" + "in": "query" }, { - "name": "key", - "description": "Column Key.", - "required": true, + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, "schema": { - "type": "string" + "type": "boolean", + "x-example": false, + "default": true }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": false - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": "<DEFAULT>", - "x-nullable": true - }, - "newKey": { - "type": "string", - "description": "New Column Key.", - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } + "in": "query" } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/url": { + ] + }, "post": { - "summary": "Create URL column", - "operationId": "tablesDBCreateUrlColumn", + "summary": "Create team", + "operationId": "teamsCreate", "tags": [ - "tablesDB" + "teams" ], - "description": "Create a URL column.\n", + "description": "Create a new team. The user who creates the team will automatically be assigned as the owner of the team. Only the users with the owner role can invite new members, add new owners and delete or update the team.", "responses": { - "202": { - "description": "ColumnURL", + "201": { + "description": "Team", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnUrl" + "$ref": "#\/components\/schemas\/team" } } } @@ -53286,26 +60012,25 @@ }, "deprecated": false, "x-appwrite": { - "method": "createUrlColumn", - "group": "columns", - "weight": 375, + "method": "create", + "group": "teams", + "weight": 577, "cookies": false, "type": "", - "demo": "tablesdb\/create-url-column.md", + "demo": "teams\/create.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write" - ], + "scope": "teams.write", "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-url-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team.md", "auth": { "Project": [] } @@ -53313,29 +60038,8 @@ "security": [ { "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<TABLE_ID>" - }, - "in": "path" + "Key": [], + "JWT": [] } ], "requestBody": { @@ -53344,32 +60048,28 @@ "schema": { "type": "object", "properties": { - "key": { + "teamId": { "type": "string", - "description": "Column Key.", - "x-example": null - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": false + "description": "Team 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.", + "x-example": "<TEAM_ID>" }, - "default": { + "name": { "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": "https:\/\/example.com", - "format": "url", - "x-nullable": true + "description": "Team name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "x-example": false + "roles": { + "type": "array", + "description": "Array of strings. Use this param to set the roles in the team for the user who created it. The default role is **owner**. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 32 characters long.", + "x-example": null, + "items": { + "type": "string" + } } }, "required": [ - "key", - "required" + "teamId", + "name" ] } } @@ -53377,21 +60077,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/url\/{key}": { - "patch": { - "summary": "Update URL column", - "operationId": "tablesDBUpdateUrlColumn", + "\/teams\/{teamId}": { + "get": { + "summary": "Get team", + "operationId": "teamsGet", "tags": [ - "tablesDB" + "teams" ], - "description": "Update an url column. Changing the `default` value will not update already existing rows.\n", + "description": "Get a team by its ID. All team members have read access for this resource.", "responses": { "200": { - "description": "ColumnURL", + "description": "Team", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnUrl" + "$ref": "#\/components\/schemas\/team" } } } @@ -53399,26 +60099,25 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateUrlColumn", - "group": "columns", - "weight": 376, + "method": "get", + "group": "teams", + "weight": 578, "cookies": false, "type": "", - "demo": "tablesdb\/update-url-column.md", + "demo": "teams\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write" - ], + "scope": "teams.read", "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-url-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team.md", "auth": { "Project": [] } @@ -53426,90 +60125,37 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "schema": { "type": "string", - "x-example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string" + "x-example": "<TEAM_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": false - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": "https:\/\/example.com", - "format": "url", - "x-nullable": true - }, - "newKey": { - "type": "string", - "description": "New Column Key.", - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/varchar": { - "post": { - "summary": "Create varchar column", - "operationId": "tablesDBCreateVarcharColumn", + ] + }, + "put": { + "summary": "Update name", + "operationId": "teamsUpdateName", "tags": [ - "tablesDB" + "teams" ], - "description": "Create a varchar column.\n", + "description": "Update the team's name by its unique ID.", "responses": { - "202": { - "description": "ColumnVarchar", + "200": { + "description": "Team", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnVarchar" + "$ref": "#\/components\/schemas\/team" } } } @@ -53517,26 +60163,25 @@ }, "deprecated": false, "x-appwrite": { - "method": "createVarcharColumn", - "group": "columns", - "weight": 377, + "method": "updateName", + "group": "teams", + "weight": 581, "cookies": false, "type": "", - "demo": "tablesdb\/create-varchar-column.md", + "demo": "teams\/update-name.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write" - ], + "scope": "teams.write", "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-varchar-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-name.md", "auth": { "Project": [] } @@ -53544,27 +60189,18 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "name": "teamId", + "description": "Team ID.", "required": true, "schema": { "type": "string", - "x-example": "<TABLE_ID>" + "x-example": "<TEAM_ID>" }, "in": "path" } @@ -53575,92 +60211,53 @@ "schema": { "type": "object", "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "x-example": null - }, - "size": { - "type": "integer", - "description": "Column size for varchar columns, in number of characters. Maximum size is 16381.", - "x-example": 1, - "format": "int32" - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": false - }, - "default": { + "name": { "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": "<DEFAULT>", - "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "x-example": false - }, - "encrypt": { - "type": "boolean", - "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", - "x-example": false + "description": "New team name. Max length: 128 chars.", + "x-example": "<NAME>" } }, "required": [ - "key", - "size", - "required" + "name" ] } } } } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/varchar\/{key}": { - "patch": { - "summary": "Update varchar column", - "operationId": "tablesDBUpdateVarcharColumn", + }, + "delete": { + "summary": "Delete team", + "operationId": "teamsDelete", "tags": [ - "tablesDB" + "teams" ], - "description": "Update a varchar column. Changing the `default` value will not update already existing rows.\n", + "description": "Delete a team using its ID. Only team members with the owner role can delete the team.", "responses": { - "200": { - "description": "ColumnVarchar", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnVarchar" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateVarcharColumn", - "group": "columns", - "weight": 378, + "method": "delete", + "group": "teams", + "weight": 580, "cookies": false, "type": "", - "demo": "tablesdb\/update-varchar-column.md", + "demo": "teams\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write" - ], + "scope": "teams.write", "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-varchar-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team.md", "auth": { "Project": [] } @@ -53668,127 +60265,39 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "name": "teamId", + "description": "Team ID.", "required": true, "schema": { "type": "string", - "x-example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string" + "x-example": "<TEAM_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": false - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": "<DEFAULT>", - "x-nullable": true - }, - "size": { - "type": "integer", - "description": "Maximum size of the varchar column.", - "x-example": 1, - "format": "int32", - "x-nullable": true - }, - "newKey": { - "type": "string", - "description": "New Column Key.", - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } + ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/{key}": { + "\/teams\/{teamId}\/logs": { "get": { - "summary": "Get column", - "operationId": "tablesDBGetColumn", + "summary": "List team logs", + "operationId": "teamsListLogs", "tags": [ - "tablesDB" + "teams" ], - "description": "Get column by ID.", + "description": "Get the team activity logs list by its unique ID.", "responses": { "200": { - "description": "ColumnBoolean, or ColumnInteger, or ColumnFloat, or ColumnEmail, or ColumnEnum, or ColumnURL, or ColumnIP, or ColumnDatetime, or ColumnRelationship, or ColumnString", + "description": "Logs List", "content": { "application\/json": { "schema": { - "oneOf": [ - { - "$ref": "#\/components\/schemas\/columnBoolean" - }, - { - "$ref": "#\/components\/schemas\/columnInteger" - }, - { - "$ref": "#\/components\/schemas\/columnFloat" - }, - { - "$ref": "#\/components\/schemas\/columnEmail" - }, - { - "$ref": "#\/components\/schemas\/columnEnum" - }, - { - "$ref": "#\/components\/schemas\/columnUrl" - }, - { - "$ref": "#\/components\/schemas\/columnIp" - }, - { - "$ref": "#\/components\/schemas\/columnDatetime" - }, - { - "$ref": "#\/components\/schemas\/columnRelationship" - }, - { - "$ref": "#\/components\/schemas\/columnString" - } - ] + "$ref": "#\/components\/schemas\/logList" } } } @@ -53796,102 +60305,110 @@ }, "deprecated": false, "x-appwrite": { - "method": "getColumn", - "group": "columns", - "weight": 348, + "method": "listLogs", + "group": "logs", + "weight": 590, "cookies": false, "type": "", - "demo": "tablesdb\/get-column.md", + "demo": "teams\/list-logs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.read", - "collections.read" - ], + "scope": "teams.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-logs.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", + { + "name": "teamId", + "description": "Team ID.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<TEAM_ID>" }, "in": "path" }, { - "name": "tableId", - "description": "Table ID.", - "required": true, + "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": "string", - "x-example": "<TABLE_ID>" + "type": "array", + "items": { + "type": "string" + }, + "default": [] }, - "in": "path" + "in": "query" }, { - "name": "key", - "description": "Column Key.", - "required": true, + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, "schema": { - "type": "string" + "type": "boolean", + "x-example": false, + "default": true }, - "in": "path" + "in": "query" } ] - }, - "delete": { - "summary": "Delete column", - "operationId": "tablesDBDeleteColumn", + } + }, + "\/teams\/{teamId}\/memberships": { + "get": { + "summary": "List team memberships", + "operationId": "teamsListMemberships", "tags": [ - "tablesDB" + "teams" ], - "description": "Deletes a column.", + "description": "Use this endpoint to list a team's members using the team's ID. All team members have read access to this endpoint. Hide sensitive attributes from the response by toggling membership privacy in the Console.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Memberships List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membershipList" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteColumn", - "group": "columns", - "weight": 349, + "method": "listMemberships", + "group": "memberships", + "weight": 586, "cookies": false, "type": "", - "demo": "tablesdb\/delete-column.md", + "demo": "teams\/list-memberships.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write" - ], + "scope": "teams.read", "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/list-team-members.md", "auth": { "Project": [] } @@ -53899,57 +60416,72 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<TEAM_ID>" }, "in": "path" }, { - "name": "tableId", - "description": "Table ID.", - "required": true, + "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, teamId, invited, joined, confirm, roles", + "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", - "x-example": "<TABLE_ID>" + "x-example": "<SEARCH>", + "default": "" }, - "in": "path" + "in": "query" }, { - "name": "key", - "description": "Column Key.", - "required": true, + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, "schema": { - "type": "string" + "type": "boolean", + "x-example": false, + "default": true }, - "in": "path" + "in": "query" } ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/{key}\/relationship": { - "patch": { - "summary": "Update relationship column", - "operationId": "tablesDBUpdateRelationshipColumn", + }, + "post": { + "summary": "Create team membership", + "operationId": "teamsCreateMembership", "tags": [ - "tablesDB" + "teams" ], - "description": "Update relationship column. [Learn more about relationship columns](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-columns).\n", + "description": "Invite a new member to join your team. Provide an ID for existing users, or invite unregistered users using an email or phone number. If initiated from a Client SDK, Appwrite will send an email or sms with a link to join the team to the invited user, and an account will be created for them if one doesn't exist. If initiated from a Server SDK, the new member will be added automatically to the team.\n\nYou only need to provide one of a user ID, email, or phone number. Appwrite will prioritize accepting the user ID > email > phone number if you provide more than one of these parameters.\n\nUse the `url` parameter to redirect the user from the invitation email to your app. After the user is redirected, use the [Update Team Membership Status](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/teams#updateMembershipStatus) endpoint to allow the user to accept the invitation to the team. \n\nPlease note that to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) Appwrite will accept the only redirect URLs under the domains you have added as a platform on the Appwrite Console.\n", "responses": { - "200": { - "description": "ColumnRelationship", + "201": { + "description": "Membership", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnRelationship" + "$ref": "#\/components\/schemas\/membership" } } } @@ -53957,26 +60489,25 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateRelationshipColumn", - "group": "columns", - "weight": 372, + "method": "createMembership", + "group": "memberships", + "weight": 584, "cookies": false, "type": "", - "demo": "tablesdb\/update-relationship-column.md", - "rate-limit": 0, + "demo": "teams\/create-membership.md", + "rate-limit": 10, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write" - ], + "scope": "teams.write", "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-relationship-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team-membership.md", "auth": { "Project": [] } @@ -53984,36 +60515,18 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "schema": { "type": "string", - "x-example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string" + "x-example": "<TEAM_ID>" }, "in": "path" } @@ -54024,47 +60537,67 @@ "schema": { "type": "object", "properties": { - "onDelete": { + "email": { "type": "string", - "description": "Constraints option", - "x-example": "cascade", - "enum": [ - "cascade", - "restrict", - "setNull" - ], - "x-enum-name": "RelationMutate", - "x-enum-keys": [], - "x-nullable": true + "description": "Email of the new team member.", + "x-example": "email@example.com", + "format": "email" }, - "newKey": { + "userId": { "type": "string", - "description": "New Column Key.", + "description": "ID of the user to be added to a team.", + "x-example": "<USER_ID>" + }, + "phone": { + "type": "string", + "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "x-example": "+12065550100", + "format": "phone" + }, + "roles": { + "type": "array", + "description": "Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 81 characters long.", "x-example": null, - "x-nullable": true + "items": { + "type": "string" + } + }, + "url": { + "type": "string", + "description": "URL to redirect the user back to your app from the invitation email. This parameter is not required when an API key is supplied. 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.", + "x-example": "https:\/\/example.com", + "format": "url" + }, + "name": { + "type": "string", + "description": "Name of the new team member. Max length: 128 chars.", + "x-example": "<NAME>" } - } + }, + "required": [ + "roles" + ] } } } } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/indexes": { + "\/teams\/{teamId}\/memberships\/{membershipId}": { "get": { - "summary": "List indexes", - "operationId": "tablesDBListIndexes", + "summary": "Get team membership", + "operationId": "teamsGetMembership", "tags": [ - "tablesDB" + "teams" ], - "description": "List indexes on the table.", + "description": "Get a team member by the membership unique id. All team members have read access for this resource. Hide sensitive attributes from the response by toggling membership privacy in the Console.", "responses": { "200": { - "description": "Column Indexes List", + "description": "Membership", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnIndexList" + "$ref": "#\/components\/schemas\/membership" } } } @@ -54072,26 +60605,25 @@ }, "deprecated": false, "x-appwrite": { - "method": "listIndexes", - "group": "indexes", - "weight": 388, + "method": "getMembership", + "group": "memberships", + "weight": 585, "cookies": false, "type": "", - "demo": "tablesdb\/list-indexes.md", + "demo": "teams\/get-membership.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.read", - "collections.read" - ], + "scope": "teams.read", "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-indexes.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-member.md", "auth": { "Project": [] } @@ -54099,70 +60631,47 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<TEAM_ID>" }, "in": "path" }, { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "name": "membershipId", + "description": "Membership ID.", "required": true, "schema": { "type": "string", - "x-example": "<TABLE_ID>" + "x-example": "<MEMBERSHIP_ID>" }, "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 columns: 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", - "x-example": false, - "default": true - }, - "in": "query" } ] }, - "post": { - "summary": "Create index", - "operationId": "tablesDBCreateIndex", + "patch": { + "summary": "Update team membership", + "operationId": "teamsUpdateMembership", "tags": [ - "tablesDB" + "teams" ], - "description": "Creates an index on the columns listed. Your index should include all the columns you will query in a single request.\nType can be `key`, `fulltext`, or `unique`.", + "description": "Modify the roles of a team member. Only team members with the owner role have access to this endpoint. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions).\n", "responses": { - "202": { - "description": "Index", + "200": { + "description": "Membership", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnIndex" + "$ref": "#\/components\/schemas\/membership" } } } @@ -54170,26 +60679,25 @@ }, "deprecated": false, "x-appwrite": { - "method": "createIndex", - "group": "indexes", - "weight": 385, + "method": "updateMembership", + "group": "memberships", + "weight": 587, "cookies": false, "type": "", - "demo": "tablesdb\/create-index.md", + "demo": "teams\/update-membership.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write" - ], + "scope": "teams.write", "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-index.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership.md", "auth": { "Project": [] } @@ -54197,27 +60705,28 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<TEAM_ID>" }, "in": "path" }, { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "name": "membershipId", + "description": "Membership ID.", "required": true, "schema": { "type": "string", - "x-example": "<TABLE_ID>" + "x-example": "<MEMBERSHIP_ID>" }, "in": "path" } @@ -54228,81 +60737,106 @@ "schema": { "type": "object", "properties": { - "key": { - "type": "string", - "description": "Index Key.", - "x-example": null - }, - "type": { - "type": "string", - "description": "Index type.", - "x-example": "key", - "enum": [ - "key", - "fulltext", - "unique", - "spatial" - ], - "x-enum-name": "IndexType", - "x-enum-keys": [] - }, - "columns": { + "roles": { "type": "array", - "description": "Array of columns to index. Maximum of 100 columns are allowed, each 32 characters long.", + "description": "An array of strings. Use this param to set the user's roles in the team. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 81 characters long.", "x-example": null, "items": { "type": "string" } - }, - "orders": { - "type": "array", - "description": "Array of index orders. Maximum of 100 orders are allowed.", - "x-example": null, - "items": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "x-enum-name": "OrderBy", - "x-enum-keys": [] - } - }, - "lengths": { - "type": "array", - "description": "Length of index. Maximum of 100", - "x-example": null, - "items": { - "type": "integer" - } } }, "required": [ - "key", - "type", - "columns" + "roles" ] } } } } + }, + "delete": { + "summary": "Delete team membership", + "operationId": "teamsDeleteMembership", + "tags": [ + "teams" + ], + "description": "This endpoint allows a user to leave a team or for a team owner to delete the membership of any other team member. You can also use this endpoint to delete a user membership even if it is not accepted.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteMembership", + "group": "memberships", + "weight": 803, + "cookies": false, + "type": "", + "demo": "teams\/delete-membership.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team-membership.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TEAM_ID>" + }, + "in": "path" + }, + { + "name": "membershipId", + "description": "Membership ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<MEMBERSHIP_ID>" + }, + "in": "path" + } + ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/indexes\/{key}": { - "get": { - "summary": "Get index", - "operationId": "tablesDBGetIndex", + "\/teams\/{teamId}\/memberships\/{membershipId}\/status": { + "patch": { + "summary": "Update team membership status", + "operationId": "teamsUpdateMembershipStatus", "tags": [ - "tablesDB" + "teams" ], - "description": "Get index by ID.", + "description": "Use this endpoint to allow a user to accept an invitation to join a team after being redirected back to your app from the invitation email received by the user.\n\nIf the request is successful, a session for the user is automatically created.\n", "responses": { "200": { - "description": "Index", + "description": "Membership", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnIndex" + "$ref": "#\/components\/schemas\/membership" } } } @@ -54310,26 +60844,24 @@ }, "deprecated": false, "x-appwrite": { - "method": "getIndex", - "group": "indexes", - "weight": 386, + "method": "updateMembershipStatus", + "group": "memberships", + "weight": 589, "cookies": false, "type": "", - "demo": "tablesdb\/get-index.md", + "demo": "teams\/update-membership-status.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.read", - "collections.read" - ], + "scope": "public", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-index.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership-status.md", "auth": { "Project": [] } @@ -54337,75 +60869,98 @@ "security": [ { "Project": [], - "Key": [] + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "name": "teamId", + "description": "Team ID.", "required": true, "schema": { "type": "string", - "x-example": "<TABLE_ID>" + "x-example": "<TEAM_ID>" }, "in": "path" }, { - "name": "key", - "description": "Index Key.", + "name": "membershipId", + "description": "Membership ID.", "required": true, "schema": { - "type": "string" + "type": "string", + "x-example": "<MEMBERSHIP_ID>" }, "in": "path" } - ] - }, - "delete": { - "summary": "Delete index", - "operationId": "tablesDBDeleteIndex", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "description": "User ID.", + "x-example": "<USER_ID>" + }, + "secret": { + "type": "string", + "description": "Secret key.", + "x-example": "<SECRET>" + } + }, + "required": [ + "userId", + "secret" + ] + } + } + } + } + } + }, + "\/teams\/{teamId}\/prefs": { + "get": { + "summary": "Get team preferences", + "operationId": "teamsGetPrefs", "tags": [ - "tablesDB" + "teams" ], - "description": "Delete an index.", + "description": "Get the team's shared preferences by its unique ID. If a preference doesn't need to be shared by all team members, prefer storing them in [user preferences](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#getPrefs).", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Preferences", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/preferences" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteIndex", - "group": "indexes", - "weight": 387, + "method": "getPrefs", + "group": "teams", + "weight": 582, "cookies": false, "type": "", - "demo": "tablesdb\/delete-index.md", + "demo": "teams\/get-prefs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write" - ], + "scope": "teams.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-index.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-prefs.md", "auth": { "Project": [] } @@ -54413,57 +60968,36 @@ "security": [ { "Project": [], - "Key": [] + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "name": "teamId", + "description": "Team ID.", "required": true, "schema": { "type": "string", - "x-example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Index Key.", - "required": true, - "schema": { - "type": "string" + "x-example": "<TEAM_ID>" }, "in": "path" } ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/logs": { - "get": { - "summary": "List table logs", - "operationId": "tablesDBListTableLogs", + }, + "put": { + "summary": "Update team preferences", + "operationId": "teamsUpdatePrefs", "tags": [ - "tablesDB" + "teams" ], - "description": "Get the table activity logs list by its unique ID.", + "description": "Update the team's preferences by its unique ID. The object you pass is stored as is and replaces any previous value. The maximum allowed prefs size is 64kB and throws an error if exceeded.", "responses": { "200": { - "description": "Logs List", + "description": "Preferences", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/logList" + "$ref": "#\/components\/schemas\/preferences" } } } @@ -54471,86 +61005,82 @@ }, "deprecated": false, "x-appwrite": { - "method": "listTableLogs", - "group": "tables", - "weight": 346, + "method": "updatePrefs", + "group": "teams", + "weight": 583, "cookies": false, "type": "", - "demo": "tablesdb\/list-table-logs.md", + "demo": "teams\/update-prefs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.read", - "collections.read" - ], + "scope": "teams.write", "platforms": [ - "console" + "console", + "client", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-table-logs.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-prefs.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "schema": { "type": "string", - "x-example": "<TABLE_ID>" + "x-example": "<TEAM_ID>" }, "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). Only supported methods are limit and offset", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "prefs": { + "type": "object", + "description": "Prefs key-value JSON object.", + "x-example": "{}" + } + }, + "required": [ + "prefs" + ] + } + } + } + } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows": { + "\/tokens\/buckets\/{bucketId}\/files\/{fileId}": { "get": { - "summary": "List rows", - "operationId": "tablesDBListRows", + "summary": "List tokens", + "operationId": "tokensList", "tags": [ - "tablesDB" + "tokens" ], - "description": "Get a list of all the user's rows in a given table. You can use the query params to filter your results.", + "description": "List all the tokens created for a specific file or bucket. You can use the query params to filter your results.", "responses": { "200": { - "description": "Rows List", + "description": "Resource Tokens List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/rowList" + "$ref": "#\/components\/schemas\/resourceTokenList" } } } @@ -54558,28 +61088,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "listRows", - "group": "rows", - "weight": 397, + "method": "list", + "group": "files", + "weight": 593, "cookies": false, "type": "", - "demo": "tablesdb\/list-rows.md", + "demo": "tokens\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "rows.read", - "documents.read" - ], + "scope": "tokens.read", "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-rows.md", "auth": { "Project": [] } @@ -54587,34 +61111,33 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<BUCKET_ID>" }, "in": "path" }, { - "name": "tableId", - "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/products\/databases\/tables#create-table).", + "name": "fileId", + "description": "File unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<TABLE_ID>" + "x-example": "<FILE_ID>" }, "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.", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: expire", "required": false, "schema": { "type": "array", @@ -54625,16 +61148,6 @@ }, "in": "query" }, - { - "name": "transactionId", - "description": "Transaction ID to read uncommitted changes within the transaction.", - "required": false, - "schema": { - "type": "string", - "x-example": "<TRANSACTION_ID>" - }, - "in": "query" - }, { "name": "total", "description": "When set to false, the total count returned will be 0 and will not be calculated.", @@ -54649,19 +61162,19 @@ ] }, "post": { - "summary": "Create row", - "operationId": "tablesDBCreateRow", + "summary": "Create file token", + "operationId": "tokensCreateFileToken", "tags": [ - "tablesDB" + "tokens" ], - "description": "Create a new Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "description": "Create a new token. A token is linked to a file. Token can be passed as a request URL search parameter.", "responses": { "201": { - "description": "Row", + "description": "ResourceToken", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/row" + "$ref": "#\/components\/schemas\/resourceToken" } } } @@ -54669,89 +61182,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "createRow", - "group": "rows", - "weight": 389, + "method": "createFileToken", + "group": "files", + "weight": 591, "cookies": false, "type": "", - "demo": "tablesdb\/create-row.md", - "rate-limit": 120, + "demo": "tokens\/create-file-token.md", + "rate-limit": 60, "rate-time": 60, "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": [ - "rows.write", - "documents.write" - ], + "scope": "tokens.write", "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-row.md", - "methods": [ - { - "name": "createRow", - "namespace": "tablesDB", - "desc": "Create row", - "auth": { - "Project": [] - }, - "parameters": [ - "databaseId", - "tableId", - "rowId", - "data", - "permissions", - "transactionId" - ], - "required": [ - "databaseId", - "tableId", - "rowId", - "data" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/row" - } - ], - "description": "Create a new Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", - "demo": "tablesdb\/create-row.md", - "public": true - }, - { - "name": "createRows", - "namespace": "tablesDB", - "desc": "Create rows", - "auth": { - "Project": [] - }, - "parameters": [ - "databaseId", - "tableId", - "rows", - "transactionId" - ], - "required": [ - "databaseId", - "tableId", - "rows" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/rowList" - } - ], - "description": "Create new Rows. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", - "demo": "tablesdb\/create-rows.md", - "public": true - } - ], "auth": { "Project": [] } @@ -54759,28 +61205,27 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<BUCKET_ID>" }, "in": "path" }, { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable). Make sure to define columns before creating rows.", + "name": "fileId", + "description": "File unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<TABLE_ID>" + "x-example": "<FILE_ID>" }, "in": "path" } @@ -54791,37 +61236,10 @@ "schema": { "type": "object", "properties": { - "rowId": { + "expire": { "type": "string", - "description": "Row 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.", - "x-example": "<ROW_ID>" - }, - "data": { - "type": "object", - "description": "Row data as JSON object.", - "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":30,\"isAdmin\":false}" - }, - "permissions": { - "type": "array", - "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).", - "x-example": "[\"read(\"any\")\"]", - "items": { - "type": "string" - }, - "x-nullable": true - }, - "rows": { - "type": "array", - "description": "Array of rows data as JSON objects.", + "description": "Token expiry date", "x-example": null, - "items": { - "type": "object" - } - }, - "transactionId": { - "type": "string", - "description": "Transaction ID for staging the operation.", - "x-example": "<TRANSACTION_ID>", "x-nullable": true } } @@ -54829,21 +61247,23 @@ } } } - }, - "put": { - "summary": "Upsert rows", - "operationId": "tablesDBUpsertRows", + } + }, + "\/tokens\/{tokenId}": { + "get": { + "summary": "Get token", + "operationId": "tokensGet", "tags": [ - "tablesDB" + "tokens" ], - "description": "Create or update Rows. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.\n", + "description": "Get a token by its unique ID.", "responses": { - "201": { - "description": "Rows List", + "200": { + "description": "ResourceToken", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/rowList" + "$ref": "#\/components\/schemas\/resourceToken" } } } @@ -54851,131 +61271,59 @@ }, "deprecated": false, "x-appwrite": { - "method": "upsertRows", - "group": "rows", - "weight": 394, + "method": "get", + "group": "tokens", + "weight": 592, "cookies": false, "type": "", - "demo": "tablesdb\/upsert-rows.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": [ - "rows.write", - "documents.write" - ], + "demo": "tokens\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "tokens.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/upsert-rows.md", - "methods": [ - { - "name": "upsertRows", - "namespace": "tablesDB", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "databaseId", - "tableId", - "rows", - "transactionId" - ], - "required": [ - "databaseId", - "tableId", - "rows" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/rowList" - } - ], - "description": "Create or update Rows. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.\n", - "demo": "tablesdb\/upsert-rows.md", - "public": true - } - ], "auth": { "Project": [] } }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<TABLE_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "rows": { - "type": "array", - "description": "Array of row data as JSON objects. May contain partial rows.", - "x-example": null, - "items": { - "type": "object" - } - }, - "transactionId": { - "type": "string", - "description": "Transaction ID for staging the operation.", - "x-example": "<TRANSACTION_ID>", - "x-nullable": true - } - }, - "required": [ - "rows" - ] - } - } + "security": [ + { + "Project": [], + "Key": [] } - } + ], + "parameters": [ + { + "name": "tokenId", + "description": "Token ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TOKEN_ID>" + }, + "in": "path" + } + ] }, "patch": { - "summary": "Update rows", - "operationId": "tablesDBUpdateRows", + "summary": "Update token", + "operationId": "tokensUpdate", "tags": [ - "tablesDB" + "tokens" ], - "description": "Update all rows that match your queries, if no queries are submitted then all rows are updated. You can pass only specific fields to be updated.", + "description": "Update a token by its unique ID. Use this endpoint to update a token's expiry date.", "responses": { "200": { - "description": "Rows List", + "description": "ResourceToken", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/rowList" + "$ref": "#\/components\/schemas\/resourceToken" } } } @@ -54983,26 +61331,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateRows", - "group": "rows", - "weight": 392, + "method": "update", + "group": "tokens", + "weight": 594, "cookies": false, "type": "", - "demo": "tablesdb\/update-rows.md", - "rate-limit": 120, + "demo": "tokens\/update.md", + "rate-limit": 60, "rate-time": 60, "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": [ - "rows.write", - "documents.write" - ], + "scope": "tokens.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-rows.md", "auth": { "Project": [] } @@ -55015,22 +61359,12 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", + "name": "tokenId", + "description": "Token unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<TABLE_ID>" + "x-example": "<TOKEN_ID>" }, "in": "path" } @@ -55041,23 +61375,10 @@ "schema": { "type": "object", "properties": { - "data": { - "type": "object", - "description": "Row data as JSON object. Include only column and value pairs to be updated.", - "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":33,\"isAdmin\":false}" - }, - "queries": { - "type": "array", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", - "x-example": null, - "items": { - "type": "string" - } - }, - "transactionId": { + "expire": { "type": "string", - "description": "Transaction ID for staging the operation.", - "x-example": "<TRANSACTION_ID>", + "description": "File token expiry date", + "x-example": null, "x-nullable": true } } @@ -55067,46 +61388,35 @@ } }, "delete": { - "summary": "Delete rows", - "operationId": "tablesDBDeleteRows", + "summary": "Delete token", + "operationId": "tokensDelete", "tags": [ - "tablesDB" + "tokens" ], - "description": "Bulk delete rows using queries, if no queries are passed then all rows are deleted.", + "description": "Delete a token by its unique ID.", "responses": { - "200": { - "description": "Rows List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/rowList" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "deleteRows", - "group": "rows", - "weight": 396, + "method": "delete", + "group": "tokens", + "weight": 595, "cookies": false, "type": "", - "demo": "tablesdb\/delete-rows.md", + "demo": "tokens\/delete.md", "rate-limit": 60, "rate-time": 60, "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": [ - "rows.write", - "documents.write" - ], + "scope": "tokens.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-rows.md", "auth": { "Project": [] } @@ -55119,68 +61429,33 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "name": "tokenId", + "description": "Token ID.", "required": true, "schema": { "type": "string", - "x-example": "<TABLE_ID>" + "x-example": "<TOKEN_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "queries": { - "type": "array", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", - "x-example": null, - "items": { - "type": "string" - } - }, - "transactionId": { - "type": "string", - "description": "Transaction ID for staging the operation.", - "x-example": "<TRANSACTION_ID>", - "x-nullable": true - } - } - } - } - } - } + ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}": { + "\/users": { "get": { - "summary": "Get row", - "operationId": "tablesDBGetRow", + "summary": "List users", + "operationId": "usersList", "tags": [ - "tablesDB" + "users" ], - "description": "Get a row by its unique ID. This endpoint response returns a JSON object with the row data.", + "description": "Get a list of all the project's users. You can use the query params to filter your results.", "responses": { "200": { - "description": "Row", + "description": "Users List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/row" + "$ref": "#\/components\/schemas\/userList" } } } @@ -55188,28 +61463,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "getRow", - "group": "rows", - "weight": 390, + "method": "list", + "group": "users", + "weight": 115, "cookies": false, "type": "", - "demo": "tablesdb\/get-row.md", + "demo": "users\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "rows.read", - "documents.read" - ], + "scope": "users.read", "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-row.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-users.md", "auth": { "Project": [] } @@ -55217,44 +61487,13 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", - "required": true, - "schema": { - "type": "string", - "x-example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "rowId", - "description": "Row ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<ROW_ID>" - }, - "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.", + "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, email, phone, status, passwordUpdate, registration, emailVerification, phoneVerification, labels", "required": false, "schema": { "type": "array", @@ -55266,31 +61505,43 @@ "in": "query" }, { - "name": "transactionId", - "description": "Transaction ID to read uncommitted changes within the transaction.", + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", "required": false, "schema": { "type": "string", - "x-example": "<TRANSACTION_ID>" + "x-example": "<SEARCH>", + "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", + "x-example": false, + "default": true }, "in": "query" } ] }, - "put": { - "summary": "Upsert a row", - "operationId": "tablesDBUpsertRow", + "post": { + "summary": "Create user", + "operationId": "usersCreate", "tags": [ - "tablesDB" + "users" ], - "description": "Create or update a Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "description": "Create a new user.", "responses": { "201": { - "description": "Row", + "description": "User", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/row" + "$ref": "#\/components\/schemas\/user" } } } @@ -55298,60 +61549,117 @@ }, "deprecated": false, "x-appwrite": { - "method": "upsertRow", - "group": "rows", - "weight": 393, + "method": "create", + "group": "users", + "weight": 106, "cookies": false, "type": "", - "demo": "tablesdb\/upsert-row.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": [ - "rows.write", - "documents.write" - ], + "demo": "users\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/upsert-row.md", - "methods": [ - { - "name": "upsertRow", - "namespace": "tablesDB", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "databaseId", - "tableId", - "rowId", - "data", - "permissions", - "transactionId" - ], - "required": [ - "databaseId", - "tableId", - "rowId" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/row" + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-user.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "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.", + "x-example": "<USER_ID>" + }, + "email": { + "type": "string", + "description": "User email.", + "x-example": "email@example.com", + "format": "email", + "x-nullable": true + }, + "phone": { + "type": "string", + "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "x-example": "+12065550100", + "format": "phone", + "x-nullable": true + }, + "password": { + "type": "string", + "description": "Plain text user password. Must be at least 8 chars.", + "x-example": null + }, + "name": { + "type": "string", + "description": "User name. Max length: 128 chars.", + "x-example": "<NAME>" + } + }, + "required": [ + "userId" + ] + } + } + } + } + } + }, + "\/users\/argon2": { + "post": { + "summary": "Create user with Argon2 password", + "operationId": "usersCreateArgon2User", + "tags": [ + "users" + ], + "description": "Create a new user. Password provided must be hashed with the [Argon2](https:\/\/en.wikipedia.org\/wiki\/Argon2) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "responses": { + "201": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" } - ], - "description": "Create or update a Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", - "demo": "tablesdb\/upsert-row.md", - "public": true + } } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createArgon2User", + "group": "users", + "weight": 109, + "cookies": false, + "type": "", + "demo": "users\/create-argon-2-user.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-argon2-user.md", "auth": { "Project": [] } @@ -55359,40 +61667,96 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "rowId", - "description": "Row ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<ROW_ID>" - }, - "in": "path" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "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.", + "x-example": "<USER_ID>" + }, + "email": { + "type": "string", + "description": "User email.", + "x-example": "email@example.com", + "format": "email" + }, + "password": { + "type": "string", + "description": "User password hashed using Argon2.", + "x-example": "password", + "format": "password" + }, + "name": { + "type": "string", + "description": "User name. Max length: 128 chars.", + "x-example": "<NAME>" + } + }, + "required": [ + "userId", + "email", + "password" + ] + } + } + } + } + } + }, + "\/users\/bcrypt": { + "post": { + "summary": "Create user with bcrypt password", + "operationId": "usersCreateBcryptUser", + "tags": [ + "users" + ], + "description": "Create a new user. Password provided must be hashed with the [Bcrypt](https:\/\/en.wikipedia.org\/wiki\/Bcrypt) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "responses": { + "201": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createBcryptUser", + "group": "users", + "weight": 107, + "cookies": false, + "type": "", + "demo": "users\/create-bcrypt-user.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-bcrypt-user.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] } ], "requestBody": { @@ -55401,46 +61765,55 @@ "schema": { "type": "object", "properties": { - "data": { - "type": "object", - "description": "Row data as JSON object. Include all required columns of the row to be created or updated.", - "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":33,\"isAdmin\":false}" + "userId": { + "type": "string", + "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.", + "x-example": "<USER_ID>" }, - "permissions": { - "type": "array", - "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "x-example": "[\"read(\"any\")\"]", - "items": { - "type": "string" - }, - "x-nullable": true + "email": { + "type": "string", + "description": "User email.", + "x-example": "email@example.com", + "format": "email" }, - "transactionId": { + "password": { "type": "string", - "description": "Transaction ID for staging the operation.", - "x-example": "<TRANSACTION_ID>", - "x-nullable": true + "description": "User password hashed using Bcrypt.", + "x-example": "password", + "format": "password" + }, + "name": { + "type": "string", + "description": "User name. Max length: 128 chars.", + "x-example": "<NAME>" } - } + }, + "required": [ + "userId", + "email", + "password" + ] } } } } - }, - "patch": { - "summary": "Update row", - "operationId": "tablesDBUpdateRow", + } + }, + "\/users\/identities": { + "get": { + "summary": "List identities", + "operationId": "usersListIdentities", "tags": [ - "tablesDB" + "users" ], - "description": "Update a row by its unique ID. Using the patch method you can pass only specific fields that will get updated.", + "description": "Get identities for all users.", "responses": { "200": { - "description": "Row", + "description": "Identities List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/row" + "$ref": "#\/components\/schemas\/identityList" } } } @@ -55448,28 +61821,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateRow", - "group": "rows", - "weight": 391, + "method": "listIdentities", + "group": "identities", + "weight": 123, "cookies": false, "type": "", - "demo": "tablesdb\/update-row.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": [ - "rows.write", - "documents.write" - ], + "demo": "users\/list-identities.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-row.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-identities.md", "auth": { "Project": [] } @@ -55477,81 +61845,56 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, + "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": "string", - "x-example": "<DATABASE_ID>" + "type": "array", + "items": { + "type": "string" + }, + "default": [] }, - "in": "path" + "in": "query" }, { - "name": "tableId", - "description": "Table ID.", - "required": true, + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, "schema": { "type": "string", - "x-example": "<TABLE_ID>" + "x-example": "<SEARCH>", + "default": "" }, - "in": "path" + "in": "query" }, { - "name": "rowId", - "description": "Row ID.", - "required": true, + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, "schema": { - "type": "string", - "x-example": "<ROW_ID>" + "type": "boolean", + "x-example": false, + "default": true }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "type": "object", - "description": "Row data as JSON object. Include only columns and value pairs to be updated.", - "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":33,\"isAdmin\":false}" - }, - "permissions": { - "type": "array", - "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "x-example": "[\"read(\"any\")\"]", - "items": { - "type": "string" - }, - "x-nullable": true - }, - "transactionId": { - "type": "string", - "description": "Transaction ID for staging the operation.", - "x-example": "<TRANSACTION_ID>", - "x-nullable": true - } - } - } - } + "in": "query" } - } - }, + ] + } + }, + "\/users\/identities\/{identityId}": { "delete": { - "summary": "Delete row", - "operationId": "tablesDBDeleteRow", + "summary": "Delete identity", + "operationId": "usersDeleteIdentity", "tags": [ - "tablesDB" + "users" ], - "description": "Delete a row by its unique ID.", + "description": "Delete an identity by its unique ID.", "responses": { "204": { "description": "No content" @@ -55559,28 +61902,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteRow", - "group": "rows", - "weight": 395, + "method": "deleteIdentity", + "group": "identities", + "weight": 146, "cookies": false, "type": "", - "demo": "tablesdb\/delete-row.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": [ - "rows.write", - "documents.write" - ], + "demo": "users\/delete-identity.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-row.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-identity.md", "auth": { "Project": [] } @@ -55588,40 +61926,70 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "name": "identityId", + "description": "Identity ID.", "required": true, "schema": { "type": "string", - "x-example": "<TABLE_ID>" + "x-example": "<IDENTITY_ID>" }, "in": "path" - }, + } + ] + } + }, + "\/users\/md5": { + "post": { + "summary": "Create user with MD5 password", + "operationId": "usersCreateMD5User", + "tags": [ + "users" + ], + "description": "Create a new user. Password provided must be hashed with the [MD5](https:\/\/en.wikipedia.org\/wiki\/MD5) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "responses": { + "201": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createMD5User", + "group": "users", + "weight": 108, + "cookies": false, + "type": "", + "demo": "users\/create-md-5-user.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-md5-user.md", + "auth": { + "Project": [] + } + }, + "security": [ { - "name": "rowId", - "description": "Row ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<ROW_ID>" - }, - "in": "path" + "Project": [], + "Key": [] } ], "requestBody": { @@ -55630,34 +61998,55 @@ "schema": { "type": "object", "properties": { - "transactionId": { + "userId": { "type": "string", - "description": "Transaction ID for staging the operation.", - "x-example": "<TRANSACTION_ID>", - "x-nullable": true + "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.", + "x-example": "<USER_ID>" + }, + "email": { + "type": "string", + "description": "User email.", + "x-example": "email@example.com", + "format": "email" + }, + "password": { + "type": "string", + "description": "User password hashed using MD5.", + "x-example": "password", + "format": "password" + }, + "name": { + "type": "string", + "description": "User name. Max length: 128 chars.", + "x-example": "<NAME>" } - } + }, + "required": [ + "userId", + "email", + "password" + ] } } } } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}\/logs": { - "get": { - "summary": "List row logs", - "operationId": "tablesDBListRowLogs", + "\/users\/phpass": { + "post": { + "summary": "Create user with PHPass password", + "operationId": "usersCreatePHPassUser", "tags": [ - "tablesDB" + "users" ], - "description": "Get the row activity logs list by its unique ID.", + "description": "Create a new user. Password provided must be hashed with the [PHPass](https:\/\/www.openwall.com\/phpass\/) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", "responses": { - "200": { - "description": "Logs List", + "201": { + "description": "User", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/logList" + "$ref": "#\/components\/schemas\/user" } } } @@ -55665,96 +62054,88 @@ }, "deprecated": false, "x-appwrite": { - "method": "listRowLogs", - "group": "logs", - "weight": 398, + "method": "createPHPassUser", + "group": "users", + "weight": 111, "cookies": false, "type": "", - "demo": "tablesdb\/list-row-logs.md", + "demo": "users\/create-ph-pass-user.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "rows.read", - "documents.read" - ], + "scope": "users.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-row-logs.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-phpass-user.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "rowId", - "description": "Row ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<ROW_ID>" - }, - "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). Only supported methods are limit and offset", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] - }, - "in": "query" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "description": "User ID. Choose a custom ID or pass the string `ID.unique()`to auto generate it. 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.", + "x-example": "<USER_ID>" + }, + "email": { + "type": "string", + "description": "User email.", + "x-example": "email@example.com", + "format": "email" + }, + "password": { + "type": "string", + "description": "User password hashed using PHPass.", + "x-example": "password", + "format": "password" + }, + "name": { + "type": "string", + "description": "User name. Max length: 128 chars.", + "x-example": "<NAME>" + } + }, + "required": [ + "userId", + "email", + "password" + ] + } + } } - ] + } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}\/{column}\/decrement": { - "patch": { - "summary": "Decrement row column", - "operationId": "tablesDBDecrementRowColumn", + "\/users\/scrypt": { + "post": { + "summary": "Create user with Scrypt password", + "operationId": "usersCreateScryptUser", "tags": [ - "tablesDB" + "users" ], - "description": "Decrement a specific column of a row by a given value.", + "description": "Create a new user. Password provided must be hashed with the [Scrypt](https:\/\/github.com\/Tarsnap\/scrypt) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", "responses": { - "200": { - "description": "Row", + "201": { + "description": "User", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/row" + "$ref": "#\/components\/schemas\/user" } } } @@ -55762,78 +62143,31 @@ }, "deprecated": false, "x-appwrite": { - "method": "decrementRowColumn", - "group": "rows", - "weight": 400, + "method": "createScryptUser", + "group": "users", + "weight": 112, "cookies": false, "type": "", - "demo": "tablesdb\/decrement-row-column.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": [ - "rows.write", - "documents.write" - ], + "demo": "users\/create-scrypt-user.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", "platforms": [ - "client", - "server", "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/decrement-row-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-scrypt-user.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "JWT": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "rowId", - "description": "Row ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<ROW_ID>" - }, - "in": "path" - }, - { - "name": "column", - "description": "Column key.", - "required": true, - "schema": { - "type": "string" - }, - "in": "path" + "Project": [], + "Key": [] } ], "requestBody": { @@ -55842,47 +62176,89 @@ "schema": { "type": "object", "properties": { - "value": { - "type": "number", - "description": "Value to increment the column by. The value must be a number.", + "userId": { + "type": "string", + "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.", + "x-example": "<USER_ID>" + }, + "email": { + "type": "string", + "description": "User email.", + "x-example": "email@example.com", + "format": "email" + }, + "password": { + "type": "string", + "description": "User password hashed using Scrypt.", + "x-example": "password", + "format": "password" + }, + "passwordSalt": { + "type": "string", + "description": "Optional salt used to hash password.", + "x-example": "<PASSWORD_SALT>" + }, + "passwordCpu": { + "type": "integer", + "description": "Optional CPU cost used to hash password.", "x-example": null, - "format": "float" + "format": "int32" }, - "min": { - "type": "number", - "description": "Minimum value for the column. If the current value is lesser than this value, an exception will be thrown.", + "passwordMemory": { + "type": "integer", + "description": "Optional memory cost used to hash password.", "x-example": null, - "format": "float", - "x-nullable": true + "format": "int32" }, - "transactionId": { + "passwordParallel": { + "type": "integer", + "description": "Optional parallelization cost used to hash password.", + "x-example": null, + "format": "int32" + }, + "passwordLength": { + "type": "integer", + "description": "Optional hash length used to hash password.", + "x-example": null, + "format": "int32" + }, + "name": { "type": "string", - "description": "Transaction ID for staging the operation.", - "x-example": "<TRANSACTION_ID>", - "x-nullable": true + "description": "User name. Max length: 128 chars.", + "x-example": "<NAME>" } - } + }, + "required": [ + "userId", + "email", + "password", + "passwordSalt", + "passwordCpu", + "passwordMemory", + "passwordParallel", + "passwordLength" + ] } } } } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}\/{column}\/increment": { - "patch": { - "summary": "Increment row column", - "operationId": "tablesDBIncrementRowColumn", + "\/users\/scrypt-modified": { + "post": { + "summary": "Create user with Scrypt modified password", + "operationId": "usersCreateScryptModifiedUser", "tags": [ - "tablesDB" + "users" ], - "description": "Increment a specific column of a row by a given value.", + "description": "Create a new user. Password provided must be hashed with the [Scrypt Modified](https:\/\/gist.github.com\/Meldiron\/eecf84a0225eccb5a378d45bb27462cc) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", "responses": { - "200": { - "description": "Row", + "201": { + "description": "User", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/row" + "$ref": "#\/components\/schemas\/user" } } } @@ -55890,28 +62266,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "incrementRowColumn", - "group": "rows", - "weight": 399, + "method": "createScryptModifiedUser", + "group": "users", + "weight": 113, "cookies": false, "type": "", - "demo": "tablesdb\/increment-row-column.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": [ - "rows.write", - "documents.write" - ], + "demo": "users\/create-scrypt-modified-user.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", "platforms": [ - "client", - "server", "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/increment-row-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-scrypt-modified-user.md", "auth": { "Project": [] } @@ -55919,98 +62290,82 @@ "security": [ { "Project": [], - "JWT": [], "Key": [] } ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "rowId", - "description": "Row ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<ROW_ID>" - }, - "in": "path" - }, - { - "name": "column", - "description": "Column key.", - "required": true, - "schema": { - "type": "string" - }, - "in": "path" - } - ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "value": { - "type": "number", - "description": "Value to increment the column by. The value must be a number.", - "x-example": null, - "format": "float" + "userId": { + "type": "string", + "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.", + "x-example": "<USER_ID>" }, - "max": { - "type": "number", - "description": "Maximum value for the column. If the current value is greater than this value, an error will be thrown.", - "x-example": null, - "format": "float", - "x-nullable": true + "email": { + "type": "string", + "description": "User email.", + "x-example": "email@example.com", + "format": "email" }, - "transactionId": { + "password": { "type": "string", - "description": "Transaction ID for staging the operation.", - "x-example": "<TRANSACTION_ID>", - "x-nullable": true + "description": "User password hashed using Scrypt Modified.", + "x-example": "password", + "format": "password" + }, + "passwordSalt": { + "type": "string", + "description": "Salt used to hash password.", + "x-example": "<PASSWORD_SALT>" + }, + "passwordSaltSeparator": { + "type": "string", + "description": "Salt separator used to hash password.", + "x-example": "<PASSWORD_SALT_SEPARATOR>" + }, + "passwordSignerKey": { + "type": "string", + "description": "Signer key used to hash password.", + "x-example": "<PASSWORD_SIGNER_KEY>" + }, + "name": { + "type": "string", + "description": "User name. Max length: 128 chars.", + "x-example": "<NAME>" } - } + }, + "required": [ + "userId", + "email", + "password", + "passwordSalt", + "passwordSaltSeparator", + "passwordSignerKey" + ] } } } } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/usage": { - "get": { - "summary": "Get table usage stats", - "operationId": "tablesDBGetTableUsage", + "\/users\/sha": { + "post": { + "summary": "Create user with SHA password", + "operationId": "usersCreateSHAUser", "tags": [ - "tablesDB" + "users" ], - "description": "Get usage metrics and statistics for a table. Returning the total number of rows. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.", + "description": "Create a new user. Password provided must be hashed with the [SHA](https:\/\/en.wikipedia.org\/wiki\/Secure_Hash_Algorithm) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", "responses": { - "200": { - "description": "UsageTable", + "201": { + "description": "User", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/usageTable" + "$ref": "#\/components\/schemas\/user" } } } @@ -56018,95 +62373,108 @@ }, "deprecated": false, "x-appwrite": { - "method": "getTableUsage", - "group": null, - "weight": 347, + "method": "createSHAUser", + "group": "users", + "weight": 110, "cookies": false, "type": "", - "demo": "tablesdb\/get-table-usage.md", + "demo": "users\/create-sha-user.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.read", - "collections.read" - ], + "scope": "users.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-table-usage.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-sha-user.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "range", - "description": "Date range.", - "required": false, - "schema": { - "type": "string", - "x-example": "24h", - "enum": [ - "24h", - "30d", - "90d" - ], - "x-enum-name": "UsageRange", - "x-enum-keys": [ - "Twenty Four Hours", - "Thirty Days", - "Ninety Days" - ], - "default": "30d" - }, - "in": "query" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<TABLE_ID>" - }, - "in": "path" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "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.", + "x-example": "<USER_ID>" + }, + "email": { + "type": "string", + "description": "User email.", + "x-example": "email@example.com", + "format": "email" + }, + "password": { + "type": "string", + "description": "User password hashed using SHA.", + "x-example": "password", + "format": "password" + }, + "passwordVersion": { + "type": "string", + "description": "Optional SHA version used to hash password. Allowed values are: 'sha1', 'sha224', 'sha256', 'sha384', 'sha512\/224', 'sha512\/256', 'sha512', 'sha3-224', 'sha3-256', 'sha3-384', 'sha3-512'", + "x-example": "sha1", + "enum": [ + "sha1", + "sha224", + "sha256", + "sha384", + "sha512\/224", + "sha512\/256", + "sha512", + "sha3-224", + "sha3-256", + "sha3-384", + "sha3-512" + ], + "x-enum-name": "PasswordHash", + "x-enum-keys": [] + }, + "name": { + "type": "string", + "description": "User name. Max length: 128 chars.", + "x-example": "<NAME>" + } + }, + "required": [ + "userId", + "email", + "password" + ] + } + } } - ] + } } }, - "\/tablesdb\/{databaseId}\/usage": { + "\/users\/usage": { "get": { - "summary": "Get TablesDB usage stats", - "operationId": "tablesDBGetUsage", + "summary": "Get users usage stats", + "operationId": "usersGetUsage", "tags": [ - "tablesDB" + "users" ], - "description": "Get usage metrics and statistics for a database. You can view the total number of tables, rows, and storage usage. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.", + "description": "Get usage metrics and statistics for all users in the project. You can view the total number of users and sessions. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.\n", "responses": { "200": { - "description": "UsageDatabase", + "description": "UsageUsers", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/usageDatabase" + "$ref": "#\/components\/schemas\/usageUsers" } } } @@ -56116,49 +62484,20 @@ "x-appwrite": { "method": "getUsage", "group": null, - "weight": 339, + "weight": 148, "cookies": false, "type": "", - "demo": "tablesdb\/get-usage.md", + "demo": "users\/get-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.read", - "collections.read" - ], + "scope": "users.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-database-usage.md", - "methods": [ - { - "name": "getUsage", - "namespace": "tablesDB", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "databaseId", - "range" - ], - "required": [ - "databaseId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/usageDatabase" - } - ], - "description": "Get usage metrics and statistics for a database. You can view the total number of tables, rows, and storage usage. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.", - "demo": "tablesdb\/get-usage.md", - "public": true - } - ], + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-usage.md", "auth": { "Project": [] } @@ -56169,16 +62508,6 @@ } ], "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, { "name": "range", "description": "Date range.", @@ -56204,110 +62533,21 @@ ] } }, - "\/teams": { + "\/users\/{userId}": { "get": { - "summary": "List teams", - "operationId": "teamsList", - "tags": [ - "teams" - ], - "description": "Get a list of all the teams in which the current user is a member. You can use the parameters to filter your results.", - "responses": { - "200": { - "description": "Teams List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/teamList" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "list", - "group": "teams", - "weight": 107, - "cookies": false, - "type": "", - "demo": "teams\/list.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", - "platforms": [ - "console", - "client", - "server", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/list-teams.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "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. You may filter on the following attributes: name, total, billingPlan", - "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", - "x-example": "<SEARCH>", - "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", - "x-example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create team", - "operationId": "teamsCreate", + "summary": "Get user", + "operationId": "usersGet", "tags": [ - "teams" + "users" ], - "description": "Create a new team. The user who creates the team will automatically be assigned as the owner of the team. Only the users with the owner role can invite new members, add new owners and delete or update the team.", + "description": "Get a user by its unique ID.", "responses": { - "201": { - "description": "Team", + "200": { + "description": "User", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/team" + "$ref": "#\/components\/schemas\/user" } } } @@ -56315,25 +62555,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "create", - "group": "teams", - "weight": 106, + "method": "get", + "group": "users", + "weight": 116, "cookies": false, "type": "", - "demo": "teams\/create.md", + "demo": "users\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": "users.read", "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user.md", "auth": { "Project": [] } @@ -56341,86 +62579,53 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "teamId": { - "type": "string", - "description": "Team 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.", - "x-example": "<TEAM_ID>" - }, - "name": { - "type": "string", - "description": "Team name. Max length: 128 chars.", - "x-example": "<NAME>" - }, - "roles": { - "type": "array", - "description": "Array of strings. Use this param to set the roles in the team for the user who created it. The default role is **owner**. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 32 characters long.", - "x-example": null, - "items": { - "type": "string" - } - } - }, - "required": [ - "teamId", - "name" - ] - } - } + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<USER_ID>" + }, + "in": "path" } - } - } - }, - "\/teams\/{teamId}": { - "get": { - "summary": "Get team", - "operationId": "teamsGet", + ] + }, + "delete": { + "summary": "Delete user", + "operationId": "usersDelete", "tags": [ - "teams" + "users" ], - "description": "Get a team by its ID. All team members have read access for this resource.", + "description": "Delete a user by its unique ID, thereby releasing it's ID. Since ID is released and can be reused, all user-related resources like documents or storage files should be deleted before user deletion. If you want to keep ID reserved, use the [updateStatus](https:\/\/appwrite.io\/docs\/server\/users#usersUpdateStatus) endpoint instead.", "responses": { - "200": { - "description": "Team", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/team" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": "teams", - "weight": 108, + "method": "delete", + "group": "users", + "weight": 144, "cookies": false, "type": "", - "demo": "teams\/get.md", + "demo": "users\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "users.write", "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete.md", "auth": { "Project": [] } @@ -56428,37 +62633,38 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<TEAM_ID>" + "x-example": "<USER_ID>" }, "in": "path" } ] - }, - "put": { - "summary": "Update name", - "operationId": "teamsUpdateName", + } + }, + "\/users\/{userId}\/email": { + "patch": { + "summary": "Update email", + "operationId": "usersUpdateEmail", "tags": [ - "teams" + "users" ], - "description": "Update the team's name by its unique ID.", + "description": "Update the user email by its unique ID.", "responses": { "200": { - "description": "Team", + "description": "User", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/team" + "$ref": "#\/components\/schemas\/user" } } } @@ -56466,25 +62672,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateName", - "group": "teams", - "weight": 110, + "method": "updateEmail", + "group": "users", + "weight": 129, "cookies": false, "type": "", - "demo": "teams\/update-name.md", + "demo": "users\/update-email.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": "users.write", "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-name.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-email.md", "auth": { "Project": [] } @@ -56492,18 +62696,17 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<TEAM_ID>" + "x-example": "<USER_ID>" }, "in": "path" } @@ -56514,53 +62717,61 @@ "schema": { "type": "object", "properties": { - "name": { + "email": { "type": "string", - "description": "New team name. Max length: 128 chars.", - "x-example": "<NAME>" + "description": "User email.", + "x-example": "email@example.com", + "format": "email" } }, "required": [ - "name" + "email" ] } } } } - }, - "delete": { - "summary": "Delete team", - "operationId": "teamsDelete", + } + }, + "\/users\/{userId}\/jwts": { + "post": { + "summary": "Create user JWT", + "operationId": "usersCreateJWT", "tags": [ - "teams" + "users" ], - "description": "Delete a team using its ID. Only team members with the owner role can delete the team.", + "description": "Use this endpoint to create a JSON Web Token for user by its unique ID. You can use the resulting JWT to authenticate on behalf of the user. The JWT secret will become invalid if the session it uses gets deleted.", "responses": { - "204": { - "description": "No content" + "201": { + "description": "JWT", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/jwt" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": "teams", - "weight": 112, + "method": "createJWT", + "group": "sessions", + "weight": 147, "cookies": false, "type": "", - "demo": "teams\/delete.md", + "demo": "users\/create-jwt.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": "users.write", "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-user-jwt.md", "auth": { "Project": [] } @@ -56568,39 +62779,60 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<TEAM_ID>" + "x-example": "<USER_ID>" }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "sessionId": { + "type": "string", + "description": "Session ID. Use the string 'recent' to use the most recent session. Defaults to the most recent session.", + "x-example": "<SESSION_ID>" + }, + "duration": { + "type": "integer", + "description": "Time in seconds before JWT expires. Default duration is 900 seconds, and maximum is 3600 seconds.", + "x-example": 0, + "format": "int32" + } + } + } + } + } + } } }, - "\/teams\/{teamId}\/logs": { - "get": { - "summary": "List team logs", - "operationId": "teamsListLogs", + "\/users\/{userId}\/labels": { + "put": { + "summary": "Update user labels", + "operationId": "usersUpdateLabels", "tags": [ - "teams" + "users" ], - "description": "Get the team activity logs list by its unique ID.", + "description": "Update the user labels by its unique ID. \n\nLabels can be used to grant access to resources. While teams are a way for user's to share access to a resource, labels can be defined by the developer to grant access without an invitation. See the [Permissions docs](https:\/\/appwrite.io\/docs\/permissions) for more info.", "responses": { "200": { - "description": "Logs List", + "description": "User", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/logList" + "$ref": "#\/components\/schemas\/user" } } } @@ -56608,84 +62840,84 @@ }, "deprecated": false, "x-appwrite": { - "method": "listLogs", - "group": "logs", - "weight": 119, + "method": "updateLabels", + "group": "users", + "weight": 125, "cookies": false, "type": "", - "demo": "teams\/list-logs.md", + "demo": "users\/update-labels.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "users.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-logs.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-labels.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<TEAM_ID>" + "x-example": "<USER_ID>" }, "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). 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", - "x-example": false, - "default": true - }, - "in": "query" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "labels": { + "type": "array", + "description": "Array of user labels. Replaces the previous labels. Maximum of 1000 labels are allowed, each up to 36 alphanumeric characters long.", + "x-example": null, + "items": { + "type": "string" + } + } + }, + "required": [ + "labels" + ] + } + } + } + } } }, - "\/teams\/{teamId}\/memberships": { + "\/users\/{userId}\/logs": { "get": { - "summary": "List team memberships", - "operationId": "teamsListMemberships", + "summary": "List user logs", + "operationId": "usersListLogs", "tags": [ - "teams" + "users" ], - "description": "Use this endpoint to list a team's members using the team's ID. All team members have read access to this endpoint. Hide sensitive attributes from the response by toggling membership privacy in the Console.", + "description": "Get the user activity logs list by its unique ID.", "responses": { "200": { - "description": "Memberships List", + "description": "Logs List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/membershipList" + "$ref": "#\/components\/schemas\/logList" } } } @@ -56693,25 +62925,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "listMemberships", - "group": "memberships", - "weight": 114, + "method": "listLogs", + "group": "logs", + "weight": 121, "cookies": false, "type": "", - "demo": "teams\/list-memberships.md", + "demo": "users\/list-logs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "users.read", "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/list-team-members.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-user-logs.md", "auth": { "Project": [] } @@ -56719,24 +62949,23 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<TEAM_ID>" + "x-example": "<USER_ID>" }, "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: userId, teamId, invited, joined, confirm, roles", + "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", @@ -56747,17 +62976,6 @@ }, "in": "query" }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "x-example": "<SEARCH>", - "default": "" - }, - "in": "query" - }, { "name": "total", "description": "When set to false, the total count returned will be 0 and will not be calculated.", @@ -56770,137 +62988,23 @@ "in": "query" } ] - }, - "post": { - "summary": "Create team membership", - "operationId": "teamsCreateMembership", - "tags": [ - "teams" - ], - "description": "Invite a new member to join your team. Provide an ID for existing users, or invite unregistered users using an email or phone number. If initiated from a Client SDK, Appwrite will send an email or sms with a link to join the team to the invited user, and an account will be created for them if one doesn't exist. If initiated from a Server SDK, the new member will be added automatically to the team.\n\nYou only need to provide one of a user ID, email, or phone number. Appwrite will prioritize accepting the user ID > email > phone number if you provide more than one of these parameters.\n\nUse the `url` parameter to redirect the user from the invitation email to your app. After the user is redirected, use the [Update Team Membership Status](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/teams#updateMembershipStatus) endpoint to allow the user to accept the invitation to the team. \n\nPlease note that to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) Appwrite will accept the only redirect URLs under the domains you have added as a platform on the Appwrite Console.\n", - "responses": { - "201": { - "description": "Membership", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/membership" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "createMembership", - "group": "memberships", - "weight": 113, - "cookies": false, - "type": "", - "demo": "teams\/create-membership.md", - "rate-limit": 10, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", - "platforms": [ - "console", - "client", - "server", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team-membership.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<TEAM_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "email": { - "type": "string", - "description": "Email of the new team member.", - "x-example": "email@example.com", - "format": "email" - }, - "userId": { - "type": "string", - "description": "ID of the user to be added to a team.", - "x-example": "<USER_ID>" - }, - "phone": { - "type": "string", - "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "x-example": "+12065550100", - "format": "phone" - }, - "roles": { - "type": "array", - "description": "Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 32 characters long.", - "x-example": null, - "items": { - "type": "string" - } - }, - "url": { - "type": "string", - "description": "URL to redirect the user back to your app from the invitation email. This parameter is not required when an API key is supplied. 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.", - "x-example": "https:\/\/example.com", - "format": "url" - }, - "name": { - "type": "string", - "description": "Name of the new team member. Max length: 128 chars.", - "x-example": "<NAME>" - } - }, - "required": [ - "roles" - ] - } - } - } - } } }, - "\/teams\/{teamId}\/memberships\/{membershipId}": { + "\/users\/{userId}\/memberships": { "get": { - "summary": "Get team membership", - "operationId": "teamsGetMembership", + "summary": "List user memberships", + "operationId": "usersListMemberships", "tags": [ - "teams" + "users" ], - "description": "Get a team member by the membership unique id. All team members have read access for this resource. Hide sensitive attributes from the response by toggling membership privacy in the Console.", + "description": "Get the user membership list by its unique ID.", "responses": { "200": { - "description": "Membership", + "description": "Memberships List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/membership" + "$ref": "#\/components\/schemas\/membershipList" } } } @@ -56908,25 +63012,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "getMembership", + "method": "listMemberships", "group": "memberships", - "weight": 115, + "weight": 120, "cookies": false, "type": "", - "demo": "teams\/get-membership.md", + "demo": "users\/list-memberships.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "users.read", "platforms": [ - "console", - "client", - "server", + "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-member.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-user-memberships.md", "auth": { "Project": [] } @@ -56934,73 +63036,157 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<TEAM_ID>" + "x-example": "<USER_ID>" }, "in": "path" }, { - "name": "membershipId", - "description": "Membership ID.", - "required": true, + "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, teamId, invited, joined, confirm, roles", + "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", - "x-example": "<MEMBERSHIP_ID>" + "x-example": "<SEARCH>", + "default": "" }, - "in": "path" + "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", + "x-example": false, + "default": true + }, + "in": "query" } ] - }, + } + }, + "\/users\/{userId}\/mfa": { "patch": { - "summary": "Update membership", - "operationId": "teamsUpdateMembership", + "summary": "Update MFA", + "operationId": "usersUpdateMfa", "tags": [ - "teams" + "users" ], - "description": "Modify the roles of a team member. Only team members with the owner role have access to this endpoint. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions).\n", + "description": "Enable or disable MFA on a user account.", "responses": { "200": { - "description": "Membership", + "description": "User", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/membership" + "$ref": "#\/components\/schemas\/user" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "updateMembership", - "group": "memberships", - "weight": 116, + "method": "updateMfa", + "group": "users", + "weight": 134, "cookies": false, "type": "", - "demo": "teams\/update-membership.md", + "demo": "users\/update-mfa.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": "users.write", "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership.md", + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-mfa.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.updateMFA" + }, + "methods": [ + { + "name": "updateMfa", + "namespace": "users", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "userId", + "mfa" + ], + "required": [ + "userId", + "mfa" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/user" + } + ], + "description": "Enable or disable MFA on a user account.", + "demo": "users\/update-mfa.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.updateMFA" + } + }, + { + "name": "updateMFA", + "namespace": "users", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "userId", + "mfa" + ], + "required": [ + "userId", + "mfa" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/user" + } + ], + "description": "Enable or disable MFA on a user account.", + "demo": "users\/update-mfa.md", + "public": true + } + ], "auth": { "Project": [] } @@ -57008,28 +63194,17 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<TEAM_ID>" - }, - "in": "path" - }, - { - "name": "membershipId", - "description": "Membership ID.", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<MEMBERSHIP_ID>" + "x-example": "<USER_ID>" }, "in": "path" } @@ -57040,56 +63215,111 @@ "schema": { "type": "object", "properties": { - "roles": { - "type": "array", - "description": "An array of strings. Use this param to set the user's roles in the team. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 32 characters long.", - "x-example": null, - "items": { - "type": "string" - } + "mfa": { + "type": "boolean", + "description": "Enable or disable MFA.", + "x-example": false } }, "required": [ - "roles" + "mfa" ] } } } } - }, + } + }, + "\/users\/{userId}\/mfa\/authenticators\/{type}": { "delete": { - "summary": "Delete team membership", - "operationId": "teamsDeleteMembership", + "summary": "Delete authenticator", + "operationId": "usersDeleteMfaAuthenticator", "tags": [ - "teams" + "users" ], - "description": "This endpoint allows a user to leave a team or for a team owner to delete the membership of any other team member. You can also use this endpoint to delete a user membership even if it is not accepted.", + "description": "Delete an authenticator app.", "responses": { "204": { "description": "No content" } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "deleteMembership", - "group": null, - "weight": 555, + "method": "deleteMfaAuthenticator", + "group": "mfa", + "weight": 139, "cookies": false, "type": "", - "demo": "teams\/delete-membership.md", + "demo": "users\/delete-mfa-authenticator.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": "users.write", "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team-membership.md", + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-mfa-authenticator.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.deleteMFAAuthenticator" + }, + "methods": [ + { + "name": "deleteMfaAuthenticator", + "namespace": "users", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "userId", + "type" + ], + "required": [ + "userId", + "type" + ], + "responses": [ + { + "code": 204 + } + ], + "description": "Delete an authenticator app.", + "demo": "users\/delete-mfa-authenticator.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.deleteMFAAuthenticator" + } + }, + { + "name": "deleteMFAAuthenticator", + "namespace": "users", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "userId", + "type" + ], + "required": [ + "userId", + "type" + ], + "responses": [ + { + "code": 204 + } + ], + "description": "Delete an authenticator app.", + "demo": "users\/delete-mfa-authenticator.md", + "public": true + } + ], "auth": { "Project": [] } @@ -57097,74 +63327,133 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<TEAM_ID>" + "x-example": "<USER_ID>" }, "in": "path" }, { - "name": "membershipId", - "description": "Membership ID.", + "name": "type", + "description": "Type of authenticator.", "required": true, "schema": { "type": "string", - "x-example": "<MEMBERSHIP_ID>" + "x-example": "totp", + "enum": [ + "totp" + ], + "x-enum-name": "AuthenticatorType", + "x-enum-keys": [] }, "in": "path" } ] } }, - "\/teams\/{teamId}\/memberships\/{membershipId}\/status": { - "patch": { - "summary": "Update team membership status", - "operationId": "teamsUpdateMembershipStatus", + "\/users\/{userId}\/mfa\/factors": { + "get": { + "summary": "List factors", + "operationId": "usersListMfaFactors", "tags": [ - "teams" + "users" ], - "description": "Use this endpoint to allow a user to accept an invitation to join a team after being redirected back to your app from the invitation email received by the user.\n\nIf the request is successful, a session for the user is automatically created.\n", + "description": "List the factors available on the account to be used as a MFA challange.", "responses": { "200": { - "description": "Membership", + "description": "MFAFactors", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/membership" + "$ref": "#\/components\/schemas\/mfaFactors" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "updateMembershipStatus", - "group": "memberships", - "weight": 117, + "method": "listMfaFactors", + "group": "mfa", + "weight": 135, "cookies": false, "type": "", - "demo": "teams\/update-membership-status.md", + "demo": "users\/list-mfa-factors.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "users.read", "platforms": [ "console", - "client", "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership-status.md", + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-mfa-factors.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.listMFAFactors" + }, + "methods": [ + { + "name": "listMfaFactors", + "namespace": "users", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaFactors" + } + ], + "description": "List the factors available on the account to be used as a MFA challange.", + "demo": "users\/list-mfa-factors.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.listMFAFactors" + } + }, + { + "name": "listMFAFactors", + "namespace": "users", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaFactors" + } + ], + "description": "List the factors available on the account to be used as a MFA challange.", + "demo": "users\/list-mfa-factors.md", + "public": true + } + ], "auth": { "Project": [] } @@ -57172,98 +63461,235 @@ "security": [ { "Project": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<TEAM_ID>" - }, - "in": "path" - }, - { - "name": "membershipId", - "description": "Membership ID.", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<MEMBERSHIP_ID>" + "x-example": "<USER_ID>" }, "in": "path" } + ] + } + }, + "\/users\/{userId}\/mfa\/recovery-codes": { + "get": { + "summary": "Get MFA recovery codes", + "operationId": "usersGetMfaRecoveryCodes", + "tags": [ + "users" ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "type": "string", - "description": "User ID.", - "x-example": "<USER_ID>" - }, - "secret": { - "type": "string", - "description": "Secret key.", - "x-example": "<SECRET>" - } - }, - "required": [ - "userId", - "secret" - ] + "description": "Get recovery codes that can be used as backup for MFA flow by User ID. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", + "responses": { + "200": { + "description": "MFA Recovery Codes", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/mfaRecoveryCodes" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "method": "getMfaRecoveryCodes", + "group": "mfa", + "weight": 136, + "cookies": false, + "type": "", + "demo": "users\/get-mfa-recovery-codes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-mfa-recovery-codes.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.getMFARecoveryCodes" + }, + "methods": [ + { + "name": "getMfaRecoveryCodes", + "namespace": "users", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Get recovery codes that can be used as backup for MFA flow by User ID. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", + "demo": "users\/get-mfa-recovery-codes.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.getMFARecoveryCodes" } + }, + { + "name": "getMFARecoveryCodes", + "namespace": "users", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Get recovery codes that can be used as backup for MFA flow by User ID. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", + "demo": "users\/get-mfa-recovery-codes.md", + "public": true } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<USER_ID>" + }, + "in": "path" } - } - } - }, - "\/teams\/{teamId}\/prefs": { - "get": { - "summary": "Get team preferences", - "operationId": "teamsGetPrefs", + ] + }, + "put": { + "summary": "Update MFA recovery codes (regenerate)", + "operationId": "usersUpdateMfaRecoveryCodes", "tags": [ - "teams" + "users" ], - "description": "Get the team's shared preferences by its unique ID. If a preference doesn't need to be shared by all team members, prefer storing them in [user preferences](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#getPrefs).", + "description": "Regenerate recovery codes that can be used as backup for MFA flow by User ID. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", "responses": { "200": { - "description": "Preferences", + "description": "MFA Recovery Codes", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/preferences" + "$ref": "#\/components\/schemas\/mfaRecoveryCodes" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "getPrefs", - "group": "teams", - "weight": 109, + "method": "updateMfaRecoveryCodes", + "group": "mfa", + "weight": 138, "cookies": false, "type": "", - "demo": "teams\/get-prefs.md", + "demo": "users\/update-mfa-recovery-codes.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "users.write", "platforms": [ "console", - "client", "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-prefs.md", + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-mfa-recovery-codes.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.updateMFARecoveryCodes" + }, + "methods": [ + { + "name": "updateMfaRecoveryCodes", + "namespace": "users", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Regenerate recovery codes that can be used as backup for MFA flow by User ID. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", + "demo": "users\/update-mfa-recovery-codes.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.updateMFARecoveryCodes" + } + }, + { + "name": "updateMFARecoveryCodes", + "namespace": "users", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Regenerate recovery codes that can be used as backup for MFA flow by User ID. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", + "demo": "users\/update-mfa-recovery-codes.md", + "public": false + } + ], "auth": { "Project": [] } @@ -57271,61 +63697,116 @@ "security": [ { "Project": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<TEAM_ID>" + "x-example": "<USER_ID>" }, "in": "path" } ] }, - "put": { - "summary": "Update preferences", - "operationId": "teamsUpdatePrefs", + "patch": { + "summary": "Create MFA recovery codes", + "operationId": "usersCreateMfaRecoveryCodes", "tags": [ - "teams" + "users" ], - "description": "Update the team's preferences by its unique ID. The object you pass is stored as is and replaces any previous value. The maximum allowed prefs size is 64kB and throws an error if exceeded.", + "description": "Generate recovery codes used as backup for MFA flow for User ID. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method by client SDK.", "responses": { - "200": { - "description": "Preferences", + "201": { + "description": "MFA Recovery Codes", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/preferences" + "$ref": "#\/components\/schemas\/mfaRecoveryCodes" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "updatePrefs", - "group": "teams", - "weight": 111, + "method": "createMfaRecoveryCodes", + "group": "mfa", + "weight": 137, "cookies": false, "type": "", - "demo": "teams\/update-prefs.md", + "demo": "users\/create-mfa-recovery-codes.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": "users.write", "platforms": [ "console", - "client", "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-prefs.md", + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-mfa-recovery-codes.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.createMFARecoveryCodes" + }, + "methods": [ + { + "name": "createMfaRecoveryCodes", + "namespace": "users", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Generate recovery codes used as backup for MFA flow for User ID. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method by client SDK.", + "demo": "users\/create-mfa-recovery-codes.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.createMFARecoveryCodes" + } + }, + { + "name": "createMFARecoveryCodes", + "namespace": "users", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Generate recovery codes used as backup for MFA flow for User ID. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method by client SDK.", + "demo": "users\/create-mfa-recovery-codes.md", + "public": true + } + ], "auth": { "Project": [] } @@ -57333,57 +63814,38 @@ "security": [ { "Project": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<TEAM_ID>" + "x-example": "<USER_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "prefs": { - "type": "object", - "description": "Prefs key-value JSON object.", - "x-example": "{}" - } - }, - "required": [ - "prefs" - ] - } - } - } - } + ] } }, - "\/tokens\/buckets\/{bucketId}\/files\/{fileId}": { - "get": { - "summary": "List tokens", - "operationId": "tokensList", + "\/users\/{userId}\/name": { + "patch": { + "summary": "Update name", + "operationId": "usersUpdateName", "tags": [ - "tokens" + "users" ], - "description": "List all the tokens created for a specific file or bucket. You can use the query params to filter your results.", + "description": "Update the user name by its unique ID.", "responses": { "200": { - "description": "Resource Tokens List", + "description": "User", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/resourceTokenList" + "$ref": "#\/components\/schemas\/user" } } } @@ -57391,22 +63853,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "list", - "group": "files", - "weight": 525, + "method": "updateName", + "group": "users", + "weight": 127, "cookies": false, "type": "", - "demo": "tokens\/list.md", + "demo": "users\/update-name.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "tokens.read", + "scope": "users.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-name.md", "auth": { "Project": [] } @@ -57419,65 +63882,52 @@ ], "parameters": [ { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", - "required": true, - "schema": { - "type": "string", - "x-example": "<BUCKET_ID>" - }, - "in": "path" - }, - { - "name": "fileId", - "description": "File unique ID.", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<FILE_ID>" + "x-example": "<USER_ID>" }, "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: expire", - "required": false, - "schema": { - "type": "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", - "x-example": false, - "default": true - }, - "in": "query" } - ] - }, - "post": { - "summary": "Create file token", - "operationId": "tokensCreateFileToken", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "User name. Max length: 128 chars.", + "x-example": "<NAME>" + } + }, + "required": [ + "name" + ] + } + } + } + } + } + }, + "\/users\/{userId}\/password": { + "patch": { + "summary": "Update password", + "operationId": "usersUpdatePassword", "tags": [ - "tokens" + "users" ], - "description": "Create a new token. A token is linked to a file. Token can be passed as a request URL search parameter.", + "description": "Update the user password by its unique ID.", "responses": { - "201": { - "description": "ResourceToken", + "200": { + "description": "User", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/resourceToken" + "$ref": "#\/components\/schemas\/user" } } } @@ -57485,22 +63935,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "createFileToken", - "group": "files", - "weight": 523, + "method": "updatePassword", + "group": "users", + "weight": 128, "cookies": false, "type": "", - "demo": "tokens\/create-file-token.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "tokens.write", + "demo": "users\/update-password.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-password.md", "auth": { "Project": [] } @@ -57513,22 +63964,12 @@ ], "parameters": [ { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", - "required": true, - "schema": { - "type": "string", - "x-example": "<BUCKET_ID>" - }, - "in": "path" - }, - { - "name": "fileId", - "description": "File unique ID.", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<FILE_ID>" + "x-example": "<USER_ID>" }, "in": "path" } @@ -57539,34 +63980,36 @@ "schema": { "type": "object", "properties": { - "expire": { + "password": { "type": "string", - "description": "Token expiry date", - "x-example": null, - "x-nullable": true + "description": "New user password. Must be at least 8 chars.", + "x-example": null } - } + }, + "required": [ + "password" + ] } } } } } }, - "\/tokens\/{tokenId}": { - "get": { - "summary": "Get token", - "operationId": "tokensGet", + "\/users\/{userId}\/phone": { + "patch": { + "summary": "Update phone", + "operationId": "usersUpdatePhone", "tags": [ - "tokens" + "users" ], - "description": "Get a token by its unique ID.", + "description": "Update the user phone by its unique ID.", "responses": { "200": { - "description": "ResourceToken", + "description": "User", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/resourceToken" + "$ref": "#\/components\/schemas\/user" } } } @@ -57574,22 +64017,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": "tokens", - "weight": 524, + "method": "updatePhone", + "group": "users", + "weight": 130, "cookies": false, "type": "", - "demo": "tokens\/get.md", + "demo": "users\/update-phone.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "tokens.read", + "scope": "users.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-phone.md", "auth": { "Project": [] } @@ -57602,31 +64046,53 @@ ], "parameters": [ { - "name": "tokenId", - "description": "Token ID.", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<TOKEN_ID>" + "x-example": "<USER_ID>" }, "in": "path" } - ] - }, - "patch": { - "summary": "Update token", - "operationId": "tokensUpdate", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "number": { + "type": "string", + "description": "User phone number.", + "x-example": "+12065550100", + "format": "phone" + } + }, + "required": [ + "number" + ] + } + } + } + } + } + }, + "\/users\/{userId}\/prefs": { + "get": { + "summary": "Get user preferences", + "operationId": "usersGetPrefs", "tags": [ - "tokens" + "users" ], - "description": "Update a token by its unique ID. Use this endpoint to update a token's expiry date.", + "description": "Get the user preferences by its unique ID.", "responses": { "200": { - "description": "ResourceToken", + "description": "Preferences", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/resourceToken" + "$ref": "#\/components\/schemas\/preferences" } } } @@ -57634,22 +64100,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "update", - "group": "tokens", - "weight": 526, + "method": "getPrefs", + "group": "users", + "weight": 117, "cookies": false, "type": "", - "demo": "tokens\/update.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "tokens.write", + "demo": "users\/get-prefs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user-prefs.md", "auth": { "Project": [] } @@ -57662,64 +64129,55 @@ ], "parameters": [ { - "name": "tokenId", - "description": "Token unique ID.", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<TOKEN_ID>" + "x-example": "<USER_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "expire": { - "type": "string", - "description": "File token expiry date", - "x-example": null, - "x-nullable": true - } - } - } - } - } - } + ] }, - "delete": { - "summary": "Delete token", - "operationId": "tokensDelete", + "patch": { + "summary": "Update user preferences", + "operationId": "usersUpdatePrefs", "tags": [ - "tokens" + "users" ], - "description": "Delete a token by its unique ID.", + "description": "Update the user preferences by its unique ID. 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": { - "204": { - "description": "No content" + "200": { + "description": "Preferences", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/preferences" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": "tokens", - "weight": 527, + "method": "updatePrefs", + "group": "users", + "weight": 132, "cookies": false, "type": "", - "demo": "tokens\/delete.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "tokens.write", + "demo": "users\/update-prefs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-prefs.md", "auth": { "Project": [] } @@ -57732,33 +64190,52 @@ ], "parameters": [ { - "name": "tokenId", - "description": "Token ID.", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<TOKEN_ID>" + "x-example": "<USER_ID>" }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "prefs": { + "type": "object", + "description": "Prefs key-value JSON object.", + "x-example": "{}" + } + }, + "required": [ + "prefs" + ] + } + } + } + } } }, - "\/users": { + "\/users\/{userId}\/sessions": { "get": { - "summary": "List users", - "operationId": "usersList", + "summary": "List user sessions", + "operationId": "usersListSessions", "tags": [ "users" ], - "description": "Get a list of all the project's users. You can use the query params to filter your results.", + "description": "Get the user sessions list by its unique ID.", "responses": { "200": { - "description": "Users List", + "description": "Sessions List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/userList" + "$ref": "#\/components\/schemas\/sessionList" } } } @@ -57766,12 +64243,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "list", - "group": "users", - "weight": 129, + "method": "listSessions", + "group": "sessions", + "weight": 119, "cookies": false, "type": "", - "demo": "users\/list.md", + "demo": "users\/list-sessions.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -57782,7 +64259,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-users.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-user-sessions.md", "auth": { "Project": [] } @@ -57795,28 +64272,14 @@ ], "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, email, phone, status, passwordUpdate, registration, emailVerification, phoneVerification, labels", - "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, + "name": "userId", + "description": "User ID.", + "required": true, "schema": { "type": "string", - "x-example": "<SEARCH>", - "default": "" + "x-example": "<USER_ID>" }, - "in": "query" + "in": "path" }, { "name": "total", @@ -57832,19 +64295,19 @@ ] }, "post": { - "summary": "Create user", - "operationId": "usersCreate", + "summary": "Create session", + "operationId": "usersCreateSession", "tags": [ "users" ], - "description": "Create a new user.", + "description": "Creates a session for a user. Returns an immediately usable session object.\n\nIf you want to generate a token for a custom authentication flow, use the [POST \/users\/{userId}\/tokens](https:\/\/appwrite.io\/docs\/server\/users#createToken) endpoint.", "responses": { "201": { - "description": "User", + "description": "Session", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/user" + "$ref": "#\/components\/schemas\/session" } } } @@ -57852,12 +64315,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "create", - "group": "users", - "weight": 120, + "method": "createSession", + "group": "sessions", + "weight": 140, "cookies": false, "type": "", - "demo": "users\/create.md", + "demo": "users\/create-session.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -57868,7 +64331,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-user.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-session.md", "auth": { "Project": [] } @@ -57879,79 +64342,95 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "type": "string", - "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.", - "x-example": "<USER_ID>" - }, - "email": { - "type": "string", - "description": "User email.", - "x-example": "email@example.com", - "format": "email", - "x-nullable": true - }, - "phone": { - "type": "string", - "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "x-example": "+12065550100", - "format": "phone", - "x-nullable": true - }, - "password": { - "type": "string", - "description": "Plain text user password. Must be at least 8 chars.", - "x-example": null - }, - "name": { - "type": "string", - "description": "User name. Max length: 128 chars.", - "x-example": "<NAME>" - } - }, - "required": [ - "userId" - ] - } - } + "parameters": [ + { + "name": "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.", + "required": true, + "schema": { + "type": "string", + "x-example": "<USER_ID>" + }, + "in": "path" } - } + ] + }, + "delete": { + "summary": "Delete user sessions", + "operationId": "usersDeleteSessions", + "tags": [ + "users" + ], + "description": "Delete all user's sessions by using the user's unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteSessions", + "group": "sessions", + "weight": 143, + "cookies": false, + "type": "", + "demo": "users\/delete-sessions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-user-sessions.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<USER_ID>" + }, + "in": "path" + } + ] } }, - "\/users\/argon2": { - "post": { - "summary": "Create user with Argon2 password", - "operationId": "usersCreateArgon2User", + "\/users\/{userId}\/sessions\/{sessionId}": { + "delete": { + "summary": "Delete user session", + "operationId": "usersDeleteSession", "tags": [ "users" ], - "description": "Create a new user. Password provided must be hashed with the [Argon2](https:\/\/en.wikipedia.org\/wiki\/Argon2) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "description": "Delete a user sessions by its unique ID.", "responses": { - "201": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "createArgon2User", - "group": "users", - "weight": 123, + "method": "deleteSession", + "group": "sessions", + "weight": 142, "cookies": false, "type": "", - "demo": "users\/create-argon-2-user.md", + "demo": "users\/delete-session.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -57962,7 +64441,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-argon2-user.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-user-session.md", "auth": { "Project": [] } @@ -57973,56 +64452,40 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "type": "string", - "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.", - "x-example": "<USER_ID>" - }, - "email": { - "type": "string", - "description": "User email.", - "x-example": "email@example.com", - "format": "email" - }, - "password": { - "type": "string", - "description": "User password hashed using Argon2.", - "x-example": "password", - "format": "password" - }, - "name": { - "type": "string", - "description": "User name. Max length: 128 chars.", - "x-example": "<NAME>" - } - }, - "required": [ - "userId", - "email", - "password" - ] - } - } + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<USER_ID>" + }, + "in": "path" + }, + { + "name": "sessionId", + "description": "Session ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<SESSION_ID>" + }, + "in": "path" } - } + ] } }, - "\/users\/bcrypt": { - "post": { - "summary": "Create user with bcrypt password", - "operationId": "usersCreateBcryptUser", + "\/users\/{userId}\/status": { + "patch": { + "summary": "Update user status", + "operationId": "usersUpdateStatus", "tags": [ "users" ], - "description": "Create a new user. Password provided must be hashed with the [Bcrypt](https:\/\/en.wikipedia.org\/wiki\/Bcrypt) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "description": "Update the user status by its unique ID. Use this endpoint as an alternative to deleting a user if you want to keep user's ID reserved.", "responses": { - "201": { + "200": { "description": "User", "content": { "application\/json": { @@ -58035,12 +64498,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "createBcryptUser", + "method": "updateStatus", "group": "users", - "weight": 121, + "weight": 124, "cookies": false, "type": "", - "demo": "users\/create-bcrypt-user.md", + "demo": "users\/update-status.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -58051,7 +64514,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-bcrypt-user.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-status.md", "auth": { "Project": [] } @@ -58062,39 +64525,32 @@ "Key": [] } ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<USER_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "userId": { - "type": "string", - "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.", - "x-example": "<USER_ID>" - }, - "email": { - "type": "string", - "description": "User email.", - "x-example": "email@example.com", - "format": "email" - }, - "password": { - "type": "string", - "description": "User password hashed using Bcrypt.", - "x-example": "password", - "format": "password" - }, - "name": { - "type": "string", - "description": "User name. Max length: 128 chars.", - "x-example": "<NAME>" + "status": { + "type": "boolean", + "description": "User Status. To activate the user pass `true` and to block the user pass `false`.", + "x-example": false } }, "required": [ - "userId", - "email", - "password" + "status" ] } } @@ -58102,21 +64558,21 @@ } } }, - "\/users\/identities": { + "\/users\/{userId}\/targets": { "get": { - "summary": "List identities", - "operationId": "usersListIdentities", + "summary": "List user targets", + "operationId": "usersListTargets", "tags": [ "users" ], - "description": "Get identities for all users.", + "description": "List the messaging targets that are associated with a user.", "responses": { "200": { - "description": "Identities List", + "description": "Target list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/identityList" + "$ref": "#\/components\/schemas\/targetList" } } } @@ -58124,23 +64580,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "listIdentities", - "group": "identities", - "weight": 137, + "method": "listTargets", + "group": "targets", + "weight": 122, "cookies": false, "type": "", - "demo": "users\/list-identities.md", + "demo": "users\/list-targets.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": "targets.read", "platforms": [ - "console", - "server" + "server", + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-identities.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-user-targets.md", "auth": { "Project": [] } @@ -58152,9 +64608,19 @@ } ], "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<USER_ID>" + }, + "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: userId, provider, providerUid, providerEmail, providerAccessTokenExpiry", + "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, providerId, identifier, providerType", "required": false, "schema": { "type": "array", @@ -58165,17 +64631,6 @@ }, "in": "query" }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "schema": { - "type": "string", - "x-example": "<SEARCH>", - "default": "" - }, - "in": "query" - }, { "name": "total", "description": "When set to false, the total count returned will be 0 and will not be calculated.", @@ -58187,41 +64642,157 @@ }, "in": "query" } - ] + ] + }, + "post": { + "summary": "Create user target", + "operationId": "usersCreateTarget", + "tags": [ + "users" + ], + "description": "Create a messaging target.", + "responses": { + "201": { + "description": "Target", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/target" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createTarget", + "group": "targets", + "weight": 114, + "cookies": false, + "type": "", + "demo": "users\/create-target.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "targets.write", + "platforms": [ + "server", + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-target.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "targetId": { + "type": "string", + "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.", + "x-example": "<TARGET_ID>" + }, + "providerType": { + "type": "string", + "description": "The target provider type. Can be one of the following: `email`, `sms` or `push`.", + "x-example": "email", + "enum": [ + "email", + "sms", + "push" + ], + "x-enum-name": "MessagingProviderType", + "x-enum-keys": [] + }, + "identifier": { + "type": "string", + "description": "The target identifier (token, email, phone etc.)", + "x-example": "<IDENTIFIER>" + }, + "providerId": { + "type": "string", + "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.", + "x-example": "<PROVIDER_ID>" + }, + "name": { + "type": "string", + "description": "Target name. Max length: 128 chars. For example: My Awesome App Galaxy S23.", + "x-example": "<NAME>" + } + }, + "required": [ + "targetId", + "providerType", + "identifier" + ] + } + } + } + } } }, - "\/users\/identities\/{identityId}": { - "delete": { - "summary": "Delete identity", - "operationId": "usersDeleteIdentity", + "\/users\/{userId}\/targets\/{targetId}": { + "get": { + "summary": "Get user target", + "operationId": "usersGetTarget", "tags": [ "users" ], - "description": "Delete an identity by its unique ID.", + "description": "Get a user's push notification target by ID.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Target", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/target" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteIdentity", - "group": "identities", - "weight": 160, + "method": "getTarget", + "group": "targets", + "weight": 118, "cookies": false, "type": "", - "demo": "users\/delete-identity.md", + "demo": "users\/get-target.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "targets.read", "platforms": [ - "console", - "server" + "server", + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-identity.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user-target.md", "auth": { "Project": [] } @@ -58234,33 +64805,41 @@ ], "parameters": [ { - "name": "identityId", - "description": "Identity ID.", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<IDENTITY_ID>" + "x-example": "<USER_ID>" + }, + "in": "path" + }, + { + "name": "targetId", + "description": "Target ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TARGET_ID>" }, "in": "path" } ] - } - }, - "\/users\/md5": { - "post": { - "summary": "Create user with MD5 password", - "operationId": "usersCreateMD5User", + }, + "patch": { + "summary": "Update user target", + "operationId": "usersUpdateTarget", "tags": [ "users" ], - "description": "Create a new user. Password provided must be hashed with the [MD5](https:\/\/en.wikipedia.org\/wiki\/MD5) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "description": "Update a messaging target.", "responses": { - "201": { - "description": "User", + "200": { + "description": "Target", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/user" + "$ref": "#\/components\/schemas\/target" } } } @@ -58268,23 +64847,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "createMD5User", - "group": "users", - "weight": 122, + "method": "updateTarget", + "group": "targets", + "weight": 133, "cookies": false, "type": "", - "demo": "users\/create-md-5-user.md", + "demo": "users\/update-target.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "targets.write", "platforms": [ - "console", - "server" + "server", + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-md5-user.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-target.md", "auth": { "Project": [] } @@ -58295,61 +64874,135 @@ "Key": [] } ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<USER_ID>" + }, + "in": "path" + }, + { + "name": "targetId", + "description": "Target ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TARGET_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "userId": { - "type": "string", - "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.", - "x-example": "<USER_ID>" - }, - "email": { + "identifier": { "type": "string", - "description": "User email.", - "x-example": "email@example.com", - "format": "email" + "description": "The target identifier (token, email, phone etc.)", + "x-example": "<IDENTIFIER>" }, - "password": { + "providerId": { "type": "string", - "description": "User password hashed using MD5.", - "x-example": "password", - "format": "password" + "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.", + "x-example": "<PROVIDER_ID>" }, "name": { "type": "string", - "description": "User name. Max length: 128 chars.", + "description": "Target name. Max length: 128 chars. For example: My Awesome App Galaxy S23.", "x-example": "<NAME>" } - }, - "required": [ - "userId", - "email", - "password" - ] + } } } } } + }, + "delete": { + "summary": "Delete user target", + "operationId": "usersDeleteTarget", + "tags": [ + "users" + ], + "description": "Delete a messaging target.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteTarget", + "group": "targets", + "weight": 145, + "cookies": false, + "type": "", + "demo": "users\/delete-target.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "targets.write", + "platforms": [ + "server", + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-target.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<USER_ID>" + }, + "in": "path" + }, + { + "name": "targetId", + "description": "Target ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TARGET_ID>" + }, + "in": "path" + } + ] } }, - "\/users\/phpass": { + "\/users\/{userId}\/tokens": { "post": { - "summary": "Create user with PHPass password", - "operationId": "usersCreatePHPassUser", + "summary": "Create token", + "operationId": "usersCreateToken", "tags": [ "users" ], - "description": "Create a new user. Password provided must be hashed with the [PHPass](https:\/\/www.openwall.com\/phpass\/) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "description": "Returns a token with a secret key for creating a session. Use the user ID and secret and submit a request to the [PUT \/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process.\n", "responses": { "201": { - "description": "User", + "description": "Token", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/user" + "$ref": "#\/components\/schemas\/token" } } } @@ -58357,12 +65010,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "createPHPassUser", - "group": "users", - "weight": 125, + "method": "createToken", + "group": "sessions", + "weight": 141, "cookies": false, "type": "", - "demo": "users\/create-ph-pass-user.md", + "demo": "users\/create-token.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -58373,7 +65026,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-phpass-user.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-token.md", "auth": { "Project": [] } @@ -58384,56 +65037,53 @@ "Key": [] } ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<USER_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "userId": { - "type": "string", - "description": "User ID. Choose a custom ID or pass the string `ID.unique()`to auto generate it. 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.", - "x-example": "<USER_ID>" - }, - "email": { - "type": "string", - "description": "User email.", - "x-example": "email@example.com", - "format": "email" - }, - "password": { - "type": "string", - "description": "User password hashed using PHPass.", - "x-example": "password", - "format": "password" + "length": { + "type": "integer", + "description": "Token length in characters. The default length is 6 characters", + "x-example": 4, + "format": "int32" }, - "name": { - "type": "string", - "description": "User name. Max length: 128 chars.", - "x-example": "<NAME>" + "expire": { + "type": "integer", + "description": "Token expiration period in seconds. The default expiration is 15 minutes.", + "x-example": 60, + "format": "int32" } - }, - "required": [ - "userId", - "email", - "password" - ] + } } } } } } }, - "\/users\/scrypt": { - "post": { - "summary": "Create user with Scrypt password", - "operationId": "usersCreateScryptUser", + "\/users\/{userId}\/verification": { + "patch": { + "summary": "Update email verification", + "operationId": "usersUpdateEmailVerification", "tags": [ "users" ], - "description": "Create a new user. Password provided must be hashed with the [Scrypt](https:\/\/github.com\/Tarsnap\/scrypt) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "description": "Update the user email verification status by its unique ID.", "responses": { - "201": { + "200": { "description": "User", "content": { "application\/json": { @@ -58446,12 +65096,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "createScryptUser", + "method": "updateEmailVerification", "group": "users", - "weight": 126, + "weight": 131, "cookies": false, "type": "", - "demo": "users\/create-scrypt-user.md", + "demo": "users\/update-email-verification.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -58462,7 +65112,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-scrypt-user.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-email-verification.md", "auth": { "Project": [] } @@ -58473,73 +65123,32 @@ "Key": [] } ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<USER_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "userId": { - "type": "string", - "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.", - "x-example": "<USER_ID>" - }, - "email": { - "type": "string", - "description": "User email.", - "x-example": "email@example.com", - "format": "email" - }, - "password": { - "type": "string", - "description": "User password hashed using Scrypt.", - "x-example": "password", - "format": "password" - }, - "passwordSalt": { - "type": "string", - "description": "Optional salt used to hash password.", - "x-example": "<PASSWORD_SALT>" - }, - "passwordCpu": { - "type": "integer", - "description": "Optional CPU cost used to hash password.", - "x-example": null, - "format": "int32" - }, - "passwordMemory": { - "type": "integer", - "description": "Optional memory cost used to hash password.", - "x-example": null, - "format": "int32" - }, - "passwordParallel": { - "type": "integer", - "description": "Optional parallelization cost used to hash password.", - "x-example": null, - "format": "int32" - }, - "passwordLength": { - "type": "integer", - "description": "Optional hash length used to hash password.", - "x-example": null, - "format": "int32" - }, - "name": { - "type": "string", - "description": "User name. Max length: 128 chars.", - "x-example": "<NAME>" + "emailVerification": { + "type": "boolean", + "description": "User email verification status.", + "x-example": false } }, "required": [ - "userId", - "email", - "password", - "passwordSalt", - "passwordCpu", - "passwordMemory", - "passwordParallel", - "passwordLength" + "emailVerification" ] } } @@ -58547,16 +65156,16 @@ } } }, - "\/users\/scrypt-modified": { - "post": { - "summary": "Create user with Scrypt modified password", - "operationId": "usersCreateScryptModifiedUser", + "\/users\/{userId}\/verification\/phone": { + "patch": { + "summary": "Update phone verification", + "operationId": "usersUpdatePhoneVerification", "tags": [ "users" ], - "description": "Create a new user. Password provided must be hashed with the [Scrypt Modified](https:\/\/gist.github.com\/Meldiron\/eecf84a0225eccb5a378d45bb27462cc) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "description": "Update the user phone verification status by its unique ID.", "responses": { - "201": { + "200": { "description": "User", "content": { "application\/json": { @@ -58569,12 +65178,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "createScryptModifiedUser", + "method": "updatePhoneVerification", "group": "users", - "weight": 127, + "weight": 126, "cookies": false, "type": "", - "demo": "users\/create-scrypt-modified-user.md", + "demo": "users\/update-phone-verification.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -58585,7 +65194,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-scrypt-modified-user.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-phone-verification.md", "auth": { "Project": [] } @@ -58596,57 +65205,32 @@ "Key": [] } ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<USER_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "userId": { - "type": "string", - "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.", - "x-example": "<USER_ID>" - }, - "email": { - "type": "string", - "description": "User email.", - "x-example": "email@example.com", - "format": "email" - }, - "password": { - "type": "string", - "description": "User password hashed using Scrypt Modified.", - "x-example": "password", - "format": "password" - }, - "passwordSalt": { - "type": "string", - "description": "Salt used to hash password.", - "x-example": "<PASSWORD_SALT>" - }, - "passwordSaltSeparator": { - "type": "string", - "description": "Salt separator used to hash password.", - "x-example": "<PASSWORD_SALT_SEPARATOR>" - }, - "passwordSignerKey": { - "type": "string", - "description": "Signer key used to hash password.", - "x-example": "<PASSWORD_SIGNER_KEY>" - }, - "name": { - "type": "string", - "description": "User name. Max length: 128 chars.", - "x-example": "<NAME>" + "phoneVerification": { + "type": "boolean", + "description": "User phone verification status.", + "x-example": false } }, "required": [ - "userId", - "email", - "password", - "passwordSalt", - "passwordSaltSeparator", - "passwordSignerKey" + "phoneVerification" ] } } @@ -58654,21 +65238,21 @@ } } }, - "\/users\/sha": { + "\/vcs\/github\/installations\/{installationId}\/detections": { "post": { - "summary": "Create user with SHA password", - "operationId": "usersCreateSHAUser", + "summary": "Create repository detection", + "operationId": "vcsCreateRepositoryDetection", "tags": [ - "users" + "vcs" ], - "description": "Create a new user. Password provided must be hashed with the [SHA](https:\/\/en.wikipedia.org\/wiki\/Secure_Hash_Algorithm) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "description": "Analyze a GitHub repository to automatically detect the programming language and runtime environment. This endpoint scans the repository's files and language statistics to determine the appropriate runtime settings for your function. The GitHub installation must be properly configured and the repository must be accessible through your installation for this endpoint to work.", "responses": { - "201": { - "description": "User", + "200": { + "description": "DetectionFramework", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/user" + "$ref": "#\/components\/schemas\/detectionFramework" } } } @@ -58676,31 +65260,41 @@ }, "deprecated": false, "x-appwrite": { - "method": "createSHAUser", - "group": "users", - "weight": 124, + "method": "createRepositoryDetection", + "group": "repositories", + "weight": 623, "cookies": false, "type": "", - "demo": "users\/create-sha-user.md", + "demo": "vcs\/create-repository-detection.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "vcs.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-sha-user.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/create-repository-detection.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] + } + ], + "parameters": [ + { + "name": "installationId", + "description": "Installation Id", + "required": true, + "schema": { + "type": "string", + "x-example": "<INSTALLATION_ID>" + }, + "in": "path" } ], "requestBody": { @@ -58709,53 +65303,31 @@ "schema": { "type": "object", "properties": { - "userId": { - "type": "string", - "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.", - "x-example": "<USER_ID>" - }, - "email": { - "type": "string", - "description": "User email.", - "x-example": "email@example.com", - "format": "email" - }, - "password": { + "providerRepositoryId": { "type": "string", - "description": "User password hashed using SHA.", - "x-example": "password", - "format": "password" + "description": "Repository Id", + "x-example": "<PROVIDER_REPOSITORY_ID>" }, - "passwordVersion": { + "type": { "type": "string", - "description": "Optional SHA version used to hash password. Allowed values are: 'sha1', 'sha224', 'sha256', 'sha384', 'sha512\/224', 'sha512\/256', 'sha512', 'sha3-224', 'sha3-256', 'sha3-384', 'sha3-512'", - "x-example": "sha1", + "description": "Detector type. Must be one of the following: runtime, framework", + "x-example": "runtime", "enum": [ - "sha1", - "sha224", - "sha256", - "sha384", - "sha512\/224", - "sha512\/256", - "sha512", - "sha3-224", - "sha3-256", - "sha3-384", - "sha3-512" + "runtime", + "framework" ], - "x-enum-name": "PasswordHash", + "x-enum-name": "VCSDetectionType", "x-enum-keys": [] }, - "name": { + "providerRootDirectory": { "type": "string", - "description": "User name. Max length: 128 chars.", - "x-example": "<NAME>" + "description": "Path to Root Directory", + "x-example": "<PROVIDER_ROOT_DIRECTORY>" } }, "required": [ - "userId", - "email", - "password" + "providerRepositoryId", + "type" ] } } @@ -58763,21 +65335,21 @@ } } }, - "\/users\/usage": { + "\/vcs\/github\/installations\/{installationId}\/providerRepositories": { "get": { - "summary": "Get users usage stats", - "operationId": "usersGetUsage", + "summary": "List repositories", + "operationId": "vcsListRepositories", "tags": [ - "users" + "vcs" ], - "description": "Get usage metrics and statistics for all users in the project. You can view the total number of users and sessions. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.\n", + "description": "Get a list of GitHub repositories available through your installation. This endpoint returns repositories with their basic information, detected runtime environments, and latest push dates. You can optionally filter repositories using a search term. Each repository's runtime is automatically detected based on its contents and language statistics. The GitHub installation must be properly configured for this endpoint to work.", "responses": { "200": { - "description": "UsageUsers", + "description": "Framework Provider Repositories List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/usageUsers" + "$ref": "#\/components\/schemas\/providerRepositoryFrameworkList" } } } @@ -58785,22 +65357,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getUsage", - "group": null, - "weight": 162, + "method": "listRepositories", + "group": "repositories", + "weight": 620, "cookies": false, "type": "", - "demo": "users\/get-usage.md", + "demo": "vcs\/list-repositories.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": "vcs.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-usage.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/list-repositories.md", "auth": { "Project": [] } @@ -58812,45 +65384,71 @@ ], "parameters": [ { - "name": "range", - "description": "Date range.", - "required": false, + "name": "installationId", + "description": "Installation Id", + "required": true, "schema": { "type": "string", - "x-example": "24h", + "x-example": "<INSTALLATION_ID>" + }, + "in": "path" + }, + { + "name": "type", + "description": "Detector type. Must be one of the following: runtime, framework", + "required": true, + "schema": { + "type": "string", + "x-example": "runtime", "enum": [ - "24h", - "30d", - "90d" - ], - "x-enum-name": "UsageRange", - "x-enum-keys": [ - "Twenty Four Hours", - "Thirty Days", - "Ninety Days" + "runtime", + "framework" ], - "default": "30d" + "x-enum-name": "VCSDetectionType", + "x-enum-keys": [] + }, + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "x-example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, + { + "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" } ] - } - }, - "\/users\/{userId}": { - "get": { - "summary": "Get user", - "operationId": "usersGet", + }, + "post": { + "summary": "Create repository", + "operationId": "vcsCreateRepository", "tags": [ - "users" + "vcs" ], - "description": "Get a user by its unique ID.", + "description": "Create a new GitHub repository through your installation. This endpoint allows you to create either a public or private repository by specifying a name and visibility setting. The repository will be created under your GitHub user account or organization, depending on your installation type. The GitHub installation must be properly configured and have the necessary permissions for repository creation.", "responses": { "200": { - "description": "User", + "description": "ProviderRepository", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/user" + "$ref": "#\/components\/schemas\/providerRepository" } } } @@ -58858,116 +65456,156 @@ }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": "users", - "weight": 130, + "method": "createRepository", + "group": "repositories", + "weight": 618, "cookies": false, "type": "", - "demo": "users\/get.md", + "demo": "vcs\/create-repository.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": "vcs.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/create-repository.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "installationId", + "description": "Installation Id", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<INSTALLATION_ID>" }, "in": "path" } - ] - }, - "delete": { - "summary": "Delete user", - "operationId": "usersDelete", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Repository name (slug)", + "x-example": "<NAME>" + }, + "private": { + "type": "boolean", + "description": "Mark repository public or private", + "x-example": false + } + }, + "required": [ + "name", + "private" + ] + } + } + } + } + } + }, + "\/vcs\/github\/installations\/{installationId}\/providerRepositories\/{providerRepositoryId}": { + "get": { + "summary": "Get repository", + "operationId": "vcsGetRepository", "tags": [ - "users" + "vcs" ], - "description": "Delete a user by its unique ID, thereby releasing it's ID. Since ID is released and can be reused, all user-related resources like documents or storage files should be deleted before user deletion. If you want to keep ID reserved, use the [updateStatus](https:\/\/appwrite.io\/docs\/server\/users#usersUpdateStatus) endpoint instead.", + "description": "Get detailed information about a specific GitHub repository from your installation. This endpoint returns repository details including its ID, name, visibility status, organization, and latest push date. The GitHub installation must be properly configured and have access to the requested repository for this endpoint to work.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "ProviderRepository", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/providerRepository" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": "users", - "weight": 158, + "method": "getRepository", + "group": "repositories", + "weight": 619, "cookies": false, "type": "", - "demo": "users\/delete.md", + "demo": "vcs\/get-repository.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "vcs.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/get-repository.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "installationId", + "description": "Installation Id", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<INSTALLATION_ID>" + }, + "in": "path" + }, + { + "name": "providerRepositoryId", + "description": "Repository Id", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROVIDER_REPOSITORY_ID>" }, "in": "path" } ] } }, - "\/users\/{userId}\/email": { - "patch": { - "summary": "Update email", - "operationId": "usersUpdateEmail", + "\/vcs\/github\/installations\/{installationId}\/providerRepositories\/{providerRepositoryId}\/branches": { + "get": { + "summary": "List repository branches", + "operationId": "vcsListRepositoryBranches", "tags": [ - "users" + "vcs" ], - "description": "Update the user email by its unique ID.", + "description": "Get a list of all branches from a GitHub repository in your installation. This endpoint returns the names of all branches in the repository and their total count. The GitHub installation must be properly configured and have access to the requested repository for this endpoint to work.\n", "responses": { "200": { - "description": "User", + "description": "Branches List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/user" + "$ref": "#\/components\/schemas\/branchList" } } } @@ -58975,82 +65613,70 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateEmail", - "group": "users", - "weight": 143, + "method": "listRepositoryBranches", + "group": "repositories", + "weight": 621, "cookies": false, "type": "", - "demo": "users\/update-email.md", + "demo": "vcs\/list-repository-branches.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "vcs.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-email.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/list-repository-branches.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "installationId", + "description": "Installation Id", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<INSTALLATION_ID>" + }, + "in": "path" + }, + { + "name": "providerRepositoryId", + "description": "Repository Id", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROVIDER_REPOSITORY_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "email": { - "type": "string", - "description": "User email.", - "x-example": "email@example.com", - "format": "email" - } - }, - "required": [ - "email" - ] - } - } - } - } + ] } }, - "\/users\/{userId}\/jwts": { - "post": { - "summary": "Create user JWT", - "operationId": "usersCreateJWT", + "\/vcs\/github\/installations\/{installationId}\/providerRepositories\/{providerRepositoryId}\/contents": { + "get": { + "summary": "Get files and directories of a VCS repository", + "operationId": "vcsGetRepositoryContents", "tags": [ - "users" + "vcs" ], - "description": "Use this endpoint to create a JSON Web Token for user by its unique ID. You can use the resulting JWT to authenticate on behalf of the user. The JWT secret will become invalid if the session it uses gets deleted.", + "description": "Get a list of files and directories from a GitHub repository connected to your project. This endpoint returns the contents of a specified repository path, including file names, sizes, and whether each item is a file or directory. The GitHub installation must be properly configured and the repository must be accessible through your installation for this endpoint to work.", "responses": { - "201": { - "description": "JWT", + "200": { + "description": "VCS Content List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/jwt" + "$ref": "#\/components\/schemas\/vcsContentList" } } } @@ -59058,126 +65684,135 @@ }, "deprecated": false, "x-appwrite": { - "method": "createJWT", - "group": "sessions", - "weight": 161, + "method": "getRepositoryContents", + "group": "repositories", + "weight": 622, "cookies": false, "type": "", - "demo": "users\/create-jwt.md", + "demo": "vcs\/get-repository-contents.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "vcs.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-user-jwt.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/get-repository-contents.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "installationId", + "description": "Installation Id", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<INSTALLATION_ID>" }, "in": "path" + }, + { + "name": "providerRepositoryId", + "description": "Repository Id", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROVIDER_REPOSITORY_ID>" + }, + "in": "path" + }, + { + "name": "providerRootDirectory", + "description": "Path to get contents of nested directory", + "required": false, + "schema": { + "type": "string", + "x-example": "<PROVIDER_ROOT_DIRECTORY>", + "default": "" + }, + "in": "query" + }, + { + "name": "providerReference", + "description": "Git reference (branch, tag, commit) to get contents from", + "required": false, + "schema": { + "type": "string", + "x-example": "<PROVIDER_REFERENCE>", + "default": "" + }, + "in": "query" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "sessionId": { - "type": "string", - "description": "Session ID. Use the string 'recent' to use the most recent session. Defaults to the most recent session.", - "x-example": "<SESSION_ID>" - }, - "duration": { - "type": "integer", - "description": "Time in seconds before JWT expires. Default duration is 900 seconds, and maximum is 3600 seconds.", - "x-example": 0, - "format": "int32" - } - } - } - } - } - } + ] } }, - "\/users\/{userId}\/labels": { - "put": { - "summary": "Update user labels", - "operationId": "usersUpdateLabels", + "\/vcs\/github\/installations\/{installationId}\/repositories\/{repositoryId}": { + "patch": { + "summary": "Update external deployment (authorize)", + "operationId": "vcsUpdateExternalDeployments", "tags": [ - "users" + "vcs" ], - "description": "Update the user labels by its unique ID. \n\nLabels can be used to grant access to resources. While teams are a way for user's to share access to a resource, labels can be defined by the developer to grant access without an invitation. See the [Permissions docs](https:\/\/appwrite.io\/docs\/permissions) for more info.", + "description": "Authorize and create deployments for a GitHub pull request in your project. This endpoint allows external contributions by creating deployments from pull requests, enabling preview environments for code review. The pull request must be open and not previously authorized. The GitHub installation must be properly configured and have access to both the repository and pull request for this endpoint to work.", "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateLabels", - "group": "users", - "weight": 139, + "method": "updateExternalDeployments", + "group": "repositories", + "weight": 813, "cookies": false, "type": "", - "demo": "users\/update-labels.md", + "demo": "vcs\/update-external-deployments.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "vcs.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-labels.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/update-external-deployments.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "installationId", + "description": "Installation Id", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<INSTALLATION_ID>" + }, + "in": "path" + }, + { + "name": "repositoryId", + "description": "VCS Repository Id", + "required": true, + "schema": { + "type": "string", + "x-example": "<REPOSITORY_ID>" }, "in": "path" } @@ -59188,17 +65823,14 @@ "schema": { "type": "object", "properties": { - "labels": { - "type": "array", - "description": "Array of user labels. Replaces the previous labels. Maximum of 1000 labels are allowed, each up to 36 alphanumeric characters long.", - "x-example": null, - "items": { - "type": "string" - } + "providerPullRequestId": { + "type": "string", + "description": "GitHub Pull Request Id", + "x-example": "<PROVIDER_PULL_REQUEST_ID>" } }, "required": [ - "labels" + "providerPullRequestId" ] } } @@ -59206,21 +65838,21 @@ } } }, - "\/users\/{userId}\/logs": { + "\/vcs\/installations": { "get": { - "summary": "List user logs", - "operationId": "usersListLogs", + "summary": "List installations", + "operationId": "vcsListInstallations", "tags": [ - "users" + "vcs" ], - "description": "Get the user activity logs list by its unique ID.", + "description": "List all VCS installations configured for the current project. This endpoint returns a list of installations including their provider, organization, and other configuration details.\n", "responses": { "200": { - "description": "Logs List", + "description": "Installations List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/logList" + "$ref": "#\/components\/schemas\/installationList" } } } @@ -59228,47 +65860,35 @@ }, "deprecated": false, "x-appwrite": { - "method": "listLogs", - "group": "logs", - "weight": 135, + "method": "listInstallations", + "group": "installations", + "weight": 616, "cookies": false, "type": "", - "demo": "users\/list-logs.md", + "demo": "vcs\/list-installations.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": "vcs.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-user-logs.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/list-installations.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<USER_ID>" - }, - "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). Only supported methods are limit and offset", + "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: provider, organization", "required": false, "schema": { "type": "array", @@ -59279,6 +65899,17 @@ }, "in": "query" }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "x-example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, { "name": "total", "description": "When set to false, the total count returned will be 0 and will not be calculated.", @@ -59293,21 +65924,21 @@ ] } }, - "\/users\/{userId}\/memberships": { + "\/vcs\/installations\/{installationId}": { "get": { - "summary": "List user memberships", - "operationId": "usersListMemberships", + "summary": "Get installation", + "operationId": "vcsGetInstallation", "tags": [ - "users" + "vcs" ], - "description": "Get the user membership list by its unique ID.", + "description": "Get a VCS installation by its unique ID. This endpoint returns the installation's details including its provider, organization, and configuration. ", "responses": { "200": { - "description": "Memberships List", + "description": "Installation", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/membershipList" + "$ref": "#\/components\/schemas\/installation" } } } @@ -59315,314 +65946,135 @@ }, "deprecated": false, "x-appwrite": { - "method": "listMemberships", - "group": "memberships", - "weight": 134, + "method": "getInstallation", + "group": "installations", + "weight": 615, "cookies": false, "type": "", - "demo": "users\/list-memberships.md", + "demo": "vcs\/get-installation.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": "vcs.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-user-memberships.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/get-installation.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "installationId", + "description": "Installation Id", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<INSTALLATION_ID>" }, "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: userId, teamId, invited, joined, confirm, roles", - "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", - "x-example": "<SEARCH>", - "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", - "x-example": false, - "default": true - }, - "in": "query" } ] - } - }, - "\/users\/{userId}\/mfa": { - "patch": { - "summary": "Update MFA", - "operationId": "usersUpdateMfa", + }, + "delete": { + "summary": "Delete installation", + "operationId": "vcsDeleteInstallation", "tags": [ - "users" + "vcs" ], - "description": "Enable or disable MFA on a user account.", + "description": "Delete a VCS installation by its unique ID. This endpoint removes the installation and all its associated repositories from the project.", "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } + "204": { + "description": "No content" } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateMfa", - "group": "users", - "weight": 148, + "method": "deleteInstallation", + "group": "installations", + "weight": 617, "cookies": false, "type": "", - "demo": "users\/update-mfa.md", + "demo": "vcs\/delete-installation.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "vcs.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-mfa.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.updateMFA" - }, - "methods": [ - { - "name": "updateMfa", - "namespace": "users", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "userId", - "mfa" - ], - "required": [ - "userId", - "mfa" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/user" - } - ], - "description": "Enable or disable MFA on a user account.", - "demo": "users\/update-mfa.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.updateMFA" - } - }, - { - "name": "updateMFA", - "namespace": "users", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "userId", - "mfa" - ], - "required": [ - "userId", - "mfa" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/user" - } - ], - "description": "Enable or disable MFA on a user account.", - "demo": "users\/update-mfa.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/delete-installation.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "installationId", + "description": "Installation Id", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<INSTALLATION_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "mfa": { - "type": "boolean", - "description": "Enable or disable MFA.", - "x-example": false - } - }, - "required": [ - "mfa" - ] - } - } - } - } + ] } }, - "\/users\/{userId}\/mfa\/authenticators\/{type}": { - "delete": { - "summary": "Delete authenticator", - "operationId": "usersDeleteMfaAuthenticator", + "\/vectordb": { + "get": { + "summary": "List databases", + "operationId": "vectorDBList", "tags": [ - "users" + "vectorDB" ], - "description": "Delete an authenticator app.", + "description": false, "responses": { - "204": { - "description": "No content" + "200": { + "description": "Databases List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseList" + } + } + } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "deleteMfaAuthenticator", - "group": "mfa", - "weight": 153, + "method": "list", + "group": "vectordb", + "weight": 431, "cookies": false, "type": "", - "demo": "users\/delete-mfa-authenticator.md", + "demo": "vectordb\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "databases.read", "platforms": [ "console", "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-mfa-authenticator.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.deleteMFAAuthenticator" - }, - "methods": [ - { - "name": "deleteMfaAuthenticator", - "namespace": "users", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "userId", - "type" - ], - "required": [ - "userId", - "type" - ], - "responses": [ - { - "code": 204 - } - ], - "description": "Delete an authenticator app.", - "demo": "users\/delete-mfa-authenticator.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.deleteMFAAuthenticator" - } - }, - { - "name": "deleteMFAAuthenticator", - "namespace": "users", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "userId", - "type" - ], - "required": [ - "userId", - "type" - ], - "responses": [ - { - "code": 204 - } - ], - "description": "Delete an authenticator app.", - "demo": "users\/delete-mfa-authenticator.md", - "public": true - } - ], + "public": true, "auth": { "Project": [] } @@ -59635,128 +66087,79 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", - "required": true, + "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": "string", - "x-example": "<USER_ID>" + "type": "array", + "items": { + "type": "string" + }, + "default": [] }, - "in": "path" + "in": "query" }, { - "name": "type", - "description": "Type of authenticator.", - "required": true, + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, "schema": { "type": "string", - "x-example": "totp", - "enum": [ - "totp" - ], - "x-enum-name": "AuthenticatorType", - "x-enum-keys": [] + "x-example": "<SEARCH>", + "default": "" }, - "in": "path" + "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", + "x-example": false, + "default": true + }, + "in": "query" } ] - } - }, - "\/users\/{userId}\/mfa\/factors": { - "get": { - "summary": "List factors", - "operationId": "usersListMfaFactors", + }, + "post": { + "summary": "Create database", + "operationId": "vectorDBCreate", "tags": [ - "users" + "vectorDB" ], - "description": "List the factors available on the account to be used as a MFA challange.", + "description": false, "responses": { - "200": { - "description": "MFAFactors", + "201": { + "description": "Database", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/mfaFactors" + "$ref": "#\/components\/schemas\/database" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "listMfaFactors", - "group": "mfa", - "weight": 149, + "method": "create", + "group": "vectordb", + "weight": 427, "cookies": false, "type": "", - "demo": "users\/list-mfa-factors.md", + "demo": "vectordb\/create.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-mfa-factors.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.listMFAFactors" - }, - "methods": [ - { - "name": "listMfaFactors", - "namespace": "users", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "userId" - ], - "required": [ - "userId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/mfaFactors" - } - ], - "description": "List the factors available on the account to be used as a MFA challange.", - "demo": "users\/list-mfa-factors.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.listMFAFactors" - } - }, - { - "name": "listMFAFactors", - "namespace": "users", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "userId" - ], - "required": [ - "userId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/mfaFactors" - } - ], - "description": "List the factors available on the account to be used as a MFA challange.", - "demo": "users\/list-mfa-factors.md", - "public": true - } - ], + "public": true, "auth": { "Project": [] } @@ -59767,112 +66170,103 @@ "Key": [] } ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<USER_ID>" - }, - "in": "path" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "databaseId": { + "type": "string", + "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.", + "x-example": "<DATABASE_ID>" + }, + "name": { + "type": "string", + "description": "Database name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "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.", + "x-example": false + } + }, + "required": [ + "databaseId", + "name" + ] + } + } } - ] + } } }, - "\/users\/{userId}\/mfa\/recovery-codes": { - "get": { - "summary": "Get MFA recovery codes", - "operationId": "usersGetMfaRecoveryCodes", + "\/vectordb\/embeddings\/text": { + "post": { + "summary": "Create Text Embeddings", + "operationId": "vectorDBCreateTextEmbeddings", "tags": [ - "users" + "vectorDB" ], - "description": "Get recovery codes that can be used as backup for MFA flow by User ID. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", + "description": false, "responses": { "200": { - "description": "MFA Recovery Codes", + "description": "Embedding list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/mfaRecoveryCodes" + "$ref": "#\/components\/schemas\/embeddingList" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "getMfaRecoveryCodes", - "group": "mfa", - "weight": 150, + "method": "createTextEmbeddings", + "group": "documents", + "weight": 454, "cookies": false, "type": "", - "demo": "users\/get-mfa-recovery-codes.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "demo": "vectordb\/create-text-embeddings.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", "platforms": [ "console", + "server", "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-mfa-recovery-codes.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.getMFARecoveryCodes" - }, + "public": true, "methods": [ { - "name": "getMfaRecoveryCodes", - "namespace": "users", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "userId" - ], - "required": [ - "userId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/mfaRecoveryCodes" - } - ], - "description": "Get recovery codes that can be used as backup for MFA flow by User ID. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", - "demo": "users\/get-mfa-recovery-codes.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.getMFARecoveryCodes" - } - }, - { - "name": "getMFARecoveryCodes", - "namespace": "users", - "desc": "", + "name": "createTextEmbeddings", + "namespace": "vectorDB", + "desc": "Create Text Embedding", "auth": { "Project": [] }, "parameters": [ - "userId" + "databaseId", + "collectionId", + "documents" ], "required": [ - "userId" + "databaseId", + "collectionId", + "documents" ], "responses": [ { "code": 200, - "model": "#\/components\/schemas\/mfaRecoveryCodes" + "model": "#\/components\/schemas\/embeddingList" } ], - "description": "Get recovery codes that can be used as backup for MFA flow by User ID. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", - "demo": "users\/get-mfa-recovery-codes.md", + "description": "", + "demo": "vectordb\/create-text-embeddings.md", "public": true } ], @@ -59883,116 +66277,84 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<USER_ID>" - }, - "in": "path" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "texts": { + "type": "array", + "description": "Array of text to generate embeddings.", + "x-example": null, + "items": { + "type": "string" + } + }, + "model": { + "type": "string", + "description": "The embedding model to use for generating vector embeddings.", + "x-example": "embeddinggemma", + "enum": [ + "embeddinggemma" + ], + "x-enum-name": null, + "x-enum-keys": [] + } + }, + "required": [ + "texts" + ] + } + } } - ] - }, - "put": { - "summary": "Update MFA recovery codes (regenerate)", - "operationId": "usersUpdateMfaRecoveryCodes", + } + } + }, + "\/vectordb\/transactions": { + "get": { + "summary": "List transactions", + "operationId": "vectorDBListTransactions", "tags": [ - "users" + "vectorDB" ], - "description": "Regenerate recovery codes that can be used as backup for MFA flow by User ID. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", + "description": false, "responses": { "200": { - "description": "MFA Recovery Codes", + "description": "Transaction List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/mfaRecoveryCodes" + "$ref": "#\/components\/schemas\/transactionList" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateMfaRecoveryCodes", - "group": "mfa", - "weight": 152, + "method": "listTransactions", + "group": "transactions", + "weight": 459, "cookies": false, "type": "", - "demo": "users\/update-mfa-recovery-codes.md", + "demo": "vectordb\/list-transactions.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "documents.read", "platforms": [ "console", + "server", + "client", "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-mfa-recovery-codes.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.updateMFARecoveryCodes" - }, - "methods": [ - { - "name": "updateMfaRecoveryCodes", - "namespace": "users", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "userId" - ], - "required": [ - "userId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/mfaRecoveryCodes" - } - ], - "description": "Regenerate recovery codes that can be used as backup for MFA flow by User ID. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", - "demo": "users\/update-mfa-recovery-codes.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.updateMFARecoveryCodes" - } - }, - { - "name": "updateMFARecoveryCodes", - "namespace": "users", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "userId" - ], - "required": [ - "userId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/mfaRecoveryCodes" - } - ], - "description": "Regenerate recovery codes that can be used as backup for MFA flow by User ID. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", - "demo": "users\/update-mfa-recovery-codes.md", - "public": false - } - ], + "public": true, "auth": { "Project": [] } @@ -60000,116 +66362,65 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", - "required": true, + "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": "string", - "x-example": "<USER_ID>" + "type": "array", + "items": { + "type": "string" + }, + "default": [] }, - "in": "path" + "in": "query" } ] }, - "patch": { - "summary": "Create MFA recovery codes", - "operationId": "usersCreateMfaRecoveryCodes", + "post": { + "summary": "Create transaction", + "operationId": "vectorDBCreateTransaction", "tags": [ - "users" + "vectorDB" ], - "description": "Generate recovery codes used as backup for MFA flow for User ID. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method by client SDK.", + "description": false, "responses": { "201": { - "description": "MFA Recovery Codes", + "description": "Transaction", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/mfaRecoveryCodes" + "$ref": "#\/components\/schemas\/transaction" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createMfaRecoveryCodes", - "group": "mfa", - "weight": 151, + "method": "createTransaction", + "group": "transactions", + "weight": 455, "cookies": false, "type": "", - "demo": "users\/create-mfa-recovery-codes.md", + "demo": "vectordb\/create-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "documents.write", "platforms": [ "console", + "server", + "client", "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-mfa-recovery-codes.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.createMFARecoveryCodes" - }, - "methods": [ - { - "name": "createMfaRecoveryCodes", - "namespace": "users", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "userId" - ], - "required": [ - "userId" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/mfaRecoveryCodes" - } - ], - "description": "Generate recovery codes used as backup for MFA flow for User ID. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method by client SDK.", - "demo": "users\/create-mfa-recovery-codes.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.createMFARecoveryCodes" - } - }, - { - "name": "createMFARecoveryCodes", - "namespace": "users", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "userId" - ], - "required": [ - "userId" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/mfaRecoveryCodes" - } - ], - "description": "Generate recovery codes used as backup for MFA flow for User ID. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method by client SDK.", - "demo": "users\/create-mfa-recovery-codes.md", - "public": true - } - ], + "public": true, "auth": { "Project": [] } @@ -60117,38 +66428,44 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<USER_ID>" - }, - "in": "path" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ttl": { + "type": "integer", + "description": "Seconds before the transaction expires.", + "x-example": 60, + "format": "int32" + } + } + } + } } - ] + } } }, - "\/users\/{userId}\/name": { - "patch": { - "summary": "Update name", - "operationId": "usersUpdateName", + "\/vectordb\/transactions\/{transactionId}": { + "get": { + "summary": "Get transaction", + "operationId": "vectorDBGetTransaction", "tags": [ - "users" + "vectorDB" ], - "description": "Update the user name by its unique ID.", + "description": false, "responses": { "200": { - "description": "User", + "description": "Transaction", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/user" + "$ref": "#\/components\/schemas\/transaction" } } } @@ -60156,23 +66473,24 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateName", - "group": "users", - "weight": 141, + "method": "getTransaction", + "group": "transactions", + "weight": 456, "cookies": false, "type": "", - "demo": "users\/update-name.md", + "demo": "vectordb\/get-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "documents.read", "platforms": [ "console", + "server", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-name.md", "auth": { "Project": [] } @@ -60180,57 +66498,37 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<TRANSACTION_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "User name. Max length: 128 chars.", - "x-example": "<NAME>" - } - }, - "required": [ - "name" - ] - } - } - } - } - } - }, - "\/users\/{userId}\/password": { + ] + }, "patch": { - "summary": "Update password", - "operationId": "usersUpdatePassword", + "summary": "Update transaction", + "operationId": "vectorDBUpdateTransaction", "tags": [ - "users" + "vectorDB" ], - "description": "Update the user password by its unique ID.", + "description": false, "responses": { "200": { - "description": "User", + "description": "Transaction", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/user" + "$ref": "#\/components\/schemas\/transaction" } } } @@ -60238,23 +66536,24 @@ }, "deprecated": false, "x-appwrite": { - "method": "updatePassword", - "group": "users", - "weight": 142, + "method": "updateTransaction", + "group": "transactions", + "weight": 457, "cookies": false, "type": "", - "demo": "users\/update-password.md", + "demo": "vectordb\/update-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "documents.write", "platforms": [ "console", + "server", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-password.md", "auth": { "Project": [] } @@ -60262,17 +66561,18 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<TRANSACTION_ID>" }, "in": "path" } @@ -60283,60 +66583,54 @@ "schema": { "type": "object", "properties": { - "password": { - "type": "string", - "description": "New user password. Must be at least 8 chars.", - "x-example": null + "commit": { + "type": "boolean", + "description": "Commit transaction?", + "x-example": false + }, + "rollback": { + "type": "boolean", + "description": "Rollback transaction?", + "x-example": false } - }, - "required": [ - "password" - ] + } } } } } - } - }, - "\/users\/{userId}\/phone": { - "patch": { - "summary": "Update phone", - "operationId": "usersUpdatePhone", + }, + "delete": { + "summary": "Delete transaction", + "operationId": "vectorDBDeleteTransaction", "tags": [ - "users" + "vectorDB" ], - "description": "Update the user phone by its unique ID.", + "description": false, "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updatePhone", - "group": "users", - "weight": 144, + "method": "deleteTransaction", + "group": "transactions", + "weight": 458, "cookies": false, "type": "", - "demo": "users\/update-phone.md", + "demo": "vectordb\/delete-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "documents.write", "platforms": [ "console", + "server", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-phone.md", "auth": { "Project": [] } @@ -60344,58 +66638,39 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<TRANSACTION_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "number": { - "type": "string", - "description": "User phone number.", - "x-example": "+12065550100", - "format": "phone" - } - }, - "required": [ - "number" - ] - } - } - } - } + ] } }, - "\/users\/{userId}\/prefs": { - "get": { - "summary": "Get user preferences", - "operationId": "usersGetPrefs", + "\/vectordb\/transactions\/{transactionId}\/operations": { + "post": { + "summary": "Create operations", + "operationId": "vectorDBCreateOperations", "tags": [ - "users" + "vectorDB" ], - "description": "Get the user preferences by its unique ID.", + "description": false, "responses": { - "200": { - "description": "Preferences", + "201": { + "description": "Transaction", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/preferences" + "$ref": "#\/components\/schemas\/transaction" } } } @@ -60403,23 +66678,24 @@ }, "deprecated": false, "x-appwrite": { - "method": "getPrefs", - "group": "users", - "weight": 131, + "method": "createOperations", + "group": "transactions", + "weight": 460, "cookies": false, "type": "", - "demo": "users\/get-prefs.md", + "demo": "vectordb\/create-operations.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": "documents.write", "platforms": [ "console", + "server", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user-prefs.md", "auth": { "Project": [] } @@ -60427,36 +66703,58 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<TRANSACTION_ID>" }, "in": "path" } - ] - }, - "patch": { - "summary": "Update user preferences", - "operationId": "usersUpdatePrefs", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "operations": { + "type": "array", + "description": "Array of staged operations.", + "x-example": "[\n\t {\n\t \"action\": \"create\",\n\t \"databaseId\": \"<DATABASE_ID>\",\n\t \"collectionId\": \"<COLLECTION_ID>\",\n\t \"documentId\": \"<DOCUMENT_ID>\",\n\t \"data\": {\n\t \"name\": \"Walter O'Brien\"\n\t }\n\t }\n\t]", + "items": { + "type": "object" + } + } + } + } + } + } + } + } + }, + "\/vectordb\/usage": { + "get": { + "summary": "Get VectorDB usage stats", + "operationId": "vectorDBListUsage", "tags": [ - "users" + "vectorDB" ], - "description": "Update the user preferences by its unique ID. 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.", + "description": false, "responses": { "200": { - "description": "Preferences", + "description": "UsageVectorDBs", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/preferences" + "$ref": "#\/components\/schemas\/usageVectorDBs" } } } @@ -60464,81 +66762,94 @@ }, "deprecated": false, "x-appwrite": { - "method": "updatePrefs", - "group": "users", - "weight": 146, + "method": "listUsage", + "group": null, + "weight": 433, "cookies": false, "type": "", - "demo": "users\/update-prefs.md", + "demo": "vectordb\/list-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "collections.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-prefs.md", + "methods": [ + { + "name": "listUsage", + "namespace": "vectorDB", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "range" + ], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/usageVectorDBs" + } + ], + "description": "", + "demo": "vectordb\/list-usage.md", + "public": true + } + ], "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", - "required": true, + "name": "range", + "description": "Date range.", + "required": false, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "24h", + "enum": [ + "24h", + "30d", + "90d" + ], + "x-enum-name": "UsageRange", + "x-enum-keys": [ + "Twenty Four Hours", + "Thirty Days", + "Ninety Days" + ], + "default": "30d" }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "prefs": { - "type": "object", - "description": "Prefs key-value JSON object.", - "x-example": "{}" - } - }, - "required": [ - "prefs" - ] - } - } + "in": "query" } - } + ] } }, - "\/users\/{userId}\/sessions": { + "\/vectordb\/{databaseId}": { "get": { - "summary": "List user sessions", - "operationId": "usersListSessions", + "summary": "Get database", + "operationId": "vectorDBGet", "tags": [ - "users" + "vectorDB" ], - "description": "Get the user sessions list by its unique ID.", + "description": false, "responses": { "200": { - "description": "Sessions List", + "description": "Database", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/sessionList" + "$ref": "#\/components\/schemas\/database" } } } @@ -60546,23 +66857,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "listSessions", - "group": "sessions", - "weight": 133, + "method": "get", + "group": "vectordb", + "weight": 428, "cookies": false, "type": "", - "demo": "users\/list-sessions.md", + "demo": "vectordb\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": "databases.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-user-sessions.md", "auth": { "Project": [] } @@ -60575,42 +66885,31 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "schema": { - "type": "boolean", - "x-example": false, - "default": true - }, - "in": "query" } ] }, - "post": { - "summary": "Create session", - "operationId": "usersCreateSession", + "put": { + "summary": "Update database", + "operationId": "vectorDBUpdate", "tags": [ - "users" + "vectorDB" ], - "description": "Creates a session for a user. Returns an immediately usable session object.\n\nIf you want to generate a token for a custom authentication flow, use the [POST \/users\/{userId}\/tokens](https:\/\/appwrite.io\/docs\/server\/users#createToken) endpoint.", + "description": false, "responses": { - "201": { - "description": "Session", + "200": { + "description": "Database", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/session" + "$ref": "#\/components\/schemas\/database" } } } @@ -60618,23 +66917,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "createSession", - "group": "sessions", - "weight": 154, + "method": "update", + "group": "vectordb", + "weight": 429, "cookies": false, "type": "", - "demo": "users\/create-session.md", + "demo": "vectordb\/update.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-session.md", "auth": { "Project": [] } @@ -60647,24 +66945,48 @@ ], "parameters": [ { - "name": "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.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Database name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "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.", + "x-example": false + } + }, + "required": [ + "name" + ] + } + } + } + } }, "delete": { - "summary": "Delete user sessions", - "operationId": "usersDeleteSessions", + "summary": "Delete database", + "operationId": "vectorDBDelete", "tags": [ - "users" + "vectorDB" ], - "description": "Delete all user's sessions by using the user's unique ID.", + "description": false, "responses": { "204": { "description": "No content" @@ -60672,23 +66994,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteSessions", - "group": "sessions", - "weight": 157, + "method": "delete", + "group": "vectordb", + "weight": 430, "cookies": false, "type": "", - "demo": "users\/delete-sessions.md", + "demo": "vectordb\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-user-sessions.md", "auth": { "Project": [] } @@ -60701,50 +67022,56 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } ] } }, - "\/users\/{userId}\/sessions\/{sessionId}": { - "delete": { - "summary": "Delete user session", - "operationId": "usersDeleteSession", + "\/vectordb\/{databaseId}\/collections": { + "get": { + "summary": "List collections", + "operationId": "vectorDBListCollections", "tags": [ - "users" + "vectorDB" ], - "description": "Delete a user sessions by its unique ID.", + "description": false, "responses": { - "204": { - "description": "No content" + "200": { + "description": "VectorDB Collections List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/vectordbCollectionList" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteSession", - "group": "sessions", - "weight": 156, + "method": "listCollections", + "group": "collections", + "weight": 438, "cookies": false, "type": "", - "demo": "users\/delete-session.md", + "demo": "vectordb\/list-collections.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "collections.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-user-session.md", "auth": { "Project": [] } @@ -60757,43 +67084,66 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" }, { - "name": "sessionId", - "description": "Session ID.", - "required": true, + "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", - "x-example": "<SESSION_ID>" + "x-example": "<SEARCH>", + "default": "" }, - "in": "path" + "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", + "x-example": false, + "default": true + }, + "in": "query" } ] - } - }, - "\/users\/{userId}\/status": { - "patch": { - "summary": "Update user status", - "operationId": "usersUpdateStatus", + }, + "post": { + "summary": "Create collection", + "operationId": "vectorDBCreateCollection", "tags": [ - "users" + "vectorDB" ], - "description": "Update the user status by its unique ID. Use this endpoint as an alternative to deleting a user if you want to keep user's ID reserved.", + "description": false, "responses": { - "200": { - "description": "User", + "201": { + "description": "VectorDB Collection", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/user" + "$ref": "#\/components\/schemas\/vectordbCollection" } } } @@ -60801,23 +67151,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateStatus", - "group": "users", - "weight": 138, + "method": "createCollection", + "group": "collections", + "weight": 434, "cookies": false, "type": "", - "demo": "users\/update-status.md", + "demo": "vectordb\/create-collection.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "collections.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-status.md", "auth": { "Project": [] } @@ -60830,12 +67179,12 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } @@ -60846,14 +67195,45 @@ "schema": { "type": "object", "properties": { - "status": { + "collectionId": { + "type": "string", + "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.", + "x-example": "<COLLECTION_ID>" + }, + "name": { + "type": "string", + "description": "Collection name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "dimension": { + "type": "integer", + "description": "Embedding dimension.", + "x-example": 1, + "format": "int32" + }, + "permissions": { + "type": "array", + "description": "An array of permissions strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } + }, + "documentSecurity": { "type": "boolean", - "description": "User Status. To activate the user pass `true` and to block the user pass `false`.", + "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).", + "x-example": false + }, + "enabled": { + "type": "boolean", + "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.", "x-example": false } }, "required": [ - "status" + "collectionId", + "name", + "dimension" ] } } @@ -60861,21 +67241,21 @@ } } }, - "\/users\/{userId}\/targets": { + "\/vectordb\/{databaseId}\/collections\/{collectionId}": { "get": { - "summary": "List user targets", - "operationId": "usersListTargets", + "summary": "Get collection", + "operationId": "vectorDBGetCollection", "tags": [ - "users" + "vectorDB" ], - "description": "List the messaging targets that are associated with a user.", + "description": false, "responses": { "200": { - "description": "Target list", + "description": "VectorDB Collection", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/targetList" + "$ref": "#\/components\/schemas\/vectordbCollection" } } } @@ -60883,23 +67263,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "listTargets", - "group": "targets", - "weight": 136, + "method": "getCollection", + "group": "collections", + "weight": 435, "cookies": false, "type": "", - "demo": "users\/list-targets.md", + "demo": "vectordb\/get-collection.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "targets.read", + "scope": "collections.read", "platforms": [ - "server", - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-user-targets.md", "auth": { "Project": [] } @@ -60912,55 +67291,41 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<DATABASE_ID>" }, "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: userId, providerId, identifier, providerType", - "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, + "name": "collectionId", + "description": "Collection ID.", + "required": true, "schema": { - "type": "boolean", - "x-example": false, - "default": true + "type": "string", + "x-example": "<COLLECTION_ID>" }, - "in": "query" + "in": "path" } ] }, - "post": { - "summary": "Create user target", - "operationId": "usersCreateTarget", + "put": { + "summary": "Update collection", + "operationId": "vectorDBUpdateCollection", "tags": [ - "users" + "vectorDB" ], - "description": "Create a messaging target.", + "description": false, "responses": { - "201": { - "description": "Target", + "200": { + "description": "VectorDB Collection", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/target" + "$ref": "#\/components\/schemas\/vectordbCollection" } } } @@ -60968,23 +67333,128 @@ }, "deprecated": false, "x-appwrite": { - "method": "createTarget", - "group": "targets", - "weight": 128, + "method": "updateCollection", + "group": "collections", + "weight": 436, + "cookies": false, + "type": "", + "demo": "vectordb\/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, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Collection name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "dimension": { + "type": "integer", + "description": "Embedding dimensions.", + "x-example": 1, + "format": "int32" + }, + "permissions": { + "type": "array", + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } + }, + "documentSecurity": { + "type": "boolean", + "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).", + "x-example": false + }, + "enabled": { + "type": "boolean", + "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.", + "x-example": false + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete collection", + "operationId": "vectorDBDeleteCollection", + "tags": [ + "vectorDB" + ], + "description": false, + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteCollection", + "group": "collections", + "weight": 437, "cookies": false, "type": "", - "demo": "users\/create-target.md", + "demo": "vectordb\/delete-collection.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "targets.write", + "scope": "collections.write", "platforms": [ - "server", - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-target.md", "auth": { "Project": [] } @@ -60997,81 +67467,43 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<COLLECTION_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "targetId": { - "type": "string", - "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.", - "x-example": "<TARGET_ID>" - }, - "providerType": { - "type": "string", - "description": "The target provider type. Can be one of the following: `email`, `sms` or `push`.", - "x-example": "email", - "enum": [ - "email", - "sms", - "push" - ], - "x-enum-name": "MessagingProviderType", - "x-enum-keys": [] - }, - "identifier": { - "type": "string", - "description": "The target identifier (token, email, phone etc.)", - "x-example": "<IDENTIFIER>" - }, - "providerId": { - "type": "string", - "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.", - "x-example": "<PROVIDER_ID>" - }, - "name": { - "type": "string", - "description": "Target name. Max length: 128 chars. For example: My Awesome App Galaxy S23.", - "x-example": "<NAME>" - } - }, - "required": [ - "targetId", - "providerType", - "identifier" - ] - } - } - } - } + ] } }, - "\/users\/{userId}\/targets\/{targetId}": { + "\/vectordb\/{databaseId}\/collections\/{collectionId}\/documents": { "get": { - "summary": "Get user target", - "operationId": "usersGetTarget", + "summary": "List documents", + "operationId": "vectorDBListDocuments", "tags": [ - "users" + "vectorDB" ], - "description": "Get a user's push notification target by ID.", + "description": false, "responses": { "200": { - "description": "Target", + "description": "Documents List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/target" + "$ref": "#\/components\/schemas\/documentList" } } } @@ -61079,23 +67511,24 @@ }, "deprecated": false, "x-appwrite": { - "method": "getTarget", - "group": "targets", - "weight": 132, + "method": "listDocuments", + "group": "documents", + "weight": 449, "cookies": false, "type": "", - "demo": "users\/get-target.md", + "demo": "vectordb\/list-documents.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "targets.read", + "scope": "documents.read", "platforms": [ + "console", + "client", "server", - "console" + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user-target.md", "auth": { "Project": [] } @@ -61103,46 +67536,93 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" }, { - "name": "targetId", - "description": "Target ID.", + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", "required": true, "schema": { "type": "string", - "x-example": "<TARGET_ID>" + "x-example": "<COLLECTION_ID>" }, "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", + "x-example": "<TRANSACTION_ID>" + }, + "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", + "x-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", + "x-example": 0, + "default": 0 + }, + "in": "query" } ] }, - "patch": { - "summary": "Update user target", - "operationId": "usersUpdateTarget", + "post": { + "summary": "Create document", + "operationId": "vectorDBCreateDocument", "tags": [ - "users" + "vectorDB" ], - "description": "Update a messaging target.", + "description": false, "responses": { - "200": { - "description": "Target", + "201": { + "description": "Document", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/target" + "$ref": "#\/components\/schemas\/document" } } } @@ -61150,23 +67630,83 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateTarget", - "group": "targets", - "weight": 147, + "method": "createDocument", + "group": "documents", + "weight": 445, "cookies": false, "type": "", - "demo": "users\/update-target.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "targets.write", + "demo": "vectordb\/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", - "console" + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-target.md", + "methods": [ + { + "name": "createDocument", + "namespace": "vectorDB", + "desc": "Create document", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions" + ], + "required": [ + "databaseId", + "collectionId", + "documentId", + "data" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/document" + } + ], + "description": "", + "demo": "vectordb\/create-document.md", + "public": true + }, + { + "name": "createDocuments", + "namespace": "vectorDB", + "desc": "Create documents", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documents" + ], + "required": [ + "databaseId", + "collectionId", + "documents" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/documentList" + } + ], + "description": "", + "demo": "vectordb\/create-documents.md", + "public": true + } + ], "auth": { "Project": [] } @@ -61174,27 +67714,28 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" }, { - "name": "targetId", - "description": "Target ID.", + "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", - "x-example": "<TARGET_ID>" + "x-example": "<COLLECTION_ID>" }, "in": "path" } @@ -61205,20 +67746,36 @@ "schema": { "type": "object", "properties": { - "identifier": { + "documentId": { "type": "string", - "description": "The target identifier (token, email, phone etc.)", - "x-example": "<IDENTIFIER>" + "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.", + "x-example": "<DOCUMENT_ID>" }, - "providerId": { - "type": "string", - "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.", - "x-example": "<PROVIDER_ID>" + "data": { + "type": "object", + "description": "Document data as JSON object.", + "x-example": "{\"embeddings\": [0.12, -0.55, 0.88, 1.02], \"metadata\": {\"key\":\"value\"} }" }, - "name": { + "permissions": { + "type": "array", + "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).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } + }, + "documents": { + "type": "array", + "description": "Array of documents data as JSON objects.", + "x-example": null, + "items": { + "type": "object" + } + }, + "transactionId": { "type": "string", - "description": "Target name. Max length: 128 chars. For example: My Awesome App Galaxy S23.", - "x-example": "<NAME>" + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>" } } } @@ -61226,37 +67783,73 @@ } } }, - "delete": { - "summary": "Delete user target", - "operationId": "usersDeleteTarget", + "put": { + "summary": "Upsert documents", + "operationId": "vectorDBUpsertDocuments", "tags": [ - "users" + "vectorDB" ], - "description": "Delete a messaging target.", + "description": false, "responses": { - "204": { - "description": "No content" + "201": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteTarget", - "group": "targets", - "weight": 159, + "method": "upsertDocuments", + "group": "documents", + "weight": 452, "cookies": false, "type": "", - "demo": "users\/delete-target.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "targets.write", + "demo": "vectordb\/upsert-documents.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", "platforms": [ - "server", - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-target.md", + "methods": [ + { + "name": "upsertDocuments", + "namespace": "vectorDB", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documents", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documents" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/documentList" + } + ], + "description": "", + "demo": "vectordb\/upsert-documents.md", + "public": true + } + ], "auth": { "Project": [] } @@ -61269,43 +67862,68 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" }, { - "name": "targetId", - "description": "Target ID.", + "name": "collectionId", + "description": "Collection ID.", "required": true, "schema": { "type": "string", - "x-example": "<TARGET_ID>" + "x-example": "<COLLECTION_ID>" }, "in": "path" } - ] - } - }, - "\/users\/{userId}\/tokens": { - "post": { - "summary": "Create token", - "operationId": "usersCreateToken", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "documents": { + "type": "array", + "description": "Array of document data as JSON objects. May contain partial documents.", + "x-example": null, + "items": { + "type": "object" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>" + } + }, + "required": [ + "documents" + ] + } + } + } + } + }, + "patch": { + "summary": "Update documents", + "operationId": "vectorDBUpdateDocuments", "tags": [ - "users" + "vectorDB" ], - "description": "Returns a token with a secret key for creating a session. Use the user ID and secret and submit a request to the [PUT \/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process.\n", + "description": false, "responses": { - "201": { - "description": "Token", + "200": { + "description": "Documents List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/token" + "$ref": "#\/components\/schemas\/documentList" } } } @@ -61313,23 +67931,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "createToken", - "group": "sessions", - "weight": 155, + "method": "updateDocuments", + "group": "documents", + "weight": 451, "cookies": false, "type": "", - "demo": "users\/create-token.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "demo": "vectordb\/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, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-token.md", "auth": { "Project": [] } @@ -61342,12 +67959,22 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<COLLECTION_ID>" }, "in": "path" } @@ -61358,40 +67985,44 @@ "schema": { "type": "object", "properties": { - "length": { - "type": "integer", - "description": "Token length in characters. The default length is 6 characters", - "x-example": 4, - "format": "int32" + "data": { + "type": "object", + "description": "Document data as JSON object. Include only attribute and value pairs to be updated.", + "x-example": "{}" }, - "expire": { - "type": "integer", - "description": "Token expiration period in seconds. The default expiration is 15 minutes.", - "x-example": 60, - "format": "int32" + "queries": { + "type": "array", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "x-example": null, + "items": { + "type": "string" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>" } } } } } } - } - }, - "\/users\/{userId}\/verification": { - "patch": { - "summary": "Update email verification", - "operationId": "usersUpdateEmailVerification", + }, + "delete": { + "summary": "Delete documents", + "operationId": "vectorDBDeleteDocuments", "tags": [ - "users" + "vectorDB" ], - "description": "Update the user email verification status by its unique ID.", + "description": false, "responses": { "200": { - "description": "User", + "description": "Documents List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/user" + "$ref": "#\/components\/schemas\/documentList" } } } @@ -61399,23 +68030,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateEmailVerification", - "group": "users", - "weight": 145, + "method": "deleteDocuments", + "group": "documents", + "weight": 453, "cookies": false, "type": "", - "demo": "users\/update-email-verification.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "demo": "vectordb\/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, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-email-verification.md", "auth": { "Project": [] } @@ -61428,12 +68058,22 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "x-example": "<COLLECTION_ID>" }, "in": "path" } @@ -61444,36 +68084,41 @@ "schema": { "type": "object", "properties": { - "emailVerification": { - "type": "boolean", - "description": "User email verification status.", - "x-example": false + "queries": { + "type": "array", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "x-example": null, + "items": { + "type": "string" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>" } - }, - "required": [ - "emailVerification" - ] + } } } } } } }, - "\/users\/{userId}\/verification\/phone": { - "patch": { - "summary": "Update phone verification", - "operationId": "usersUpdatePhoneVerification", + "\/vectordb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { + "get": { + "summary": "Get document", + "operationId": "vectorDBGetDocument", "tags": [ - "users" + "vectorDB" ], - "description": "Update the user phone verification status by its unique ID.", + "description": false, "responses": { "200": { - "description": "User", + "description": "Document", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/user" + "$ref": "#\/components\/schemas\/document" } } } @@ -61481,23 +68126,24 @@ }, "deprecated": false, "x-appwrite": { - "method": "updatePhoneVerification", - "group": "users", - "weight": 140, + "method": "getDocument", + "group": "documents", + "weight": 448, "cookies": false, "type": "", - "demo": "users\/update-phone-verification.md", + "demo": "vectordb\/get-document.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "documents.read", "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-phone-verification.md", "auth": { "Project": [] } @@ -61505,57 +68151,80 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "x-example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DOCUMENT_ID>" + }, + "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", + "x-example": "<TRANSACTION_ID>" + }, + "in": "query" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "phoneVerification": { - "type": "boolean", - "description": "User phone verification status.", - "x-example": false - } - }, - "required": [ - "phoneVerification" - ] - } - } - } - } - } - }, - "\/vcs\/github\/installations\/{installationId}\/detections": { - "post": { - "summary": "Create repository detection", - "operationId": "vcsCreateRepositoryDetection", + ] + }, + "put": { + "summary": "Upsert a document", + "operationId": "vectorDBUpsertDocument", "tags": [ - "vcs" + "vectorDB" ], - "description": "Analyze a GitHub repository to automatically detect the programming language and runtime environment. This endpoint scans the repository's files and language statistics to determine the appropriate runtime settings for your function. The GitHub installation must be properly configured and the repository must be accessible through your installation for this endpoint to work.", + "description": false, "responses": { - "200": { - "description": "DetectionFramework", + "201": { + "description": "Document", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/detectionFramework" + "$ref": "#\/components\/schemas\/document" } } } @@ -61563,39 +68232,95 @@ }, "deprecated": false, "x-appwrite": { - "method": "createRepositoryDetection", - "group": "repositories", - "weight": 554, + "method": "upsertDocument", + "group": "documents", + "weight": 447, "cookies": false, "type": "", - "demo": "vcs\/create-repository-detection.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vcs.write", + "demo": "vectordb\/upsert-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", "platforms": [ - "console" + "console", + "client", + "server", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/create-repository-detection.md", + "methods": [ + { + "name": "upsertDocument", + "namespace": "vectorDB", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documentId" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/document" + } + ], + "description": "", + "demo": "vectordb\/upsert-document.md", + "public": true + } + ], "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "installationId", - "description": "Installation Id", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<INSTALLATION_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DOCUMENT_ID>" }, "in": "path" } @@ -61606,53 +68331,44 @@ "schema": { "type": "object", "properties": { - "providerRepositoryId": { - "type": "string", - "description": "Repository Id", - "x-example": "<PROVIDER_REPOSITORY_ID>" + "data": { + "type": "object", + "description": "Document data as JSON object. Include all required fields of the document to be created or updated.", + "x-example": "{}" }, - "type": { - "type": "string", - "description": "Detector type. Must be one of the following: runtime, framework", - "x-example": "runtime", - "enum": [ - "runtime", - "framework" - ], - "x-enum-name": "VCSDetectionType", - "x-enum-keys": [] + "permissions": { + "type": "array", + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } }, - "providerRootDirectory": { + "transactionId": { "type": "string", - "description": "Path to Root Directory", - "x-example": "<PROVIDER_ROOT_DIRECTORY>" + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>" } - }, - "required": [ - "providerRepositoryId", - "type" - ] + } } } } } - } - }, - "\/vcs\/github\/installations\/{installationId}\/providerRepositories": { - "get": { - "summary": "List repositories", - "operationId": "vcsListRepositories", + }, + "patch": { + "summary": "Update document", + "operationId": "vectorDBUpdateDocument", "tags": [ - "vcs" + "vectorDB" ], - "description": "Get a list of GitHub repositories available through your installation. This endpoint returns repositories with their basic information, detected runtime environments, and latest push dates. You can optionally filter repositories using a search term. Each repository's runtime is automatically detected based on its contents and language statistics. The GitHub installation must be properly configured for this endpoint to work.", + "description": false, "responses": { "200": { - "description": "Framework Provider Repositories List", + "description": "Document", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/providerRepositoryFrameworkList" + "$ref": "#\/components\/schemas\/document" } } } @@ -61660,138 +68376,168 @@ }, "deprecated": false, "x-appwrite": { - "method": "listRepositories", - "group": "repositories", - "weight": 551, + "method": "updateDocument", + "group": "documents", + "weight": 446, "cookies": false, "type": "", - "demo": "vcs\/list-repositories.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vcs.read", + "demo": "vectordb\/update-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", "platforms": [ - "console" + "console", + "client", + "server", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/list-repositories.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "installationId", - "description": "Installation Id", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<INSTALLATION_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" }, { - "name": "type", - "description": "Detector type. Must be one of the following: runtime, framework", + "name": "collectionId", + "description": "Collection ID.", "required": true, "schema": { "type": "string", - "x-example": "runtime", - "enum": [ - "runtime", - "framework" - ], - "x-enum-name": "VCSDetectionType", - "x-enum-keys": [] + "x-example": "<COLLECTION_ID>" }, - "in": "query" + "in": "path" }, { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, + "name": "documentId", + "description": "Document ID.", + "required": true, "schema": { "type": "string", - "x-example": "<SEARCH>", - "default": "" - }, - "in": "query" - }, - { - "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": [] + "x-example": "<DOCUMENT_ID>" }, - "in": "query" + "in": "path" } - ] - }, - "post": { - "summary": "Create repository", - "operationId": "vcsCreateRepository", - "tags": [ - "vcs" ], - "description": "Create a new GitHub repository through your installation. This endpoint allows you to create either a public or private repository by specifying a name and visibility setting. The repository will be created under your GitHub user account or organization, depending on your installation type. The GitHub installation must be properly configured and have the necessary permissions for repository creation.", - "responses": { - "200": { - "description": "ProviderRepository", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/providerRepository" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "object", + "description": "Document data as JSON object. Include only fields and value pairs to be updated.", + "x-example": "{}" + }, + "permissions": { + "type": "array", + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>" + } } } } } + } + }, + "delete": { + "summary": "Delete document", + "operationId": "vectorDBDeleteDocument", + "tags": [ + "vectorDB" + ], + "description": false, + "responses": { + "204": { + "description": "No content" + } }, "deprecated": false, "x-appwrite": { - "method": "createRepository", - "group": "repositories", - "weight": 549, + "method": "deleteDocument", + "group": "documents", + "weight": 450, "cookies": false, "type": "", - "demo": "vcs\/create-repository.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vcs.write", + "demo": "vectordb\/delete-document.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", "platforms": [ - "console" + "console", + "client", + "server", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/create-repository.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "installationId", - "description": "Installation Id", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<INSTALLATION_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "x-example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DOCUMENT_ID>" }, "in": "path" } @@ -61802,42 +68548,33 @@ "schema": { "type": "object", "properties": { - "name": { + "transactionId": { "type": "string", - "description": "Repository name (slug)", - "x-example": "<NAME>" - }, - "private": { - "type": "boolean", - "description": "Mark repository public or private", - "x-example": false + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>" } - }, - "required": [ - "name", - "private" - ] + } } } } } } }, - "\/vcs\/github\/installations\/{installationId}\/providerRepositories\/{providerRepositoryId}": { + "\/vectordb\/{databaseId}\/collections\/{collectionId}\/indexes": { "get": { - "summary": "Get repository", - "operationId": "vcsGetRepository", + "summary": "List indexes", + "operationId": "vectorDBListIndexes", "tags": [ - "vcs" + "vectorDB" ], - "description": "Get detailed information about a specific GitHub repository from your installation. This endpoint returns repository details including its ID, name, visibility status, organization, and latest push date. The GitHub installation must be properly configured and have access to the requested repository for this endpoint to work.", + "description": false, "responses": { "200": { - "description": "ProviderRepository", + "description": "Indexes List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/providerRepository" + "$ref": "#\/components\/schemas\/indexList" } } } @@ -61845,70 +68582,93 @@ }, "deprecated": false, "x-appwrite": { - "method": "getRepository", - "group": "repositories", - "weight": 550, + "method": "listIndexes", + "group": "indexes", + "weight": 444, "cookies": false, "type": "", - "demo": "vcs\/get-repository.md", + "demo": "vectordb\/list-indexes.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "vcs.read", + "scope": "collections.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/get-repository.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "installationId", - "description": "Installation Id", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<INSTALLATION_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "x-example": "<COLLECTION_ID>" + }, + "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": "path" + "in": "query" }, { - "name": "providerRepositoryId", - "description": "Repository Id", - "required": true, + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, "schema": { - "type": "string", - "x-example": "<PROVIDER_REPOSITORY_ID>" + "type": "boolean", + "x-example": false, + "default": true }, - "in": "path" + "in": "query" } ] - } - }, - "\/vcs\/github\/installations\/{installationId}\/providerRepositories\/{providerRepositoryId}\/branches": { - "get": { - "summary": "List repository branches", - "operationId": "vcsListRepositoryBranches", + }, + "post": { + "summary": "Create index", + "operationId": "vectorDBCreateIndex", "tags": [ - "vcs" + "vectorDB" ], - "description": "Get a list of all branches from a GitHub repository in your installation. This endpoint returns the names of all branches in the repository and their total count. The GitHub installation must be properly configured and have access to the requested repository for this endpoint to work.\n", + "description": false, "responses": { - "200": { - "description": "Branches List", + "202": { + "description": "Index", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/branchList" + "$ref": "#\/components\/schemas\/index" } } } @@ -61916,70 +68676,137 @@ }, "deprecated": false, "x-appwrite": { - "method": "listRepositoryBranches", - "group": "repositories", - "weight": 552, + "method": "createIndex", + "group": "indexes", + "weight": 441, "cookies": false, "type": "", - "demo": "vcs\/list-repository-branches.md", + "demo": "vectordb\/create-index.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "vcs.read", + "scope": "collections.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/list-repository-branches.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "installationId", - "description": "Installation Id", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<INSTALLATION_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" }, { - "name": "providerRepositoryId", - "description": "Repository Id", + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", "required": true, "schema": { "type": "string", - "x-example": "<PROVIDER_REPOSITORY_ID>" + "x-example": "<COLLECTION_ID>" }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Index Key.", + "x-example": null + }, + "type": { + "type": "string", + "description": "Index type.", + "x-example": "hnsw_euclidean", + "enum": [ + "hnsw_euclidean", + "hnsw_dot", + "hnsw_cosine", + "object", + "key", + "unique" + ], + "x-enum-name": "VectorIndexType", + "x-enum-keys": [] + }, + "attributes": { + "type": "array", + "description": "Array of attributes to index. Maximum of 100 attributes are allowed, each 32 characters long.", + "x-example": null, + "items": { + "type": "string" + } + }, + "orders": { + "type": "array", + "description": "Array of index orders. Maximum of 100 orders are allowed.", + "x-example": null, + "items": { + "type": "string", + "enum": [ + "asc", + "desc" + ], + "x-enum-name": "OrderBy", + "x-enum-keys": [] + } + }, + "lengths": { + "type": "array", + "description": "Length of index. Maximum of 100", + "x-example": null, + "items": { + "type": "integer" + } + } + }, + "required": [ + "key", + "type", + "attributes" + ] + } + } + } + } } }, - "\/vcs\/github\/installations\/{installationId}\/providerRepositories\/{providerRepositoryId}\/contents": { + "\/vectordb\/{databaseId}\/collections\/{collectionId}\/indexes\/{key}": { "get": { - "summary": "Get files and directories of a VCS repository", - "operationId": "vcsGetRepositoryContents", + "summary": "Get index", + "operationId": "vectorDBGetIndex", "tags": [ - "vcs" + "vectorDB" ], - "description": "Get a list of files and directories from a GitHub repository connected to your project. This endpoint returns the contents of a specified repository path, including file names, sizes, and whether each item is a file or directory. The GitHub installation must be properly configured and the repository must be accessible through your installation for this endpoint to work.", + "description": false, "responses": { "200": { - "description": "VCS Content List", + "description": "Index", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/vcsContentList" + "$ref": "#\/components\/schemas\/index" } } } @@ -61987,85 +68814,71 @@ }, "deprecated": false, "x-appwrite": { - "method": "getRepositoryContents", - "group": "repositories", - "weight": 553, + "method": "getIndex", + "group": "indexes", + "weight": 442, "cookies": false, "type": "", - "demo": "vcs\/get-repository-contents.md", + "demo": "vectordb\/get-index.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "vcs.read", + "scope": "collections.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/get-repository-contents.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "installationId", - "description": "Installation Id", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<INSTALLATION_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" }, { - "name": "providerRepositoryId", - "description": "Repository Id", + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", "required": true, "schema": { "type": "string", - "x-example": "<PROVIDER_REPOSITORY_ID>" + "x-example": "<COLLECTION_ID>" }, "in": "path" }, { - "name": "providerRootDirectory", - "description": "Path to get contents of nested directory", - "required": false, - "schema": { - "type": "string", - "x-example": "<PROVIDER_ROOT_DIRECTORY>", - "default": "" - }, - "in": "query" - }, - { - "name": "providerReference", - "description": "Git reference (branch, tag, commit) to get contents from", - "required": false, + "name": "key", + "description": "Index Key.", + "required": true, "schema": { - "type": "string", - "x-example": "<PROVIDER_REFERENCE>", - "default": "" + "type": "string" }, - "in": "query" + "in": "path" } ] - } - }, - "\/vcs\/github\/installations\/{installationId}\/repositories\/{repositoryId}": { - "patch": { - "summary": "Update external deployment (authorize)", - "operationId": "vcsUpdateExternalDeployments", + }, + "delete": { + "summary": "Delete index", + "operationId": "vectorDBDeleteIndex", "tags": [ - "vcs" + "vectorDB" ], - "description": "Authorize and create deployments for a GitHub pull request in your project. This endpoint allows external contributions by creating deployments from pull requests, enabling preview environments for code review. The pull request must be open and not previously authorized. The GitHub installation must be properly configured and have access to both the repository and pull request for this endpoint to work.", + "description": false, "responses": { "204": { "description": "No content" @@ -62073,89 +68886,80 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateExternalDeployments", - "group": "repositories", - "weight": 164, + "method": "deleteIndex", + "group": "indexes", + "weight": 443, "cookies": false, "type": "", - "demo": "vcs\/update-external-deployments.md", + "demo": "vectordb\/delete-index.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "vcs.write", + "scope": "collections.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/update-external-deployments.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "installationId", - "description": "Installation Id", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<INSTALLATION_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" }, { - "name": "repositoryId", - "description": "VCS Repository Id", + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", "required": true, "schema": { "type": "string", - "x-example": "<REPOSITORY_ID>" + "x-example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Index Key.", + "required": true, + "schema": { + "type": "string" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerPullRequestId": { - "type": "string", - "description": "GitHub Pull Request Id", - "x-example": "<PROVIDER_PULL_REQUEST_ID>" - } - }, - "required": [ - "providerPullRequestId" - ] - } - } - } - } + ] } }, - "\/vcs\/installations": { + "\/vectordb\/{databaseId}\/collections\/{collectionId}\/logs": { "get": { - "summary": "List installations", - "operationId": "vcsListInstallations", + "summary": "List collection logs", + "operationId": "vectorDBListCollectionLogs", "tags": [ - "vcs" + "vectorDB" ], - "description": "List all VCS installations configured for the current project. This endpoint returns a list of installations including their provider, organization, and other configuration details.\n", + "description": false, "responses": { "200": { - "description": "Installations List", + "description": "Logs List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/installationList" + "$ref": "#\/components\/schemas\/logList" } } } @@ -62163,22 +68967,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "listInstallations", - "group": "installations", - "weight": 547, + "method": "listCollectionLogs", + "group": "collections", + "weight": 439, "cookies": false, "type": "", - "demo": "vcs\/list-installations.md", + "demo": "vectordb\/list-collection-logs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "vcs.read", + "scope": "collections.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/list-installations.md", "auth": { "Project": [] } @@ -62190,58 +68993,56 @@ ], "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: provider, organization", - "required": false, + "name": "databaseId", + "description": "Database ID.", + "required": true, "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] + "type": "string", + "x-example": "<DATABASE_ID>" }, - "in": "query" + "in": "path" }, { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, + "name": "collectionId", + "description": "Collection ID.", + "required": true, "schema": { "type": "string", - "x-example": "<SEARCH>", - "default": "" + "x-example": "<COLLECTION_ID>" }, - "in": "query" + "in": "path" }, { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "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": "boolean", - "x-example": false, - "default": true + "type": "array", + "items": { + "type": "string" + }, + "default": [] }, "in": "query" } ] } }, - "\/vcs\/installations\/{installationId}": { + "\/vectordb\/{databaseId}\/collections\/{collectionId}\/usage": { "get": { - "summary": "Get installation", - "operationId": "vcsGetInstallation", + "summary": "Get collection usage stats", + "operationId": "vectorDBGetCollectionUsage", "tags": [ - "vcs" + "vectorDB" ], - "description": "Get a VCS installation by its unique ID. This endpoint returns the installation's details including its provider, organization, and configuration. ", + "description": false, "responses": { "200": { - "description": "Installation", + "description": "UsageCollection", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/installation" + "$ref": "#\/components\/schemas\/usageCollection" } } } @@ -62249,22 +69050,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "getInstallation", - "group": "installations", - "weight": 546, + "method": "getCollectionUsage", + "group": null, + "weight": 440, "cookies": false, "type": "", - "demo": "vcs\/get-installation.md", + "demo": "vectordb\/get-collection-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "vcs.read", + "scope": "collections.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/get-installation.md", "auth": { "Project": [] } @@ -62276,47 +69076,113 @@ ], "parameters": [ { - "name": "installationId", - "description": "Installation Id", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<INSTALLATION_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "range", + "description": "Date range.", + "required": false, + "schema": { + "type": "string", + "x-example": "24h", + "enum": [ + "24h", + "30d", + "90d" + ], + "x-enum-name": "UsageRange", + "x-enum-keys": [ + "Twenty Four Hours", + "Thirty Days", + "Ninety Days" + ], + "default": "30d" + }, + "in": "query" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<COLLECTION_ID>" }, "in": "path" } ] - }, - "delete": { - "summary": "Delete installation", - "operationId": "vcsDeleteInstallation", + } + }, + "\/vectordb\/{databaseId}\/usage": { + "get": { + "summary": "Get VectorDB usage stats", + "operationId": "vectorDBGetUsage", "tags": [ - "vcs" + "vectorDB" ], - "description": "Delete a VCS installation by its unique ID. This endpoint removes the installation and all its associated repositories from the project.", + "description": false, "responses": { - "204": { - "description": "No content" + "200": { + "description": "UsageVectorDB", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/usageVectorDB" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteInstallation", - "group": "installations", - "weight": 548, + "method": "getUsage", + "group": null, + "weight": 432, "cookies": false, "type": "", - "demo": "vcs\/delete-installation.md", + "demo": "vectordb\/get-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "vcs.write", + "scope": "collections.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/delete-installation.md", + "methods": [ + { + "name": "getUsage", + "namespace": "vectorDB", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "range" + ], + "required": [ + "databaseId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/usageVectorDB" + } + ], + "description": "", + "demo": "vectordb\/get-usage.md", + "public": true + } + ], "auth": { "Project": [] } @@ -62328,14 +69194,36 @@ ], "parameters": [ { - "name": "installationId", - "description": "Installation Id", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<INSTALLATION_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" + }, + { + "name": "range", + "description": "Date range.", + "required": false, + "schema": { + "type": "string", + "x-example": "24h", + "enum": [ + "24h", + "30d", + "90d" + ], + "x-enum-name": "UsageRange", + "x-enum-keys": [ + "Twenty Four Hours", + "Thirty Days", + "Ninety Days" + ], + "default": "30d" + }, + "in": "query" } ] } @@ -63917,6 +70805,62 @@ "contents": "" } }, + "vectordbCollectionList": { + "description": "VectorDB Collections List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of collections that matched your query.", + "x-example": 5, + "format": "int32" + }, + "collections": { + "type": "array", + "description": "List of collections.", + "items": { + "$ref": "#\/components\/schemas\/vectordbCollection" + }, + "x-example": "" + } + }, + "required": [ + "total", + "collections" + ], + "example": { + "total": 5, + "collections": "" + } + }, + "embeddingList": { + "description": "Embedding list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of embeddings that matched your query.", + "x-example": 5, + "format": "int32" + }, + "embeddings": { + "type": "array", + "description": "List of embeddings.", + "items": { + "$ref": "#\/components\/schemas\/embedding" + }, + "x-example": "" + } + }, + "required": [ + "total", + "embeddings" + ], + "example": { + "total": 5, + "embeddings": "" + } + }, "database": { "description": "Database", "type": "object", @@ -63952,7 +70896,8 @@ "x-example": "legacy", "enum": [ "legacy", - "tablesdb" + "tablesdb", + "documentsdb" ] }, "policies": { @@ -63993,6 +70938,57 @@ "archives": {} } }, + "embedding": { + "description": "Embedding", + "type": "object", + "properties": { + "model": { + "type": "string", + "description": "Embedding model used to generate embeddings.", + "x-example": "embeddinggemma" + }, + "dimension": { + "type": "integer", + "description": "Number of dimensions for each embedding vector.", + "x-example": 768, + "format": "int32" + }, + "embedding": { + "type": "array", + "description": "Embedding vector values. If an error occurs, this will be an empty array.", + "items": { + "type": "number", + "format": "double" + }, + "x-example": [ + 0.01, + 0.02, + 0.03 + ] + }, + "error": { + "type": "string", + "description": "Error message if embedding generation fails. Empty string if no error.", + "x-example": "Error message" + } + }, + "required": [ + "model", + "dimension", + "embedding", + "error" + ], + "example": { + "model": "embeddinggemma", + "dimension": 768, + "embedding": [ + 0.01, + 0.02, + 0.03 + ], + "error": "Error message" + } + }, "collection": { "description": "Collection", "type": "object", @@ -65807,17 +72803,404 @@ "description": "Attribute update date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "default": { - "type": "string", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "x-example": "default", - "nullable": true - }, - "encrypt": { - "type": "boolean", - "description": "Defines whether this attribute is encrypted or not.", - "x-example": false, - "nullable": true + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "x-example": "default", + "nullable": true + }, + "encrypt": { + "type": "boolean", + "description": "Defines whether this attribute is encrypted or not.", + "x-example": false, + "nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": "default", + "encrypt": false + } + }, + "usageDocumentsDB": { + "description": "UsageDocumentsDB", + "type": "object", + "properties": { + "range": { + "type": "string", + "description": "Time range of the usage stats.", + "x-example": "30d" + }, + "collectionsTotal": { + "type": "integer", + "description": "Total aggregated number of collections.", + "x-example": 0, + "format": "int32" + }, + "documentsTotal": { + "type": "integer", + "description": "Total aggregated number of documents.", + "x-example": 0, + "format": "int32" + }, + "storageTotal": { + "type": "integer", + "description": "Total aggregated storage used in bytes.", + "x-example": 0, + "format": "int32" + }, + "databaseReadsTotal": { + "type": "integer", + "description": "Total number of database reads.", + "x-example": 0, + "format": "int32" + }, + "databaseWritesTotal": { + "type": "integer", + "description": "Total number of database writes.", + "x-example": 0, + "format": "int32" + }, + "collections": { + "type": "array", + "description": "Aggregated number of collections per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "documents": { + "type": "array", + "description": "Aggregated number of documents per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "storage": { + "type": "array", + "description": "Aggregated storage used in bytes per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "databaseReads": { + "type": "array", + "description": "An array of aggregated number of database reads.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "databaseWrites": { + "type": "array", + "description": "An array of aggregated number of database writes.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + } + }, + "required": [ + "range", + "collectionsTotal", + "documentsTotal", + "storageTotal", + "databaseReadsTotal", + "databaseWritesTotal", + "collections", + "documents", + "storage", + "databaseReads", + "databaseWrites" + ], + "example": { + "range": "30d", + "collectionsTotal": 0, + "documentsTotal": 0, + "storageTotal": 0, + "databaseReadsTotal": 0, + "databaseWritesTotal": 0, + "collections": [], + "documents": [], + "storage": [], + "databaseReads": [], + "databaseWrites": [] + } + }, + "vectordbCollection": { + "description": "VectorDB Collection", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Collection ID.", + "x-example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Collection creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Collection update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Collection permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "items": { + "type": "string" + }, + "x-example": [ + "read(\"any\")" + ] + }, + "databaseId": { + "type": "string", + "description": "Database ID.", + "x-example": "5e5ea5c16897e" + }, + "name": { + "type": "string", + "description": "Collection name.", + "x-example": "My Collection" + }, + "enabled": { + "type": "boolean", + "description": "Collection enabled. Can be 'enabled' or 'disabled'. When disabled, the collection is inaccessible to users, but remains accessible to Server SDKs using API keys.", + "x-example": false + }, + "documentSecurity": { + "type": "boolean", + "description": "Whether document-level permissions are enabled. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": true + }, + "attributes": { + "type": "array", + "description": "Collection attributes.", + "items": { + "anyOf": [ + { + "$ref": "#\/components\/schemas\/attributeObject" + }, + { + "$ref": "#\/components\/schemas\/attributeVector" + } + ] + }, + "x-example": {} + }, + "indexes": { + "type": "array", + "description": "Collection indexes.", + "items": { + "$ref": "#\/components\/schemas\/index" + }, + "x-example": {} + }, + "bytesMax": { + "type": "integer", + "description": "Maximum document size in bytes. Returns 0 when no limit applies.", + "x-example": 65535, + "format": "int32" + }, + "bytesUsed": { + "type": "integer", + "description": "Currently used document size in bytes based on defined attributes.", + "x-example": 1500, + "format": "int32" + }, + "dimension": { + "type": "integer", + "description": "Embedding dimension.", + "x-example": 1536, + "format": "int32" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "$permissions", + "databaseId", + "name", + "enabled", + "documentSecurity", + "attributes", + "indexes", + "bytesMax", + "bytesUsed", + "dimension" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ], + "databaseId": "5e5ea5c16897e", + "name": "My Collection", + "enabled": false, + "documentSecurity": true, + "attributes": {}, + "indexes": {}, + "bytesMax": 65535, + "bytesUsed": 1500, + "dimension": 1536 + } + }, + "attributeObject": { + "description": "AttributeObject", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "x-example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "x-example": "string" + }, + "status": { + "type": "string", + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "x-example": "available", + "enum": [ + "available", + "processing", + "deleting", + "stuck", + "failed" + ], + "x-enum-name": "AttributeStatus" + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "x-example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "x-example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "x-example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "attributeVector": { + "description": "AttributeVector", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "x-example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "x-example": "string" + }, + "status": { + "type": "string", + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "x-example": "available", + "enum": [ + "available", + "processing", + "deleting", + "stuck", + "failed" + ], + "x-enum-name": "AttributeStatus" + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "x-example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "x-example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "x-example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "size": { + "type": "integer", + "description": "Vector dimensions.", + "x-example": 1536, + "format": "int32" } }, "required": [ @@ -65827,7 +73210,8 @@ "error", "required", "$createdAt", - "$updatedAt" + "$updatedAt", + "size" ], "example": { "key": "fullName", @@ -65838,8 +73222,239 @@ "array": false, "$createdAt": "2020-10-15T06:38:00.000+00:00", "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "default": "default", - "encrypt": false + "size": 1536 + } + }, + "usageVectorDBs": { + "description": "UsageVectorDBs", + "type": "object", + "properties": { + "range": { + "type": "string", + "description": "Time range of the usage stats.", + "x-example": "30d" + }, + "databasesTotal": { + "type": "integer", + "description": "Total aggregated number of VectorDB databases.", + "x-example": 0, + "format": "int32" + }, + "collectionsTotal": { + "type": "integer", + "description": "Total aggregated number of collections.", + "x-example": 0, + "format": "int32" + }, + "documentsTotal": { + "type": "integer", + "description": "Total aggregated number of documents.", + "x-example": 0, + "format": "int32" + }, + "storageTotal": { + "type": "integer", + "description": "Total aggregated storage in bytes.", + "x-example": 0, + "format": "int32" + }, + "databasesReadsTotal": { + "type": "integer", + "description": "Total number of database reads.", + "x-example": 0, + "format": "int32" + }, + "databasesWritesTotal": { + "type": "integer", + "description": "Total number of database writes.", + "x-example": 0, + "format": "int32" + }, + "databases": { + "type": "array", + "description": "Aggregated number of databases per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "collections": { + "type": "array", + "description": "Aggregated number of collections per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "documents": { + "type": "array", + "description": "Aggregated number of documents per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "storage": { + "type": "array", + "description": "Aggregated storage in bytes per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "databasesReads": { + "type": "array", + "description": "An array of aggregated number of database reads.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "databasesWrites": { + "type": "array", + "description": "An array of aggregated number of database writes.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + } + }, + "required": [ + "range", + "databasesTotal", + "collectionsTotal", + "documentsTotal", + "storageTotal", + "databasesReadsTotal", + "databasesWritesTotal", + "databases", + "collections", + "documents", + "storage", + "databasesReads", + "databasesWrites" + ], + "example": { + "range": "30d", + "databasesTotal": 0, + "collectionsTotal": 0, + "documentsTotal": 0, + "storageTotal": 0, + "databasesReadsTotal": 0, + "databasesWritesTotal": 0, + "databases": [], + "collections": [], + "documents": [], + "storage": [], + "databasesReads": [], + "databasesWrites": [] + } + }, + "usageVectorDB": { + "description": "UsageVectorDB", + "type": "object", + "properties": { + "range": { + "type": "string", + "description": "Time range of the usage stats.", + "x-example": "30d" + }, + "collectionsTotal": { + "type": "integer", + "description": "Total aggregated number of collections.", + "x-example": 0, + "format": "int32" + }, + "documentsTotal": { + "type": "integer", + "description": "Total aggregated number of documents.", + "x-example": 0, + "format": "int32" + }, + "storageTotal": { + "type": "integer", + "description": "Total aggregated storage used in bytes.", + "x-example": 0, + "format": "int32" + }, + "databaseReadsTotal": { + "type": "integer", + "description": "Total number of database reads.", + "x-example": 0, + "format": "int32" + }, + "databaseWritesTotal": { + "type": "integer", + "description": "Total number of database writes.", + "x-example": 0, + "format": "int32" + }, + "collections": { + "type": "array", + "description": "Aggregated number of collections per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "documents": { + "type": "array", + "description": "Aggregated number of documents per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "storage": { + "type": "array", + "description": "Aggregated storage used in bytes per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "databaseReads": { + "type": "array", + "description": "An array of aggregated number of database reads.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "databaseWrites": { + "type": "array", + "description": "An array of aggregated number of database writes.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + } + }, + "required": [ + "range", + "collectionsTotal", + "documentsTotal", + "storageTotal", + "databaseReadsTotal", + "databaseWritesTotal", + "collections", + "documents", + "storage", + "databaseReads", + "databaseWrites" + ], + "example": { + "range": "30d", + "collectionsTotal": 0, + "documentsTotal": 0, + "storageTotal": 0, + "databaseReadsTotal": 0, + "databaseWritesTotal": 0, + "collections": [], + "documents": [], + "storage": [], + "databaseReads": [], + "databaseWrites": [] } }, "table": { @@ -67889,8 +75504,8 @@ }, "$sequence": { "type": "integer", - "description": "Row automatically incrementing ID.", - "x-example": 1, + "description": "Row sequence ID.", + "x-example": "1", "format": "int32", "readOnly": true }, @@ -67939,7 +75554,7 @@ ], "example": { "$id": "5e5ea5c16897e", - "$sequence": 1, + "$sequence": "1", "$tableId": "5e5ea5c15117e", "$databaseId": "5e5ea5c15117e", "$createdAt": "2020-10-15T06:38:00.000+00:00", @@ -67960,8 +75575,8 @@ }, "$sequence": { "type": "integer", - "description": "Document automatically incrementing ID.", - "x-example": 1, + "description": "Document sequence ID.", + "x-example": "1", "format": "int32", "readOnly": true }, @@ -68010,7 +75625,7 @@ ], "example": { "$id": "5e5ea5c16897e", - "$sequence": 1, + "$sequence": "1", "$collectionId": "5e5ea5c15117e", "$databaseId": "5e5ea5c15117e", "$createdAt": "2020-10-15T06:38:00.000+00:00", @@ -70443,81 +78058,105 @@ "description": "VCS (Version Control System) repository's default branch name.", "x-example": "main" }, - "pushedAt": { - "type": "string", - "description": "Last commit date in ISO 8601 format.", - "x-example": "datetime" - }, - "variables": { - "type": "array", - "description": "Environment variables found in .env files", - "items": { - "type": "string" - }, - "x-example": [ - "PORT", - "NODE_ENV" - ] - } - }, - "required": [ - "id", - "name", - "organization", - "provider", - "private", - "defaultBranch", - "pushedAt", - "variables" - ], - "example": { - "id": "5e5ea5c16897e", - "name": "appwrite", - "organization": "appwrite", - "provider": "github", - "private": true, - "defaultBranch": "main", - "pushedAt": "datetime", - "variables": [ - "PORT", - "NODE_ENV" - ] - } - }, - "providerRepositoryFramework": { - "description": "ProviderRepositoryFramework", - "type": "object", - "properties": { - "id": { - "type": "string", - "description": "VCS (Version Control System) repository ID.", - "x-example": "5e5ea5c16897e" - }, - "name": { - "type": "string", - "description": "VCS (Version Control System) repository name.", - "x-example": "appwrite" - }, - "organization": { - "type": "string", - "description": "VCS (Version Control System) organization name", - "x-example": "appwrite" - }, - "provider": { + "providerInstallationId": { + "type": "string", + "description": "VCS (Version Control System) installation ID.", + "x-example": "108104697" + }, + "authorized": { + "type": "boolean", + "description": "Is VCS (Version Control System) repository authorized for the installation?", + "x-example": true + }, + "pushedAt": { + "type": "string", + "description": "Last commit date in ISO 8601 format.", + "x-example": "datetime" + }, + "variables": { + "type": "array", + "description": "Environment variables found in .env files", + "items": { + "type": "string" + }, + "x-example": [ + "PORT", + "NODE_ENV" + ] + } + }, + "required": [ + "id", + "name", + "organization", + "provider", + "private", + "defaultBranch", + "providerInstallationId", + "authorized", + "pushedAt", + "variables" + ], + "example": { + "id": "5e5ea5c16897e", + "name": "appwrite", + "organization": "appwrite", + "provider": "github", + "private": true, + "defaultBranch": "main", + "providerInstallationId": "108104697", + "authorized": true, + "pushedAt": "datetime", + "variables": [ + "PORT", + "NODE_ENV" + ] + } + }, + "providerRepositoryFramework": { + "description": "ProviderRepositoryFramework", + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "VCS (Version Control System) repository ID.", + "x-example": "5e5ea5c16897e" + }, + "name": { + "type": "string", + "description": "VCS (Version Control System) repository name.", + "x-example": "appwrite" + }, + "organization": { + "type": "string", + "description": "VCS (Version Control System) organization name", + "x-example": "appwrite" + }, + "provider": { + "type": "string", + "description": "VCS (Version Control System) provider name.", + "x-example": "github" + }, + "private": { + "type": "boolean", + "description": "Is VCS (Version Control System) repository private?", + "x-example": true + }, + "defaultBranch": { + "type": "string", + "description": "VCS (Version Control System) repository's default branch name.", + "x-example": "main" + }, + "providerInstallationId": { "type": "string", - "description": "VCS (Version Control System) provider name.", - "x-example": "github" + "description": "VCS (Version Control System) installation ID.", + "x-example": "108104697" }, - "private": { + "authorized": { "type": "boolean", - "description": "Is VCS (Version Control System) repository private?", + "description": "Is VCS (Version Control System) repository authorized for the installation?", "x-example": true }, - "defaultBranch": { - "type": "string", - "description": "VCS (Version Control System) repository's default branch name.", - "x-example": "main" - }, "pushedAt": { "type": "string", "description": "Last commit date in ISO 8601 format.", @@ -70547,6 +78186,8 @@ "provider", "private", "defaultBranch", + "providerInstallationId", + "authorized", "pushedAt", "variables", "framework" @@ -70558,6 +78199,8 @@ "provider": "github", "private": true, "defaultBranch": "main", + "providerInstallationId": "108104697", + "authorized": true, "pushedAt": "datetime", "variables": [ "PORT", @@ -70600,6 +78243,16 @@ "description": "VCS (Version Control System) repository's default branch name.", "x-example": "main" }, + "providerInstallationId": { + "type": "string", + "description": "VCS (Version Control System) installation ID.", + "x-example": "108104697" + }, + "authorized": { + "type": "boolean", + "description": "Is VCS (Version Control System) repository authorized for the installation?", + "x-example": true + }, "pushedAt": { "type": "string", "description": "Last commit date in ISO 8601 format.", @@ -70629,6 +78282,8 @@ "provider", "private", "defaultBranch", + "providerInstallationId", + "authorized", "pushedAt", "variables", "runtime" @@ -70640,6 +78295,8 @@ "provider": "github", "private": true, "defaultBranch": "main", + "providerInstallationId": "108104697", + "authorized": true, "pushedAt": "datetime", "variables": [ "PORT", @@ -71764,6 +79421,11 @@ "$ref": "#\/components\/schemas\/block" }, "x-example": "" + }, + "consoleAccessedAt": { + "type": "string", + "description": "Last time the project was accessed via console. Used with plan's projectInactivityDays to determine if project is paused.", + "x-example": "2020-10-15T06:38:00.000+00:00" } }, "required": [ @@ -71833,7 +79495,8 @@ "serviceStatusForMessaging", "region", "billingLimits", - "blocks" + "blocks", + "consoleAccessedAt" ], "example": { "$id": "5e5ea5c16897e", @@ -71908,7 +79571,8 @@ "serviceStatusForMessaging": true, "region": "fra", "billingLimits": "", - "blocks": "" + "blocks": "", + "consoleAccessedAt": "2020-10-15T06:38:00.000+00:00" } }, "webhook": { @@ -74409,7 +82073,13 @@ }, "documentsTotal": { "type": "integer", - "description": "Total aggregated number of documents.", + "description": "Total aggregated number of documents in legacy\/tablesdb.", + "x-example": 0, + "format": "int32" + }, + "documentsdbDocumentsTotal": { + "type": "integer", + "description": "Total aggregated number of documents in documentsdb.", "x-example": 0, "format": "int32" }, @@ -74425,12 +82095,24 @@ "x-example": 0, "format": "int32" }, + "documentsdbTotal": { + "type": "integer", + "description": "Total aggregated number of documentsdb.", + "x-example": 0, + "format": "int32" + }, "databasesStorageTotal": { "type": "integer", "description": "Total aggregated sum of databases storage size (in bytes).", "x-example": 0, "format": "int32" }, + "documentsdbDatabasesStorageTotal": { + "type": "integer", + "description": "Total aggregated sum of documentsdb databases storage size (in bytes).", + "x-example": 0, + "format": "int32" + }, "usersTotal": { "type": "integer", "description": "Total aggregated number of users.", @@ -74491,6 +82173,18 @@ "x-example": 0, "format": "int32" }, + "documentsdbDatabasesReadsTotal": { + "type": "integer", + "description": "Total number of documentsdb databases reads.", + "x-example": 0, + "format": "int32" + }, + "documentsdbDatabasesWritesTotal": { + "type": "integer", + "description": "Total number of documentsdb databases writes.", + "x-example": 0, + "format": "int32" + }, "requests": { "type": "array", "description": "Aggregated number of requests per period.", @@ -74607,6 +82301,30 @@ }, "x-example": [] }, + "documentsdbDatabasesReads": { + "type": "array", + "description": "An array of aggregated number of documentsdb database reads.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "documentsdbDatabasesWrites": { + "type": "array", + "description": "An array of aggregated number of documentsdb database writes.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "documentsdbDatabasesStorage": { + "type": "array", + "description": "An array of aggregated sum of documentsdb databases storage size (in bytes) per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, "imageTransformations": { "type": "array", "description": "An array of aggregated number of image transformations.", @@ -74621,6 +82339,154 @@ "x-example": 0, "format": "int32" }, + "vectordbDatabasesTotal": { + "type": "integer", + "description": "Total aggregated number of VectorDB databases.", + "x-example": 0, + "format": "int32" + }, + "vectordbCollectionsTotal": { + "type": "integer", + "description": "Total aggregated number of VectorDB collections.", + "x-example": 0, + "format": "int32" + }, + "vectordbDocumentsTotal": { + "type": "integer", + "description": "Total aggregated number of VectorDB documents.", + "x-example": 0, + "format": "int32" + }, + "vectordbDatabasesStorageTotal": { + "type": "integer", + "description": "Total aggregated VectorDB storage (bytes).", + "x-example": 0, + "format": "int32" + }, + "vectordbDatabasesReadsTotal": { + "type": "integer", + "description": "Total aggregated number of VectorDB reads.", + "x-example": 0, + "format": "int32" + }, + "vectordbDatabasesWritesTotal": { + "type": "integer", + "description": "Total aggregated number of VectorDB writes.", + "x-example": 0, + "format": "int32" + }, + "vectordbDatabases": { + "type": "array", + "description": "Aggregated VectorDB databases per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "vectordbCollections": { + "type": "array", + "description": "Aggregated VectorDB collections per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "vectordbDocuments": { + "type": "array", + "description": "Aggregated VectorDB documents per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "vectordbDatabasesStorage": { + "type": "array", + "description": "Aggregated VectorDB storage per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "vectordbDatabasesReads": { + "type": "array", + "description": "Aggregated VectorDB reads per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "vectordbDatabasesWrites": { + "type": "array", + "description": "Aggregated VectorDB writes per period.", + "items": { + "$ref": "#\/components\/schemas\/metric" + }, + "x-example": [] + }, + "embeddingsText": { + "type": "object", + "description": "Aggregated number of text embedding calls per period.", + "x-example": [], + "items": { + "$ref": "#\/components\/schemas\/metric" + } + }, + "embeddingsTextTokens": { + "type": "object", + "description": "Aggregated number of tokens processed by text embeddings per period.", + "x-example": [], + "items": { + "$ref": "#\/components\/schemas\/metric" + } + }, + "embeddingsTextDuration": { + "type": "object", + "description": "Aggregated duration spent generating text embeddings per period.", + "x-example": [], + "items": { + "$ref": "#\/components\/schemas\/metric" + } + }, + "embeddingsTextErrors": { + "type": "object", + "description": "Aggregated number of errors while generating text embeddings per period.", + "x-example": [], + "items": { + "$ref": "#\/components\/schemas\/metric" + } + }, + "embeddingsTextTotal": { + "type": "object", + "description": "Total aggregated number of text embedding calls.", + "x-example": 0, + "items": { + "$ref": "#\/components\/schemas\/metric" + } + }, + "embeddingsTextTokensTotal": { + "type": "object", + "description": "Total aggregated number of tokens processed by text.", + "x-example": 0, + "items": { + "$ref": "#\/components\/schemas\/metric" + } + }, + "embeddingsTextDurationTotal": { + "type": "object", + "description": "Total aggregated duration spent generating text embeddings.", + "x-example": 0, + "items": { + "$ref": "#\/components\/schemas\/metric" + } + }, + "embeddingsTextErrorsTotal": { + "type": "object", + "description": "Total aggregated number of errors while generating text embeddings.", + "x-example": 0, + "items": { + "$ref": "#\/components\/schemas\/metric" + } + }, "networkTotal": { "type": "integer", "description": "Aggregated stats for total network bandwidth.", @@ -74665,9 +82531,12 @@ "required": [ "executionsTotal", "documentsTotal", + "documentsdbDocumentsTotal", "rowsTotal", "databasesTotal", + "documentsdbTotal", "databasesStorageTotal", + "documentsdbDatabasesStorageTotal", "usersTotal", "filesStorageTotal", "functionsStorageTotal", @@ -74678,6 +82547,8 @@ "buildsMbSecondsTotal", "databasesReadsTotal", "databasesWritesTotal", + "documentsdbDatabasesReadsTotal", + "documentsdbDatabasesWritesTotal", "requests", "network", "users", @@ -74693,8 +82564,31 @@ "authPhoneCountryBreakdown", "databasesReads", "databasesWrites", + "documentsdbDatabasesReads", + "documentsdbDatabasesWrites", + "documentsdbDatabasesStorage", "imageTransformations", "imageTransformationsTotal", + "vectordbDatabasesTotal", + "vectordbCollectionsTotal", + "vectordbDocumentsTotal", + "vectordbDatabasesStorageTotal", + "vectordbDatabasesReadsTotal", + "vectordbDatabasesWritesTotal", + "vectordbDatabases", + "vectordbCollections", + "vectordbDocuments", + "vectordbDatabasesStorage", + "vectordbDatabasesReads", + "vectordbDatabasesWrites", + "embeddingsText", + "embeddingsTextTokens", + "embeddingsTextDuration", + "embeddingsTextErrors", + "embeddingsTextTotal", + "embeddingsTextTokensTotal", + "embeddingsTextDurationTotal", + "embeddingsTextErrorsTotal", "networkTotal", "backupsStorageTotal", "screenshotsGenerated", @@ -74705,9 +82599,12 @@ "example": { "executionsTotal": 0, "documentsTotal": 0, + "documentsdbDocumentsTotal": 0, "rowsTotal": 0, "databasesTotal": 0, + "documentsdbTotal": 0, "databasesStorageTotal": 0, + "documentsdbDatabasesStorageTotal": 0, "usersTotal": 0, "filesStorageTotal": 0, "functionsStorageTotal": 0, @@ -74718,6 +82615,8 @@ "buildsMbSecondsTotal": 0, "databasesReadsTotal": 0, "databasesWritesTotal": 0, + "documentsdbDatabasesReadsTotal": 0, + "documentsdbDatabasesWritesTotal": 0, "requests": [], "network": [], "users": [], @@ -74733,8 +82632,31 @@ "authPhoneCountryBreakdown": [], "databasesReads": [], "databasesWrites": [], + "documentsdbDatabasesReads": [], + "documentsdbDatabasesWrites": [], + "documentsdbDatabasesStorage": [], "imageTransformations": [], "imageTransformationsTotal": 0, + "vectordbDatabasesTotal": 0, + "vectordbCollectionsTotal": 0, + "vectordbDocumentsTotal": 0, + "vectordbDatabasesStorageTotal": 0, + "vectordbDatabasesReadsTotal": 0, + "vectordbDatabasesWritesTotal": 0, + "vectordbDatabases": [], + "vectordbCollections": [], + "vectordbDocuments": [], + "vectordbDatabasesStorage": [], + "vectordbDatabasesReads": [], + "vectordbDatabasesWrites": [], + "embeddingsText": [], + "embeddingsTextTokens": [], + "embeddingsTextDuration": [], + "embeddingsTextErrors": [], + "embeddingsTextTotal": 0, + "embeddingsTextTokensTotal": 0, + "embeddingsTextDurationTotal": 0, + "embeddingsTextErrorsTotal": 0, "networkTotal": 0, "backupsStorageTotal": 0, "screenshotsGenerated": [], @@ -75191,6 +83113,62 @@ "type": "string", "description": "Comma-separated list of nameservers.", "x-example": "ns1.example.com,ns2.example.com" + }, + "_APP_DB_ADAPTER": { + "type": "string", + "description": "Database adapter in use.", + "x-example": "mysql" + }, + "supportForRelationships": { + "type": "boolean", + "description": "Whether the database adapter supports relationships.", + "x-example": true + }, + "supportForOperators": { + "type": "boolean", + "description": "Whether the database adapter supports operators.", + "x-example": true + }, + "supportForSpatials": { + "type": "boolean", + "description": "Whether the database adapter supports spatial attributes.", + "x-example": true + }, + "supportForSpatialIndexNull": { + "type": "boolean", + "description": "Whether the database adapter supports spatial indexes on nullable columns.", + "x-example": false + }, + "supportForFulltextWildcard": { + "type": "boolean", + "description": "Whether the database adapter supports fulltext wildcard search.", + "x-example": true + }, + "supportForMultipleFulltextIndexes": { + "type": "boolean", + "description": "Whether the database adapter supports multiple fulltext indexes per collection.", + "x-example": true + }, + "supportForAttributeResizing": { + "type": "boolean", + "description": "Whether the database adapter supports resizing attributes.", + "x-example": true + }, + "supportForSchemas": { + "type": "boolean", + "description": "Whether the database adapter supports fixed schemas with row width limits.", + "x-example": true + }, + "maxIndexLength": { + "type": "integer", + "description": "Maximum index length supported by the database adapter.", + "x-example": 768, + "format": "int32" + }, + "supportForIntegerIds": { + "type": "boolean", + "description": "Whether the database adapter uses integer sequence IDs.", + "x-example": true } }, "required": [ @@ -75208,7 +83186,18 @@ "_APP_DOMAIN_SITES", "_APP_DOMAIN_FUNCTIONS", "_APP_OPTIONS_FORCE_HTTPS", - "_APP_DOMAINS_NAMESERVERS" + "_APP_DOMAINS_NAMESERVERS", + "_APP_DB_ADAPTER", + "supportForRelationships", + "supportForOperators", + "supportForSpatials", + "supportForSpatialIndexNull", + "supportForFulltextWildcard", + "supportForMultipleFulltextIndexes", + "supportForAttributeResizing", + "supportForSchemas", + "maxIndexLength", + "supportForIntegerIds" ], "example": { "_APP_DOMAIN_TARGET_CNAME": "appwrite.io", @@ -75225,7 +83214,18 @@ "_APP_DOMAIN_SITES": "sites.localhost,sites.example.com", "_APP_DOMAIN_FUNCTIONS": "functions.localhost", "_APP_OPTIONS_FORCE_HTTPS": "enabled", - "_APP_DOMAINS_NAMESERVERS": "ns1.example.com,ns2.example.com" + "_APP_DOMAINS_NAMESERVERS": "ns1.example.com,ns2.example.com", + "_APP_DB_ADAPTER": "mysql", + "supportForRelationships": true, + "supportForOperators": true, + "supportForSpatials": true, + "supportForSpatialIndexNull": false, + "supportForFulltextWildcard": true, + "supportForMultipleFulltextIndexes": true, + "supportForAttributeResizing": true, + "supportForSchemas": true, + "maxIndexLength": 768, + "supportForIntegerIds": true } }, "mfaChallenge": { @@ -76027,6 +84027,12 @@ "x-example": 20, "format": "int32" }, + "site": { + "type": "integer", + "description": "Number of sites to be migrated.", + "x-example": 5, + "format": "int32" + }, "size": { "type": "integer", "description": "Size of files to be migrated in mb.", @@ -76047,6 +84053,7 @@ "file", "bucket", "function", + "site", "size", "version" ], @@ -76058,6 +84065,7 @@ "file": 20, "bucket": 20, "function": 20, + "site": 5, "size": 30000, "version": "1.4.0" } @@ -76995,6 +85003,12 @@ "x-example": 25, "format": "int32" }, + "projectInactivityDays": { + "type": "integer", + "description": "Number of days of console inactivity before a project is paused. 0 means pausing is disabled.", + "x-example": 7, + "format": "int32" + }, "alertLimit": { "type": "integer", "description": "Alert threshold percentage", @@ -77173,6 +85187,7 @@ "authPhone", "domains", "logs", + "projectInactivityDays", "alertLimit", "usage", "addons", @@ -77230,6 +85245,7 @@ "authPhone": 10, "domains": 5, "logs": 25, + "projectInactivityDays": 7, "alertLimit": 80, "usage": null, "addons": null, @@ -79411,6 +87427,11 @@ "$ref": "#\/components\/schemas\/dnsRecord" }, "x-example": [] + }, + "transferStatus": { + "type": "string", + "description": "Domain transfer status (e.g., \"pending\", \"completed\", \"failed\").", + "x-example": "pending" } }, "required": [ @@ -79426,7 +87447,8 @@ "autoRenewal", "renewalPrice", "teamId", - "dnsRecords" + "dnsRecords", + "transferStatus" ], "example": { "$id": "5e5ea5c16897e", @@ -79441,7 +87463,8 @@ "autoRenewal": true, "renewalPrice": 2599, "teamId": "5e5ea5c16897e", - "dnsRecords": [] + "dnsRecords": [], + "transferStatus": "pending" } }, "dnsRecord": { @@ -79934,6 +87957,11 @@ "description": "Price period in years.", "x-example": 1, "format": "int32" + }, + "premium": { + "type": "boolean", + "description": "Whether the domain is a premium domain.", + "x-example": false } }, "required": [ @@ -79941,14 +87969,16 @@ "tld", "available", "price", - "periodYears" + "periodYears", + "premium" ], "example": { "domain": "example.com", "tld": "com", "available": true, "price": 25.99, - "periodYears": 1 + "periodYears": 1, + "premium": false } }, "domainSuggestion": { @@ -79990,6 +88020,64 @@ "available": true } }, + "domainTransferOut": { + "description": "domainTransferOut", + "type": "object", + "properties": { + "authCode": { + "type": "string", + "description": "Domain transfer authorization code.", + "x-example": "mock_1a2b3c4d" + } + }, + "required": [ + "authCode" + ], + "example": { + "authCode": "mock_1a2b3c4d" + } + }, + "domainTransferStatus": { + "description": "domainTransferStatus", + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "Transfer status.", + "x-example": "pending_registry", + "enum": [ + "transferrable", + "not_transferrable", + "pending_owner", + "pending_admin", + "pending_registry", + "completed", + "cancelled", + "service_unavailable" + ] + }, + "reason": { + "type": "string", + "description": "Additional transfer status information.", + "x-example": "Transfer in progress" + }, + "timestamp": { + "type": "string", + "description": "Transfer status timestamp in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "status", + "reason", + "timestamp" + ], + "example": { + "status": "pending_registry", + "reason": "Transfer in progress", + "timestamp": "2020-10-15T06:38:00.000+00:00" + } + }, "activityEventList": { "description": "Activity event list", "type": "object", diff --git a/specs/latest/open-api3-latest-server.json b/specs/latest/open-api3-latest-server.json index 2526e786..33609a8a 100644 --- a/specs/latest/open-api3-latest-server.json +++ b/specs/latest/open-api3-latest-server.json @@ -562,7 +562,7 @@ "x-appwrite": { "method": "updateMFA", "group": "mfa", - "weight": 239, + "weight": 223, "cookies": false, "type": "", "demo": "account\/update-mfa.md", @@ -635,7 +635,7 @@ "x-appwrite": { "method": "createMfaAuthenticator", "group": "mfa", - "weight": 241, + "weight": 225, "cookies": false, "type": "", "demo": "account\/create-mfa-authenticator.md", @@ -762,7 +762,7 @@ "x-appwrite": { "method": "updateMfaAuthenticator", "group": "mfa", - "weight": 242, + "weight": 226, "cookies": false, "type": "", "demo": "account\/update-mfa-authenticator.md", @@ -905,7 +905,7 @@ "x-appwrite": { "method": "deleteMfaAuthenticator", "group": "mfa", - "weight": 243, + "weight": 227, "cookies": false, "type": "", "demo": "account\/delete-mfa-authenticator.md", @@ -1032,7 +1032,7 @@ "x-appwrite": { "method": "createMfaChallenge", "group": "mfa", - "weight": 247, + "weight": 231, "cookies": false, "type": "", "demo": "account\/create-mfa-challenge.md", @@ -1169,7 +1169,7 @@ "x-appwrite": { "method": "updateMfaChallenge", "group": "mfa", - "weight": 248, + "weight": 232, "cookies": false, "type": "", "demo": "account\/update-mfa-challenge.md", @@ -1310,7 +1310,7 @@ "x-appwrite": { "method": "listMfaFactors", "group": "mfa", - "weight": 240, + "weight": 224, "cookies": false, "type": "", "demo": "account\/list-mfa-factors.md", @@ -1414,7 +1414,7 @@ "x-appwrite": { "method": "getMfaRecoveryCodes", "group": "mfa", - "weight": 246, + "weight": 230, "cookies": false, "type": "", "demo": "account\/get-mfa-recovery-codes.md", @@ -1516,7 +1516,7 @@ "x-appwrite": { "method": "createMfaRecoveryCodes", "group": "mfa", - "weight": 244, + "weight": 228, "cookies": false, "type": "", "demo": "account\/create-mfa-recovery-codes.md", @@ -1618,7 +1618,7 @@ "x-appwrite": { "method": "updateMfaRecoveryCodes", "group": "mfa", - "weight": 245, + "weight": 229, "cookies": false, "type": "", "demo": "account\/update-mfa-recovery-codes.md", @@ -3768,7 +3768,7 @@ "x-appwrite": { "method": "listEvents", "group": null, - "weight": 779, + "weight": 800, "cookies": false, "type": "", "demo": "activities\/list-events.md", @@ -3832,7 +3832,7 @@ "x-appwrite": { "method": "getEvent", "group": "events", - "weight": 780, + "weight": 801, "cookies": false, "type": "", "demo": "activities\/get-event.md", @@ -3889,7 +3889,7 @@ "x-appwrite": { "method": "getBrowser", "group": null, - "weight": 250, + "weight": 234, "cookies": false, "type": "location", "demo": "avatars\/get-browser.md", @@ -4019,7 +4019,7 @@ "x-appwrite": { "method": "getCreditCard", "group": null, - "weight": 249, + "weight": 233, "cookies": false, "type": "location", "demo": "avatars\/get-credit-card.md", @@ -4155,7 +4155,7 @@ "x-appwrite": { "method": "getFavicon", "group": null, - "weight": 253, + "weight": 237, "cookies": false, "type": "location", "demo": "avatars\/get-favicon.md", @@ -4217,7 +4217,7 @@ "x-appwrite": { "method": "getFlag", "group": null, - "weight": 251, + "weight": 235, "cookies": false, "type": "location", "demo": "avatars\/get-flag.md", @@ -4709,7 +4709,7 @@ "x-appwrite": { "method": "getImage", "group": null, - "weight": 252, + "weight": 236, "cookies": false, "type": "location", "demo": "avatars\/get-image.md", @@ -4795,7 +4795,7 @@ "x-appwrite": { "method": "getInitials", "group": null, - "weight": 255, + "weight": 239, "cookies": false, "type": "location", "demo": "avatars\/get-initials.md", @@ -4891,7 +4891,7 @@ "x-appwrite": { "method": "getQR", "group": null, - "weight": 254, + "weight": 238, "cookies": false, "type": "location", "demo": "avatars\/get-qr.md", @@ -4987,7 +4987,7 @@ "x-appwrite": { "method": "getScreenshot", "group": null, - "weight": 256, + "weight": 240, "cookies": false, "type": "location", "demo": "avatars\/get-screenshot.md", @@ -5742,7 +5742,7 @@ "x-appwrite": { "method": "listArchives", "group": null, - "weight": 749, + "weight": 768, "cookies": false, "type": "", "demo": "backups\/list-archives.md", @@ -5807,7 +5807,7 @@ "x-appwrite": { "method": "createArchive", "group": null, - "weight": 750, + "weight": 769, "cookies": false, "type": "", "demo": "backups\/create-archive.md", @@ -5847,6 +5847,9 @@ "type": "string", "enum": [ "databases", + "tablesdb", + "documentsdb", + "vectordb", "functions", "storage" ], @@ -5894,7 +5897,7 @@ "x-appwrite": { "method": "getArchive", "group": null, - "weight": 748, + "weight": 767, "cookies": false, "type": "", "demo": "backups\/get-archive.md", @@ -5949,7 +5952,7 @@ "x-appwrite": { "method": "deleteArchive", "group": null, - "weight": 751, + "weight": 770, "cookies": false, "type": "", "demo": "backups\/delete-archive.md", @@ -6013,7 +6016,7 @@ "x-appwrite": { "method": "listPolicies", "group": null, - "weight": 744, + "weight": 763, "cookies": false, "type": "", "demo": "backups\/list-policies.md", @@ -6078,7 +6081,7 @@ "x-appwrite": { "method": "createPolicy", "group": null, - "weight": 745, + "weight": 764, "cookies": false, "type": "", "demo": "backups\/create-policy.md", @@ -6128,6 +6131,9 @@ "type": "string", "enum": [ "databases", + "tablesdb", + "documentsdb", + "vectordb", "functions", "storage" ], @@ -6194,7 +6200,7 @@ "x-appwrite": { "method": "getPolicy", "group": null, - "weight": 743, + "weight": 762, "cookies": false, "type": "", "demo": "backups\/get-policy.md", @@ -6256,7 +6262,7 @@ "x-appwrite": { "method": "updatePolicy", "group": null, - "weight": 746, + "weight": 765, "cookies": false, "type": "", "demo": "backups\/update-policy.md", @@ -6346,7 +6352,7 @@ "x-appwrite": { "method": "deletePolicy", "group": null, - "weight": 747, + "weight": 766, "cookies": false, "type": "", "demo": "backups\/delete-policy.md", @@ -6410,7 +6416,7 @@ "x-appwrite": { "method": "createRestoration", "group": null, - "weight": 754, + "weight": 773, "cookies": false, "type": "", "demo": "backups\/create-restoration.md", @@ -6455,6 +6461,9 @@ "type": "string", "enum": [ "databases", + "tablesdb", + "documentsdb", + "vectordb", "functions", "storage" ], @@ -6507,7 +6516,7 @@ "x-appwrite": { "method": "listRestorations", "group": null, - "weight": 753, + "weight": 772, "cookies": false, "type": "", "demo": "backups\/list-restorations.md", @@ -6574,7 +6583,7 @@ "x-appwrite": { "method": "getRestoration", "group": null, - "weight": 752, + "weight": 771, "cookies": false, "type": "", "demo": "backups\/get-restoration.md", @@ -6638,7 +6647,7 @@ "x-appwrite": { "method": "list", "group": "databases", - "weight": 264, + "weight": 248, "cookies": false, "type": "", "demo": "databases\/list.md", @@ -6759,7 +6768,7 @@ "x-appwrite": { "method": "create", "group": "databases", - "weight": 260, + "weight": 244, "cookies": false, "type": "", "demo": "databases\/create.md", @@ -6878,7 +6887,7 @@ "x-appwrite": { "method": "listTransactions", "group": "transactions", - "weight": 332, + "weight": 316, "cookies": false, "type": "", "demo": "databases\/list-transactions.md", @@ -6947,7 +6956,7 @@ "x-appwrite": { "method": "createTransaction", "group": "transactions", - "weight": 328, + "weight": 312, "cookies": false, "type": "", "demo": "databases\/create-transaction.md", @@ -7020,7 +7029,7 @@ "x-appwrite": { "method": "getTransaction", "group": "transactions", - "weight": 329, + "weight": 313, "cookies": false, "type": "", "demo": "databases\/get-transaction.md", @@ -7086,7 +7095,7 @@ "x-appwrite": { "method": "updateTransaction", "group": "transactions", - "weight": 330, + "weight": 314, "cookies": false, "type": "", "demo": "databases\/update-transaction.md", @@ -7166,7 +7175,7 @@ "x-appwrite": { "method": "deleteTransaction", "group": "transactions", - "weight": 331, + "weight": 315, "cookies": false, "type": "", "demo": "databases\/delete-transaction.md", @@ -7234,7 +7243,7 @@ "x-appwrite": { "method": "createOperations", "group": "transactions", - "weight": 333, + "weight": 317, "cookies": false, "type": "", "demo": "databases\/create-operations.md", @@ -7321,7 +7330,7 @@ "x-appwrite": { "method": "get", "group": "databases", - "weight": 261, + "weight": 245, "cookies": false, "type": "", "demo": "databases\/get.md", @@ -7417,7 +7426,7 @@ "x-appwrite": { "method": "update", "group": "databases", - "weight": 262, + "weight": 246, "cookies": false, "type": "", "demo": "databases\/update.md", @@ -7529,7 +7538,7 @@ "x-appwrite": { "method": "delete", "group": "databases", - "weight": 263, + "weight": 247, "cookies": false, "type": "", "demo": "databases\/delete.md", @@ -7626,7 +7635,7 @@ "x-appwrite": { "method": "listCollections", "group": "collections", - "weight": 272, + "weight": 256, "cookies": false, "type": "", "demo": "databases\/list-collections.md", @@ -7727,7 +7736,7 @@ "x-appwrite": { "method": "createCollection", "group": "collections", - "weight": 268, + "weight": 252, "cookies": false, "type": "", "demo": "databases\/create-collection.md", @@ -7855,7 +7864,7 @@ "x-appwrite": { "method": "getCollection", "group": "collections", - "weight": 269, + "weight": 253, "cookies": false, "type": "", "demo": "databases\/get-collection.md", @@ -7931,7 +7940,7 @@ "x-appwrite": { "method": "updateCollection", "group": "collections", - "weight": 270, + "weight": 254, "cookies": false, "type": "", "demo": "databases\/update-collection.md", @@ -8035,7 +8044,7 @@ "x-appwrite": { "method": "deleteCollection", "group": "collections", - "weight": 271, + "weight": 255, "cookies": false, "type": "", "demo": "databases\/delete-collection.md", @@ -8113,7 +8122,7 @@ "x-appwrite": { "method": "listAttributes", "group": "attributes", - "weight": 289, + "weight": 273, "cookies": false, "type": "", "demo": "databases\/list-attributes.md", @@ -8215,7 +8224,7 @@ "x-appwrite": { "method": "createBooleanAttribute", "group": "attributes", - "weight": 290, + "weight": 274, "cookies": false, "type": "", "demo": "databases\/create-boolean-attribute.md", @@ -8258,7 +8267,7 @@ }, { "name": "collectionId", - "description": "Collection ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "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", @@ -8329,7 +8338,7 @@ "x-appwrite": { "method": "updateBooleanAttribute", "group": "attributes", - "weight": 291, + "weight": 275, "cookies": false, "type": "", "demo": "databases\/update-boolean-attribute.md", @@ -8448,7 +8457,7 @@ "x-appwrite": { "method": "createDatetimeAttribute", "group": "attributes", - "weight": 292, + "weight": 276, "cookies": false, "type": "", "demo": "databases\/create-datetime-attribute.md", @@ -8562,7 +8571,7 @@ "x-appwrite": { "method": "updateDatetimeAttribute", "group": "attributes", - "weight": 293, + "weight": 277, "cookies": false, "type": "", "demo": "databases\/update-datetime-attribute.md", @@ -8681,7 +8690,7 @@ "x-appwrite": { "method": "createEmailAttribute", "group": "attributes", - "weight": 294, + "weight": 278, "cookies": false, "type": "", "demo": "databases\/create-email-attribute.md", @@ -8796,7 +8805,7 @@ "x-appwrite": { "method": "updateEmailAttribute", "group": "attributes", - "weight": 295, + "weight": 279, "cookies": false, "type": "", "demo": "databases\/update-email-attribute.md", @@ -8916,7 +8925,7 @@ "x-appwrite": { "method": "createEnumAttribute", "group": "attributes", - "weight": 296, + "weight": 280, "cookies": false, "type": "", "demo": "databases\/create-enum-attribute.md", @@ -9039,7 +9048,7 @@ "x-appwrite": { "method": "updateEnumAttribute", "group": "attributes", - "weight": 297, + "weight": 281, "cookies": false, "type": "", "demo": "databases\/update-enum-attribute.md", @@ -9167,7 +9176,7 @@ "x-appwrite": { "method": "createFloatAttribute", "group": "attributes", - "weight": 298, + "weight": 282, "cookies": false, "type": "", "demo": "databases\/create-float-attribute.md", @@ -9296,7 +9305,7 @@ "x-appwrite": { "method": "updateFloatAttribute", "group": "attributes", - "weight": 299, + "weight": 283, "cookies": false, "type": "", "demo": "databases\/update-float-attribute.md", @@ -9430,7 +9439,7 @@ "x-appwrite": { "method": "createIntegerAttribute", "group": "attributes", - "weight": 300, + "weight": 284, "cookies": false, "type": "", "demo": "databases\/create-integer-attribute.md", @@ -9559,7 +9568,7 @@ "x-appwrite": { "method": "updateIntegerAttribute", "group": "attributes", - "weight": 301, + "weight": 285, "cookies": false, "type": "", "demo": "databases\/update-integer-attribute.md", @@ -9693,7 +9702,7 @@ "x-appwrite": { "method": "createIpAttribute", "group": "attributes", - "weight": 302, + "weight": 286, "cookies": false, "type": "", "demo": "databases\/create-ip-attribute.md", @@ -9807,7 +9816,7 @@ "x-appwrite": { "method": "updateIpAttribute", "group": "attributes", - "weight": 303, + "weight": 287, "cookies": false, "type": "", "demo": "databases\/update-ip-attribute.md", @@ -9926,7 +9935,7 @@ "x-appwrite": { "method": "createLineAttribute", "group": "attributes", - "weight": 304, + "weight": 288, "cookies": false, "type": "", "demo": "databases\/create-line-attribute.md", @@ -10042,7 +10051,7 @@ "x-appwrite": { "method": "updateLineAttribute", "group": "attributes", - "weight": 305, + "weight": 289, "cookies": false, "type": "", "demo": "databases\/update-line-attribute.md", @@ -10167,7 +10176,7 @@ "x-appwrite": { "method": "createLongtextAttribute", "group": "attributes", - "weight": 322, + "weight": 306, "cookies": false, "type": "", "demo": "databases\/create-longtext-attribute.md", @@ -10282,7 +10291,7 @@ "x-appwrite": { "method": "updateLongtextAttribute", "group": "attributes", - "weight": 323, + "weight": 307, "cookies": false, "type": "", "demo": "databases\/update-longtext-attribute.md", @@ -10397,7 +10406,7 @@ "x-appwrite": { "method": "createMediumtextAttribute", "group": "attributes", - "weight": 320, + "weight": 304, "cookies": false, "type": "", "demo": "databases\/create-mediumtext-attribute.md", @@ -10512,7 +10521,7 @@ "x-appwrite": { "method": "updateMediumtextAttribute", "group": "attributes", - "weight": 321, + "weight": 305, "cookies": false, "type": "", "demo": "databases\/update-mediumtext-attribute.md", @@ -10627,7 +10636,7 @@ "x-appwrite": { "method": "createPointAttribute", "group": "attributes", - "weight": 306, + "weight": 290, "cookies": false, "type": "", "demo": "databases\/create-point-attribute.md", @@ -10743,7 +10752,7 @@ "x-appwrite": { "method": "updatePointAttribute", "group": "attributes", - "weight": 307, + "weight": 291, "cookies": false, "type": "", "demo": "databases\/update-point-attribute.md", @@ -10868,7 +10877,7 @@ "x-appwrite": { "method": "createPolygonAttribute", "group": "attributes", - "weight": 308, + "weight": 292, "cookies": false, "type": "", "demo": "databases\/create-polygon-attribute.md", @@ -10984,7 +10993,7 @@ "x-appwrite": { "method": "updatePolygonAttribute", "group": "attributes", - "weight": 309, + "weight": 293, "cookies": false, "type": "", "demo": "databases\/update-polygon-attribute.md", @@ -11109,7 +11118,7 @@ "x-appwrite": { "method": "createRelationshipAttribute", "group": "attributes", - "weight": 310, + "weight": 294, "cookies": false, "type": "", "demo": "databases\/create-relationship-attribute.md", @@ -11225,147 +11234,21 @@ } } }, - "\/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": { - "method": "createStringAttribute", - "group": "attributes", - "weight": 312, - "cookies": false, - "type": "", - "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, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-string-attribute.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createStringColumn" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "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", - "x-example": "<COLLECTION_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "x-example": null - }, - "size": { - "type": "integer", - "description": "Attribute size for text attributes, in number of characters.", - "x-example": 1, - "format": "int32" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "x-example": false - }, - "default": { - "type": "string", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "x-example": "<DEFAULT>", - "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "x-example": false - }, - "encrypt": { - "type": "boolean", - "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.", - "x-example": false - } - }, - "required": [ - "key", - "size", - "required" - ] - } - } - } - } - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/string\/{key}": { + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/relationship\/{key}": { "patch": { - "summary": "Update string attribute", - "operationId": "databasesUpdateStringAttribute", + "summary": "Update relationship attribute", + "operationId": "databasesUpdateRelationshipAttribute", "tags": [ "databases" ], - "description": "Update a string attribute. Changing the `default` value will not update already existing documents.\n", + "description": "Update relationship attribute. [Learn more about relationship attributes](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-attributes).\n", "responses": { "200": { - "description": "AttributeString", + "description": "AttributeRelationship", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/attributeString" + "$ref": "#\/components\/schemas\/attributeRelationship" } } } @@ -11373,12 +11256,12 @@ }, "deprecated": true, "x-appwrite": { - "method": "updateStringAttribute", + "method": "updateRelationshipAttribute", "group": "attributes", - "weight": 313, + "weight": 295, "cookies": false, "type": "", - "demo": "databases\/update-string-attribute.md", + "demo": "databases\/update-relationship-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -11389,10 +11272,252 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-string-attribute.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-relationship-attribute.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.updateStringColumn" + "replaceWith": "tablesDB.updateRelationshipColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "schema": { + "type": "string" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "onDelete": { + "type": "string", + "description": "Constraints option", + "x-example": "cascade", + "enum": [ + "cascade", + "restrict", + "setNull" + ], + "x-enum-name": "RelationMutate", + "x-enum-keys": [] + }, + "newKey": { + "type": "string", + "description": "New Attribute Key.", + "x-example": null, + "x-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": { + "method": "createStringAttribute", + "group": "attributes", + "weight": 296, + "cookies": false, + "type": "", + "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-string-attribute.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createStringColumn" + }, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "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", + "x-example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "x-example": null + }, + "size": { + "type": "integer", + "description": "Attribute size for text attributes, in number of characters.", + "x-example": 1, + "format": "int32" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "x-example": false + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "x-example": "<DEFAULT>", + "x-nullable": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "x-example": false + }, + "encrypt": { + "type": "boolean", + "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.", + "x-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": { + "method": "updateStringAttribute", + "group": "attributes", + "weight": 297, + "cookies": false, + "type": "", + "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-string-attribute.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateStringColumn" }, "auth": { "Project": [], @@ -11501,7 +11626,7 @@ "x-appwrite": { "method": "createTextAttribute", "group": "attributes", - "weight": 318, + "weight": 302, "cookies": false, "type": "", "demo": "databases\/create-text-attribute.md", @@ -11616,7 +11741,7 @@ "x-appwrite": { "method": "updateTextAttribute", "group": "attributes", - "weight": 319, + "weight": 303, "cookies": false, "type": "", "demo": "databases\/update-text-attribute.md", @@ -11731,7 +11856,7 @@ "x-appwrite": { "method": "createUrlAttribute", "group": "attributes", - "weight": 314, + "weight": 298, "cookies": false, "type": "", "demo": "databases\/create-url-attribute.md", @@ -11846,7 +11971,7 @@ "x-appwrite": { "method": "updateUrlAttribute", "group": "attributes", - "weight": 315, + "weight": 299, "cookies": false, "type": "", "demo": "databases\/update-url-attribute.md", @@ -11966,7 +12091,7 @@ "x-appwrite": { "method": "createVarcharAttribute", "group": "attributes", - "weight": 316, + "weight": 300, "cookies": false, "type": "", "demo": "databases\/create-varchar-attribute.md", @@ -12088,7 +12213,7 @@ "x-appwrite": { "method": "updateVarcharAttribute", "group": "attributes", - "weight": 317, + "weight": 301, "cookies": false, "type": "", "demo": "databases\/update-varchar-attribute.md", @@ -12241,7 +12366,7 @@ "x-appwrite": { "method": "getAttribute", "group": "attributes", - "weight": 287, + "weight": 271, "cookies": false, "type": "", "demo": "databases\/get-attribute.md", @@ -12319,7 +12444,7 @@ "x-appwrite": { "method": "deleteAttribute", "group": "attributes", - "weight": 288, + "weight": 272, "cookies": false, "type": "", "demo": "databases\/delete-attribute.md", @@ -12382,123 +12507,6 @@ ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/{key}\/relationship": { - "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": { - "method": "updateRelationshipAttribute", - "group": "attributes", - "weight": 311, - "cookies": false, - "type": "", - "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, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-relationship-attribute.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateRelationshipColumn" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<COLLECTION_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", - "required": true, - "schema": { - "type": "string" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "onDelete": { - "type": "string", - "description": "Constraints option", - "x-example": "cascade", - "enum": [ - "cascade", - "restrict", - "setNull" - ], - "x-enum-name": "RelationMutate", - "x-enum-keys": [], - "x-nullable": true - }, - "newKey": { - "type": "string", - "description": "New Attribute Key.", - "x-example": null, - "x-nullable": true - } - } - } - } - } - } - } - }, "\/databases\/{databaseId}\/collections\/{collectionId}\/documents": { "get": { "summary": "List documents", @@ -12523,7 +12531,7 @@ "x-appwrite": { "method": "listDocuments", "group": "documents", - "weight": 283, + "weight": 267, "cookies": false, "type": "", "demo": "databases\/list-documents.md", @@ -12611,6 +12619,18 @@ "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", + "x-example": 0, + "default": 0 + }, + "in": "query" } ] }, @@ -12637,7 +12657,7 @@ "x-appwrite": { "method": "createDocument", "group": "documents", - "weight": 275, + "weight": 259, "cookies": false, "type": "", "demo": "databases\/create-document.md", @@ -12707,6 +12727,7 @@ "databaseId", "collectionId", "documents", + "transactionId", "transactionId" ], "required": [ @@ -12832,7 +12853,7 @@ "x-appwrite": { "method": "upsertDocuments", "group": "documents", - "weight": 280, + "weight": 264, "cookies": false, "type": "", "demo": "databases\/upsert-documents.md", @@ -12842,6 +12863,8 @@ "scope": "documents.write", "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, @@ -12858,7 +12881,7 @@ "desc": "", "auth": { "Project": [], - "Key": [] + "Session": [] }, "parameters": [ "databaseId", @@ -12888,13 +12911,15 @@ ], "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ @@ -12971,7 +12996,7 @@ "x-appwrite": { "method": "updateDocuments", "group": "documents", - "weight": 278, + "weight": 262, "cookies": false, "type": "", "demo": "databases\/update-documents.md", @@ -13077,7 +13102,7 @@ "x-appwrite": { "method": "deleteDocuments", "group": "documents", - "weight": 282, + "weight": 266, "cookies": false, "type": "", "demo": "databases\/delete-documents.md", @@ -13180,7 +13205,7 @@ "x-appwrite": { "method": "getDocument", "group": "documents", - "weight": 276, + "weight": 260, "cookies": false, "type": "", "demo": "databases\/get-document.md", @@ -13293,7 +13318,7 @@ "x-appwrite": { "method": "upsertDocument", "group": "documents", - "weight": 279, + "weight": 263, "cookies": false, "type": "", "demo": "databases\/upsert-document.md", @@ -13451,7 +13476,7 @@ "x-appwrite": { "method": "updateDocument", "group": "documents", - "weight": 277, + "weight": 261, "cookies": false, "type": "", "demo": "databases\/update-document.md", @@ -13565,7 +13590,7 @@ "x-appwrite": { "method": "deleteDocument", "group": "documents", - "weight": 281, + "weight": 265, "cookies": false, "type": "", "demo": "databases\/delete-document.md", @@ -13674,7 +13699,7 @@ "x-appwrite": { "method": "decrementDocumentAttribute", "group": "documents", - "weight": 286, + "weight": 270, "cookies": false, "type": "", "demo": "databases\/decrement-document-attribute.md", @@ -13805,7 +13830,7 @@ "x-appwrite": { "method": "incrementDocumentAttribute", "group": "documents", - "weight": 285, + "weight": 269, "cookies": false, "type": "", "demo": "databases\/increment-document-attribute.md", @@ -13936,7 +13961,7 @@ "x-appwrite": { "method": "listIndexes", "group": "indexes", - "weight": 327, + "weight": 311, "cookies": false, "type": "", "demo": "databases\/list-indexes.md", @@ -14036,7 +14061,7 @@ "x-appwrite": { "method": "createIndex", "group": "indexes", - "weight": 324, + "weight": 308, "cookies": false, "type": "", "demo": "databases\/create-index.md", @@ -14178,7 +14203,7 @@ "x-appwrite": { "method": "getIndex", "group": "indexes", - "weight": 325, + "weight": 309, "cookies": false, "type": "", "demo": "databases\/get-index.md", @@ -14256,7 +14281,7 @@ "x-appwrite": { "method": "deleteIndex", "group": "indexes", - "weight": 326, + "weight": 310, "cookies": false, "type": "", "demo": "databases\/delete-index.md", @@ -14319,21 +14344,21 @@ ] } }, - "\/functions": { + "\/documentsdb": { "get": { - "summary": "List functions", - "operationId": "functionsList", + "summary": "List databases", + "operationId": "documentsDBList", "tags": [ - "functions" + "documentsDB" ], - "description": "Get a list of all the project's functions. You can use the query params to filter your results.", + "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": "Functions List", + "description": "Databases List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/functionList" + "$ref": "#\/components\/schemas\/databaseList" } } } @@ -14342,21 +14367,22 @@ "deprecated": false, "x-appwrite": { "method": "list", - "group": "functions", - "weight": 561, + "group": "documentsdb", + "weight": 395, "cookies": false, "type": "", - "demo": "functions\/list.md", + "demo": "documentsdb\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", + "scope": "databases.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/list.md", "auth": { "Project": [], "Key": [] @@ -14371,7 +14397,7 @@ "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", + "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", @@ -14407,19 +14433,19 @@ ] }, "post": { - "summary": "Create function", - "operationId": "functionsCreate", + "summary": "Create database", + "operationId": "documentsDBCreate", "tags": [ - "functions" + "documentsDB" ], - "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.", + "description": "Create a new Database.\n", "responses": { "201": { - "description": "Function", + "description": "Database", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/function" + "$ref": "#\/components\/schemas\/database" } } } @@ -14428,21 +14454,22 @@ "deprecated": false, "x-appwrite": { "method": "create", - "group": "functions", - "weight": 558, + "group": "documentsdb", + "weight": 391, "cookies": false, "type": "", - "demo": "functions\/create.md", + "demo": "documentsdb\/create.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/create.md", "auth": { "Project": [], "Key": [] @@ -14460,274 +14487,25 @@ "schema": { "type": "object", "properties": { - "functionId": { + "databaseId": { "type": "string", - "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.", - "x-example": "<FUNCTION_ID>" + "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.", + "x-example": "<DATABASE_ID>" }, "name": { "type": "string", - "description": "Function name. Max length: 128 chars.", + "description": "Database name. Max length: 128 chars.", "x-example": "<NAME>" }, - "runtime": { - "type": "string", - "description": "Execution runtime.", - "x-example": "node-14.5", - "enum": [ - "node-14.5", - "node-16.0", - "node-18.0", - "node-19.0", - "node-20.0", - "node-21.0", - "node-22", - "node-23", - "node-24", - "node-25", - "php-8.0", - "php-8.1", - "php-8.2", - "php-8.3", - "php-8.4", - "ruby-3.0", - "ruby-3.1", - "ruby-3.2", - "ruby-3.3", - "ruby-3.4", - "ruby-4.0", - "python-3.8", - "python-3.9", - "python-3.10", - "python-3.11", - "python-3.12", - "python-3.13", - "python-3.14", - "python-ml-3.11", - "python-ml-3.12", - "python-ml-3.13", - "deno-1.21", - "deno-1.24", - "deno-1.35", - "deno-1.40", - "deno-1.46", - "deno-2.0", - "deno-2.5", - "deno-2.6", - "dart-2.15", - "dart-2.16", - "dart-2.17", - "dart-2.18", - "dart-2.19", - "dart-3.0", - "dart-3.1", - "dart-3.3", - "dart-3.5", - "dart-3.8", - "dart-3.9", - "dart-3.10", - "dotnet-6.0", - "dotnet-7.0", - "dotnet-8.0", - "dotnet-10", - "java-8.0", - "java-11.0", - "java-17.0", - "java-18.0", - "java-21.0", - "java-22", - "java-25", - "swift-5.5", - "swift-5.8", - "swift-5.9", - "swift-5.10", - "swift-6.2", - "kotlin-1.6", - "kotlin-1.8", - "kotlin-1.9", - "kotlin-2.0", - "kotlin-2.3", - "cpp-17", - "cpp-20", - "bun-1.0", - "bun-1.1", - "bun-1.2", - "bun-1.3", - "go-1.23", - "go-1.24", - "go-1.25", - "go-1.26", - "static-1", - "flutter-3.24", - "flutter-3.27", - "flutter-3.29", - "flutter-3.32", - "flutter-3.35", - "flutter-3.38" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "execute": { - "type": "array", - "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.", - "x-example": "[\"any\"]", - "items": { - "type": "string" - } - }, - "events": { - "type": "array", - "description": "Events list. Maximum of 100 events are allowed.", - "x-example": null, - "items": { - "type": "string" - } - }, - "schedule": { - "type": "string", - "description": "Schedule CRON syntax.", - "x-example": null - }, - "timeout": { - "type": "integer", - "description": "Function maximum execution time in seconds.", - "x-example": 1, - "format": "int32" - }, "enabled": { "type": "boolean", - "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.", - "x-example": false - }, - "logging": { - "type": "boolean", - "description": "When disabled, executions will exclude logs and errors, and will be slightly faster.", - "x-example": false - }, - "entrypoint": { - "type": "string", - "description": "Entrypoint File. This path is relative to the \"providerRootDirectory\".", - "x-example": "<ENTRYPOINT>" - }, - "commands": { - "type": "string", - "description": "Build Commands.", - "x-example": "<COMMANDS>" - }, - "scopes": { - "type": "array", - "description": "List of scopes allowed for API key auto-generated for every execution. Maximum of 100 scopes are allowed.", - "x-example": null, - "items": { - "type": "string", - "enum": [ - "sessions.write", - "users.read", - "users.write", - "teams.read", - "teams.write", - "databases.read", - "databases.write", - "collections.read", - "collections.write", - "tables.read", - "tables.write", - "attributes.read", - "attributes.write", - "columns.read", - "columns.write", - "indexes.read", - "indexes.write", - "documents.read", - "documents.write", - "rows.read", - "rows.write", - "files.read", - "files.write", - "buckets.read", - "buckets.write", - "functions.read", - "functions.write", - "sites.read", - "sites.write", - "log.read", - "log.write", - "execution.read", - "execution.write", - "locale.read", - "avatars.read", - "health.read", - "providers.read", - "providers.write", - "messages.read", - "messages.write", - "topics.read", - "topics.write", - "subscribers.read", - "subscribers.write", - "targets.read", - "targets.write", - "rules.read", - "rules.write", - "schedules.read", - "schedules.write", - "migrations.read", - "migrations.write", - "vcs.read", - "vcs.write", - "assistant.read", - "tokens.read", - "tokens.write", - "policies.write", - "policies.read", - "archives.read", - "archives.write", - "restorations.read", - "restorations.write", - "domains.read", - "domains.write", - "events.read" - ], - "x-enum-name": null, - "x-enum-keys": [] - } - }, - "installationId": { - "type": "string", - "description": "Appwrite Installation ID for VCS (Version Control System) deployment.", - "x-example": "<INSTALLATION_ID>" - }, - "providerRepositoryId": { - "type": "string", - "description": "Repository ID of the repo linked to the function.", - "x-example": "<PROVIDER_REPOSITORY_ID>" - }, - "providerBranch": { - "type": "string", - "description": "Production branch for the repo linked to the function.", - "x-example": "<PROVIDER_BRANCH>" - }, - "providerSilentMode": { - "type": "boolean", - "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.", + "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.", "x-example": false - }, - "providerRootDirectory": { - "type": "string", - "description": "Path to function code in the linked repo.", - "x-example": "<PROVIDER_ROOT_DIRECTORY>" - }, - "specification": { - "type": "string", - "description": "Runtime specification for the function and builds.", - "x-example": null } }, "required": [ - "functionId", - "name", - "runtime" + "databaseId", + "name" ] } } @@ -14735,21 +14513,21 @@ } } }, - "\/functions\/runtimes": { + "\/documentsdb\/transactions": { "get": { - "summary": "List runtimes", - "operationId": "functionsListRuntimes", + "summary": "List transactions", + "operationId": "documentsDBListTransactions", "tags": [ - "functions" + "documentsDB" ], - "description": "Get a list of all runtimes that are currently active on your instance.", + "description": false, "responses": { "200": { - "description": "Runtimes List", + "description": "Transaction List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/runtimeList" + "$ref": "#\/components\/schemas\/transactionList" } } } @@ -14757,18 +14535,20 @@ }, "deprecated": false, "x-appwrite": { - "method": "listRuntimes", - "group": "runtimes", - "weight": 563, + "method": "listTransactions", + "group": "transactions", + "weight": 425, "cookies": false, "type": "", - "demo": "functions\/list-runtimes.md", + "demo": "documentsdb\/list-transactions.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "documents.read", "platforms": [ "console", + "server", + "client", "server" ], "packaging": false, @@ -14781,26 +14561,41 @@ "security": [ { "Project": [], - "Key": [] + "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" } ] - } - }, - "\/functions\/specifications": { - "get": { - "summary": "List specifications", - "operationId": "functionsListSpecifications", + }, + "post": { + "summary": "Create transaction", + "operationId": "documentsDBCreateTransaction", "tags": [ - "functions" + "documentsDB" ], - "description": "List allowed function specifications for this instance.", + "description": false, "responses": { - "200": { - "description": "Specifications List", + "201": { + "description": "Transaction", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/specificationList" + "$ref": "#\/components\/schemas\/transaction" } } } @@ -14808,19 +14603,21 @@ }, "deprecated": false, "x-appwrite": { - "method": "listSpecifications", - "group": "runtimes", - "weight": 564, + "method": "createTransaction", + "group": "transactions", + "weight": 421, "cookies": false, "type": "", - "demo": "functions\/list-specifications.md", + "demo": "documentsdb\/create-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", + "scope": "documents.write", "platforms": [ + "console", "server", - "console" + "client", + "server" ], "packaging": false, "public": true, @@ -14832,26 +14629,45 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "Session": [], + "JWT": [] } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ttl": { + "type": "integer", + "description": "Seconds before the transaction expires.", + "x-example": 60, + "format": "int32" + } + } + } + } + } + } } }, - "\/functions\/{functionId}": { + "\/documentsdb\/transactions\/{transactionId}": { "get": { - "summary": "Get function", - "operationId": "functionsGet", + "summary": "Get transaction", + "operationId": "documentsDBGetTransaction", "tags": [ - "functions" + "documentsDB" ], - "description": "Get a function by its unique ID.", + "description": false, "responses": { "200": { - "description": "Function", + "description": "Transaction", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/function" + "$ref": "#\/components\/schemas\/transaction" } } } @@ -14859,18 +14675,20 @@ }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": "functions", - "weight": 559, + "method": "getTransaction", + "group": "transactions", + "weight": 422, "cookies": false, "type": "", - "demo": "functions\/get.md", + "demo": "documentsdb\/get-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", + "scope": "documents.read", "platforms": [ "console", + "server", + "client", "server" ], "packaging": false, @@ -14883,36 +14701,38 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "schema": { "type": "string", - "x-example": "<FUNCTION_ID>" + "x-example": "<TRANSACTION_ID>" }, "in": "path" } ] }, - "put": { - "summary": "Update function", - "operationId": "functionsUpdate", + "patch": { + "summary": "Update transaction", + "operationId": "documentsDBUpdateTransaction", "tags": [ - "functions" + "documentsDB" ], - "description": "Update function by its unique ID.", + "description": false, "responses": { "200": { - "description": "Function", + "description": "Transaction", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/function" + "$ref": "#\/components\/schemas\/transaction" } } } @@ -14920,18 +14740,20 @@ }, "deprecated": false, "x-appwrite": { - "method": "update", - "group": "functions", - "weight": 560, + "method": "updateTransaction", + "group": "transactions", + "weight": 423, "cookies": false, "type": "", - "demo": "functions\/update.md", + "demo": "documentsdb\/update-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", + "scope": "documents.write", "platforms": [ "console", + "server", + "client", "server" ], "packaging": false, @@ -14944,17 +14766,19 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "schema": { "type": "string", - "x-example": "<FUNCTION_ID>" + "x-example": "<TRANSACTION_ID>" }, "in": "path" } @@ -14965,281 +14789,29 @@ "schema": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "Function name. Max length: 128 chars.", - "x-example": "<NAME>" - }, - "runtime": { - "type": "string", - "description": "Execution runtime.", - "x-example": "node-14.5", - "enum": [ - "node-14.5", - "node-16.0", - "node-18.0", - "node-19.0", - "node-20.0", - "node-21.0", - "node-22", - "node-23", - "node-24", - "node-25", - "php-8.0", - "php-8.1", - "php-8.2", - "php-8.3", - "php-8.4", - "ruby-3.0", - "ruby-3.1", - "ruby-3.2", - "ruby-3.3", - "ruby-3.4", - "ruby-4.0", - "python-3.8", - "python-3.9", - "python-3.10", - "python-3.11", - "python-3.12", - "python-3.13", - "python-3.14", - "python-ml-3.11", - "python-ml-3.12", - "python-ml-3.13", - "deno-1.21", - "deno-1.24", - "deno-1.35", - "deno-1.40", - "deno-1.46", - "deno-2.0", - "deno-2.5", - "deno-2.6", - "dart-2.15", - "dart-2.16", - "dart-2.17", - "dart-2.18", - "dart-2.19", - "dart-3.0", - "dart-3.1", - "dart-3.3", - "dart-3.5", - "dart-3.8", - "dart-3.9", - "dart-3.10", - "dotnet-6.0", - "dotnet-7.0", - "dotnet-8.0", - "dotnet-10", - "java-8.0", - "java-11.0", - "java-17.0", - "java-18.0", - "java-21.0", - "java-22", - "java-25", - "swift-5.5", - "swift-5.8", - "swift-5.9", - "swift-5.10", - "swift-6.2", - "kotlin-1.6", - "kotlin-1.8", - "kotlin-1.9", - "kotlin-2.0", - "kotlin-2.3", - "cpp-17", - "cpp-20", - "bun-1.0", - "bun-1.1", - "bun-1.2", - "bun-1.3", - "go-1.23", - "go-1.24", - "go-1.25", - "go-1.26", - "static-1", - "flutter-3.24", - "flutter-3.27", - "flutter-3.29", - "flutter-3.32", - "flutter-3.35", - "flutter-3.38" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "execute": { - "type": "array", - "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.", - "x-example": "[\"any\"]", - "items": { - "type": "string" - } - }, - "events": { - "type": "array", - "description": "Events list. Maximum of 100 events are allowed.", - "x-example": null, - "items": { - "type": "string" - } - }, - "schedule": { - "type": "string", - "description": "Schedule CRON syntax.", - "x-example": null - }, - "timeout": { - "type": "integer", - "description": "Maximum execution time in seconds.", - "x-example": 1, - "format": "int32" - }, - "enabled": { - "type": "boolean", - "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.", - "x-example": false - }, - "logging": { + "commit": { "type": "boolean", - "description": "When disabled, executions will exclude logs and errors, and will be slightly faster.", + "description": "Commit transaction?", "x-example": false }, - "entrypoint": { - "type": "string", - "description": "Entrypoint File. This path is relative to the \"providerRootDirectory\".", - "x-example": "<ENTRYPOINT>" - }, - "commands": { - "type": "string", - "description": "Build Commands.", - "x-example": "<COMMANDS>" - }, - "scopes": { - "type": "array", - "description": "List of scopes allowed for API Key auto-generated for every execution. Maximum of 100 scopes are allowed.", - "x-example": null, - "items": { - "type": "string", - "enum": [ - "sessions.write", - "users.read", - "users.write", - "teams.read", - "teams.write", - "databases.read", - "databases.write", - "collections.read", - "collections.write", - "tables.read", - "tables.write", - "attributes.read", - "attributes.write", - "columns.read", - "columns.write", - "indexes.read", - "indexes.write", - "documents.read", - "documents.write", - "rows.read", - "rows.write", - "files.read", - "files.write", - "buckets.read", - "buckets.write", - "functions.read", - "functions.write", - "sites.read", - "sites.write", - "log.read", - "log.write", - "execution.read", - "execution.write", - "locale.read", - "avatars.read", - "health.read", - "providers.read", - "providers.write", - "messages.read", - "messages.write", - "topics.read", - "topics.write", - "subscribers.read", - "subscribers.write", - "targets.read", - "targets.write", - "rules.read", - "rules.write", - "schedules.read", - "schedules.write", - "migrations.read", - "migrations.write", - "vcs.read", - "vcs.write", - "assistant.read", - "tokens.read", - "tokens.write", - "policies.write", - "policies.read", - "archives.read", - "archives.write", - "restorations.read", - "restorations.write", - "domains.read", - "domains.write", - "events.read" - ], - "x-enum-name": null, - "x-enum-keys": [] - } - }, - "installationId": { - "type": "string", - "description": "Appwrite Installation ID for VCS (Version Controle System) deployment.", - "x-example": "<INSTALLATION_ID>" - }, - "providerRepositoryId": { - "type": "string", - "description": "Repository ID of the repo linked to the function", - "x-example": "<PROVIDER_REPOSITORY_ID>", - "x-nullable": true - }, - "providerBranch": { - "type": "string", - "description": "Production branch for the repo linked to the function", - "x-example": "<PROVIDER_BRANCH>" - }, - "providerSilentMode": { + "rollback": { "type": "boolean", - "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.", + "description": "Rollback transaction?", "x-example": false - }, - "providerRootDirectory": { - "type": "string", - "description": "Path to function code in the linked repo.", - "x-example": "<PROVIDER_ROOT_DIRECTORY>" - }, - "specification": { - "type": "string", - "description": "Runtime specification for the function and builds.", - "x-example": null } - }, - "required": [ - "name" - ] + } } } } } }, "delete": { - "summary": "Delete function", - "operationId": "functionsDelete", + "summary": "Delete transaction", + "operationId": "documentsDBDeleteTransaction", "tags": [ - "functions" + "documentsDB" ], - "description": "Delete a function by its unique ID.", + "description": false, "responses": { "204": { "description": "No content" @@ -15247,18 +14819,20 @@ }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": "functions", - "weight": 562, + "method": "deleteTransaction", + "group": "transactions", + "weight": 424, "cookies": false, "type": "", - "demo": "functions\/delete.md", + "demo": "documentsdb\/delete-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", + "scope": "documents.write", "platforms": [ "console", + "server", + "client", "server" ], "packaging": false, @@ -15271,38 +14845,40 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "schema": { "type": "string", - "x-example": "<FUNCTION_ID>" + "x-example": "<TRANSACTION_ID>" }, "in": "path" } ] } }, - "\/functions\/{functionId}\/deployment": { - "patch": { - "summary": "Update function's deployment", - "operationId": "functionsUpdateFunctionDeployment", + "\/documentsdb\/transactions\/{transactionId}\/operations": { + "post": { + "summary": "Create operations", + "operationId": "documentsDBCreateOperations", "tags": [ - "functions" + "documentsDB" ], - "description": "Update the function active deployment. Use this endpoint to switch the code deployment that should be used when visitor opens your function.", + "description": false, "responses": { - "200": { - "description": "Function", + "201": { + "description": "Transaction", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/function" + "$ref": "#\/components\/schemas\/transaction" } } } @@ -15310,18 +14886,19 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateFunctionDeployment", - "group": "functions", - "weight": 567, + "method": "createOperations", + "group": "transactions", + "weight": 426, "cookies": false, "type": "", - "demo": "functions\/update-function-deployment.md", + "demo": "documentsdb\/create-operations.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", + "scope": "documents.write", "platforms": [ - "console", + "server", + "client", "server" ], "packaging": false, @@ -15334,17 +14911,19 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "schema": { "type": "string", - "x-example": "<FUNCTION_ID>" + "x-example": "<TRANSACTION_ID>" }, "in": "path" } @@ -15355,36 +14934,36 @@ "schema": { "type": "object", "properties": { - "deploymentId": { - "type": "string", - "description": "Deployment ID.", - "x-example": "<DEPLOYMENT_ID>" + "operations": { + "type": "array", + "description": "Array of staged operations.", + "x-example": "[\n\t {\n\t \"action\": \"create\",\n\t \"databaseId\": \"<DATABASE_ID>\",\n\t \"collectionId\": \"<COLLECTION_ID>\",\n\t \"documentId\": \"<DOCUMENT_ID>\",\n\t \"data\": {\n\t \"name\": \"Walter O'Brien\"\n\t }\n\t }\n\t]", + "items": { + "type": "object" + } } - }, - "required": [ - "deploymentId" - ] + } } } } } } }, - "\/functions\/{functionId}\/deployments": { + "\/documentsdb\/{databaseId}": { "get": { - "summary": "List deployments", - "operationId": "functionsListDeployments", + "summary": "Get database", + "operationId": "documentsDBGet", "tags": [ - "functions" + "documentsDB" ], - "description": "Get a list of all the function's code deployments. You can use the query params to filter your results.", + "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", "responses": { "200": { - "description": "Deployments List", + "description": "Database", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/deploymentList" + "$ref": "#\/components\/schemas\/database" } } } @@ -15392,22 +14971,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "listDeployments", - "group": "deployments", - "weight": 568, + "method": "get", + "group": "documentsdb", + "weight": 392, "cookies": false, "type": "", - "demo": "functions\/list-deployments.md", + "demo": "documentsdb\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", + "scope": "databases.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/get.md", "auth": { "Project": [], "Key": [] @@ -15421,66 +15001,31 @@ ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<FUNCTION_ID>" + "x-example": "<DATABASE_ID>" }, "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", - "x-example": "<SEARCH>", - "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", - "x-example": false, - "default": true - }, - "in": "query" } ] }, - "post": { - "summary": "Create deployment", - "operationId": "functionsCreateDeployment", + "put": { + "summary": "Update database", + "operationId": "documentsDBUpdate", "tags": [ - "functions" + "documentsDB" ], - "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.", + "description": "Update a database by its unique ID.", "responses": { - "202": { - "description": "Deployment", + "200": { + "description": "Database", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/deployment" + "$ref": "#\/components\/schemas\/database" } } } @@ -15488,22 +15033,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "createDeployment", - "group": "deployments", - "weight": 565, + "method": "update", + "group": "documentsdb", + "weight": 393, "cookies": false, - "type": "upload", - "demo": "functions\/create-deployment.md", + "type": "", + "demo": "documentsdb\/update.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", + "scope": "databases.write", "platforms": [ "console", "server" ], - "packaging": true, + "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/update.md", "auth": { "Project": [], "Key": [] @@ -15517,94 +15063,72 @@ ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<FUNCTION_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } ], "requestBody": { "content": { - "multipart\/form-data": { + "application\/json": { "schema": { "type": "object", "properties": { - "entrypoint": { - "type": "string", - "description": "Entrypoint File.", - "x-example": "<ENTRYPOINT>", - "x-nullable": true - }, - "commands": { - "type": "string", - "description": "Build Commands.", - "x-example": "<COMMANDS>", - "x-nullable": true - }, - "code": { + "name": { "type": "string", - "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.", - "x-example": null, - "format": "binary" + "description": "Database name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "activate": { + "enabled": { "type": "boolean", - "description": "Automatically activate the deployment when it is finished building.", + "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.", "x-example": false } }, "required": [ - "code", - "activate" + "name" ] } } } } - } - }, - "\/functions\/{functionId}\/deployments\/duplicate": { - "post": { - "summary": "Create duplicate deployment", - "operationId": "functionsCreateDuplicateDeployment", + }, + "delete": { + "summary": "Delete database", + "operationId": "documentsDBDelete", "tags": [ - "functions" + "documentsDB" ], - "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.", + "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", "responses": { - "202": { - "description": "Deployment", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/deployment" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "createDuplicateDeployment", - "group": "deployments", - "weight": 573, + "method": "delete", + "group": "documentsdb", + "weight": 394, "cookies": false, "type": "", - "demo": "functions\/create-duplicate-deployment.md", + "demo": "documentsdb\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/delete.md", "auth": { "Project": [], "Key": [] @@ -15618,57 +15142,33 @@ ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<FUNCTION_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "deploymentId": { - "type": "string", - "description": "Deployment ID.", - "x-example": "<DEPLOYMENT_ID>" - }, - "buildId": { - "type": "string", - "description": "Build unique ID.", - "x-example": "<BUILD_ID>" - } - }, - "required": [ - "deploymentId" - ] - } - } - } - } + ] } }, - "\/functions\/{functionId}\/deployments\/template": { - "post": { - "summary": "Create template deployment", - "operationId": "functionsCreateTemplateDeployment", + "\/documentsdb\/{databaseId}\/collections": { + "get": { + "summary": "List collections", + "operationId": "documentsDBListCollections", "tags": [ - "functions" + "documentsDB" ], - "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.", + "description": "Get a list of all collections that belong to the provided databaseId. You can use the search parameter to filter your results.", "responses": { - "202": { - "description": "Deployment", + "200": { + "description": "Collections List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/deployment" + "$ref": "#\/components\/schemas\/collectionList" } } } @@ -15676,22 +15176,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "createTemplateDeployment", - "group": "deployments", - "weight": 570, + "method": "listCollections", + "group": "collections", + "weight": 402, "cookies": false, "type": "", - "demo": "functions\/create-template-deployment.md", + "demo": "documentsdb\/list-collections.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", + "scope": "collections.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/list-collections.md", "auth": { "Project": [], "Key": [] @@ -15705,88 +15206,66 @@ ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<FUNCTION_ID>" + "x-example": "<DATABASE_ID>" }, "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", + "x-example": "<SEARCH>", + "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", + "x-example": false, + "default": true + }, + "in": "query" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "repository": { - "type": "string", - "description": "Repository name of the template.", - "x-example": "<REPOSITORY>" - }, - "owner": { - "type": "string", - "description": "The name of the owner of the template.", - "x-example": "<OWNER>" - }, - "rootDirectory": { - "type": "string", - "description": "Path to function code in the template repo.", - "x-example": "<ROOT_DIRECTORY>" - }, - "type": { - "type": "string", - "description": "Type for the reference provided. Can be commit, branch, or tag", - "x-example": "commit", - "enum": [ - "commit", - "branch", - "tag" - ], - "x-enum-name": "TemplateReferenceType", - "x-enum-keys": [] - }, - "reference": { - "type": "string", - "description": "Reference value, can be a commit hash, branch name, or release tag", - "x-example": "<REFERENCE>" - }, - "activate": { - "type": "boolean", - "description": "Automatically activate the deployment when it is finished building.", - "x-example": false - } - }, - "required": [ - "repository", - "owner", - "rootDirectory", - "type", - "reference" - ] - } - } - } - } - } - }, - "\/functions\/{functionId}\/deployments\/vcs": { + ] + }, "post": { - "summary": "Create VCS deployment", - "operationId": "functionsCreateVcsDeployment", + "summary": "Create collection", + "operationId": "documentsDBCreateCollection", "tags": [ - "functions" + "documentsDB" ], - "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.", + "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": { - "202": { - "description": "Deployment", + "201": { + "description": "Collection", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/deployment" + "$ref": "#\/components\/schemas\/collection" } } } @@ -15794,22 +15273,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "createVcsDeployment", - "group": "deployments", - "weight": 571, + "method": "createCollection", + "group": "collections", + "weight": 398, "cookies": false, "type": "", - "demo": "functions\/create-vcs-deployment.md", + "demo": "documentsdb\/create-collection.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", + "scope": "collections.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/create-collection.md", "auth": { "Project": [], "Key": [] @@ -15823,12 +15303,12 @@ ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<FUNCTION_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } @@ -15839,31 +15319,55 @@ "schema": { "type": "object", "properties": { - "type": { + "collectionId": { "type": "string", - "description": "Type of reference passed. Allowed values are: branch, commit", - "x-example": "branch", - "enum": [ - "branch", - "commit" - ], - "x-enum-name": "VCSReferenceType", - "x-enum-keys": [] + "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.", + "x-example": "<COLLECTION_ID>" }, - "reference": { + "name": { "type": "string", - "description": "VCS reference to create deployment from. Depending on type this can be: branch name, commit hash", - "x-example": "<REFERENCE>" + "description": "Collection name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "activate": { + "permissions": { + "type": "array", + "description": "An array of permissions strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + }, + "x-nullable": true + }, + "documentSecurity": { "type": "boolean", - "description": "Automatically activate the deployment when it is finished building.", + "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).", + "x-example": false + }, + "enabled": { + "type": "boolean", + "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.", "x-example": false + }, + "attributes": { + "type": "array", + "description": "Array of attribute definitions to create. Each attribute should contain: key (string), type (string: string, integer, float, boolean, datetime, relationship), size (integer, required for string type), required (boolean, optional), default (mixed, optional), array (boolean, optional), and type-specific options.", + "x-example": null, + "items": { + "type": "object" + } + }, + "indexes": { + "type": "array", + "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).", + "x-example": null, + "items": { + "type": "object" + } } }, "required": [ - "type", - "reference" + "collectionId", + "name" ] } } @@ -15871,21 +15375,21 @@ } } }, - "\/functions\/{functionId}\/deployments\/{deploymentId}": { + "\/documentsdb\/{databaseId}\/collections\/{collectionId}": { "get": { - "summary": "Get deployment", - "operationId": "functionsGetDeployment", + "summary": "Get collection", + "operationId": "documentsDBGetCollection", "tags": [ - "functions" + "documentsDB" ], - "description": "Get a function deployment by its unique ID.", + "description": "Get a collection by its unique ID. This endpoint response returns a JSON object with the collection metadata.", "responses": { "200": { - "description": "Deployment", + "description": "Collection", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/deployment" + "$ref": "#\/components\/schemas\/collection" } } } @@ -15893,22 +15397,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "getDeployment", - "group": "deployments", - "weight": 566, + "method": "getCollection", + "group": "collections", + "weight": 399, "cookies": false, "type": "", - "demo": "functions\/get-deployment.md", + "demo": "documentsdb\/get-collection.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", + "scope": "collections.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/get-collection.md", "auth": { "Project": [], "Key": [] @@ -15922,57 +15427,65 @@ ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<FUNCTION_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" }, { - "name": "deploymentId", - "description": "Deployment ID.", + "name": "collectionId", + "description": "Collection ID.", "required": true, "schema": { "type": "string", - "x-example": "<DEPLOYMENT_ID>" + "x-example": "<COLLECTION_ID>" }, "in": "path" } ] }, - "delete": { - "summary": "Delete deployment", - "operationId": "functionsDeleteDeployment", + "put": { + "summary": "Update collection", + "operationId": "documentsDBUpdateCollection", "tags": [ - "functions" + "documentsDB" ], - "description": "Delete a code deployment by its unique ID.", + "description": "Update a collection by its unique ID.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Collection", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/collection" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteDeployment", - "group": "deployments", - "weight": 569, + "method": "updateCollection", + "group": "collections", + "weight": 400, "cookies": false, "type": "", - "demo": "functions\/delete-deployment.md", + "demo": "documentsdb\/update-collection.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", + "scope": "collections.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/update-collection.md", "auth": { "Project": [], "Key": [] @@ -15986,60 +15499,95 @@ ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<FUNCTION_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" }, { - "name": "deploymentId", - "description": "Deployment ID.", + "name": "collectionId", + "description": "Collection ID.", "required": true, "schema": { "type": "string", - "x-example": "<DEPLOYMENT_ID>" + "x-example": "<COLLECTION_ID>" }, "in": "path" } - ] - } - }, - "\/functions\/{functionId}\/deployments\/{deploymentId}\/download": { - "get": { - "summary": "Get deployment download", - "operationId": "functionsGetDeploymentDownload", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Collection name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "permissions": { + "type": "array", + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } + }, + "documentSecurity": { + "type": "boolean", + "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).", + "x-example": false + }, + "enabled": { + "type": "boolean", + "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.", + "x-example": false + } + }, + "required": [ + "name" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete collection", + "operationId": "documentsDBDeleteCollection", "tags": [ - "functions" + "documentsDB" ], - "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.", + "description": "Delete a collection by its unique ID. Only users with write permissions have access to delete this resource.", "responses": { - "200": { - "description": "File" + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "getDeploymentDownload", - "group": "deployments", - "weight": 572, + "method": "deleteCollection", + "group": "collections", + "weight": 401, "cookies": false, - "type": "location", - "demo": "functions\/get-deployment-download.md", + "type": "", + "demo": "documentsdb\/delete-collection.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", + "scope": "collections.write", "platforms": [ "console", - "server", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/delete-collection.md", "auth": { "Project": [], "Key": [] @@ -16048,66 +15596,48 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<FUNCTION_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" }, { - "name": "deploymentId", - "description": "Deployment ID.", + "name": "collectionId", + "description": "Collection ID.", "required": true, "schema": { "type": "string", - "x-example": "<DEPLOYMENT_ID>" + "x-example": "<COLLECTION_ID>" }, "in": "path" - }, - { - "name": "type", - "description": "Deployment file to download. Can be: \"source\", \"output\".", - "required": false, - "schema": { - "type": "string", - "x-example": "source", - "enum": [ - "source", - "output" - ], - "x-enum-name": "DeploymentDownloadType", - "x-enum-keys": [], - "default": "source" - }, - "in": "query" } ] } }, - "\/functions\/{functionId}\/deployments\/{deploymentId}\/status": { - "patch": { - "summary": "Update deployment status", - "operationId": "functionsUpdateDeploymentStatus", + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents": { + "get": { + "summary": "List documents", + "operationId": "documentsDBListDocuments", "tags": [ - "functions" + "documentsDB" ], - "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.", + "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": "Deployment", + "description": "Documents List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/deployment" + "$ref": "#\/components\/schemas\/documentList" } } } @@ -16115,124 +15645,62 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateDeploymentStatus", - "group": "deployments", - "weight": 574, + "method": "listDocuments", + "group": "documents", + "weight": 417, "cookies": false, "type": "", - "demo": "functions\/update-deployment-status.md", + "demo": "documentsdb\/list-documents.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", + "scope": "documents.read", "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/list-documents.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<FUNCTION_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" }, { - "name": "deploymentId", - "description": "Deployment ID.", + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", "required": true, "schema": { "type": "string", - "x-example": "<DEPLOYMENT_ID>" - }, - "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": { - "method": "listExecutions", - "group": "executions", - "weight": 577, - "cookies": false, - "type": "", - "demo": "functions\/list-executions.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "execution.read", - "platforms": [ - "console", - "client", - "server", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<FUNCTION_ID>" + "x-example": "<COLLECTION_ID>" }, "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", + "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", @@ -16243,6 +15711,16 @@ }, "in": "query" }, + { + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", + "required": false, + "schema": { + "type": "string", + "x-example": "<TRANSACTION_ID>" + }, + "in": "query" + }, { "name": "total", "description": "When set to false, the total count returned will be 0 and will not be calculated.", @@ -16253,23 +15731,35 @@ "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", + "x-example": 0, + "default": 0 + }, + "in": "query" } ] }, "post": { - "summary": "Create execution", - "operationId": "functionsCreateExecution", + "summary": "Create document", + "operationId": "documentsDBCreateDocument", "tags": [ - "functions" + "documentsDB" ], - "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.", + "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": "Execution", + "description": "Document", "content": { - "multipart\/form-data": { + "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/execution" + "$ref": "#\/components\/schemas\/document" } } } @@ -16277,16 +15767,16 @@ }, "deprecated": false, "x-appwrite": { - "method": "createExecution", - "group": "executions", - "weight": 575, + "method": "createDocument", + "group": "documents", + "weight": 409, "cookies": false, "type": "", - "demo": "functions\/create-execution.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "execution.write", + "demo": "documentsdb\/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", @@ -16295,6 +15785,68 @@ ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/create-document.md", + "methods": [ + { + "name": "createDocument", + "namespace": "documentsDB", + "desc": "Create document", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions" + ], + "required": [ + "databaseId", + "collectionId", + "documentId", + "data" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/document" + } + ], + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "demo": "documentsdb\/create-document.md", + "public": true + }, + { + "name": "createDocuments", + "namespace": "documentsDB", + "desc": "Create documents", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documents" + ], + "required": [ + "databaseId", + "collectionId", + "documents" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/documentList" + } + ], + "description": "Create new Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "demo": "documentsdb\/create-documents.md", + "public": true + } + ], "auth": { "Project": [], "Session": [] @@ -16310,12 +15862,22 @@ ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<FUNCTION_ID>" + "x-example": "<DATABASE_ID>" + }, + "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", + "x-example": "<COLLECTION_ID>" }, "in": "path" } @@ -16326,70 +15888,57 @@ "schema": { "type": "object", "properties": { - "body": { + "documentId": { "type": "string", - "description": "HTTP body of execution. Default value is empty string.", - "x-example": "<BODY>" - }, - "async": { - "type": "boolean", - "description": "Execute code in the background. Default value is false.", - "x-example": false + "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.", + "x-example": "<DOCUMENT_ID>" }, - "path": { - "type": "string", - "description": "HTTP path of execution. Path can include query params. Default value is \/", - "x-example": "<PATH>" + "data": { + "type": "object", + "description": "Document data as JSON object.", + "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":30,\"isAdmin\":false}" }, - "method": { - "type": "string", - "description": "HTTP method of execution. Default value is POST.", - "x-example": "GET", - "enum": [ - "GET", - "POST", - "PUT", - "PATCH", - "DELETE", - "OPTIONS", - "HEAD" - ], - "x-enum-name": "ExecutionMethod", - "x-enum-keys": [] + "permissions": { + "type": "array", + "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).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } }, - "headers": { - "type": "object", - "description": "HTTP headers of execution. Defaults to empty.", - "x-example": "{}" + "documents": { + "type": "array", + "description": "Array of documents data as JSON objects.", + "x-example": null, + "items": { + "type": "object" + } }, - "scheduledAt": { + "transactionId": { "type": "string", - "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.", - "x-example": "<SCHEDULED_AT>", - "x-nullable": true + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>" } } } } } } - } - }, - "\/functions\/{functionId}\/executions\/{executionId}": { - "get": { - "summary": "Get execution", - "operationId": "functionsGetExecution", + }, + "put": { + "summary": "Upsert documents", + "operationId": "documentsDBUpsertDocuments", "tags": [ - "functions" + "documentsDB" ], - "description": "Get a function execution log by its unique ID.", + "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": { - "200": { - "description": "Execution", + "201": { + "description": "Documents List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/execution" + "$ref": "#\/components\/schemas\/documentList" } } } @@ -16397,90 +15946,153 @@ }, "deprecated": false, "x-appwrite": { - "method": "getExecution", - "group": "executions", - "weight": 576, + "method": "upsertDocuments", + "group": "documents", + "weight": 414, "cookies": false, "type": "", - "demo": "functions\/get-execution.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "execution.read", + "demo": "documentsdb\/upsert-documents.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/upsert-documents.md", + "methods": [ + { + "name": "upsertDocuments", + "namespace": "documentsDB", + "desc": "", + "auth": { + "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": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<FUNCTION_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" }, { - "name": "executionId", - "description": "Execution ID.", + "name": "collectionId", + "description": "Collection ID.", "required": true, "schema": { "type": "string", - "x-example": "<EXECUTION_ID>" + "x-example": "<COLLECTION_ID>" }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "documents": { + "type": "array", + "description": "Array of document data as JSON objects. May contain partial documents.", + "x-example": null, + "items": { + "type": "object" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>" + } + }, + "required": [ + "documents" + ] + } + } + } + } }, - "delete": { - "summary": "Delete execution", - "operationId": "functionsDeleteExecution", + "patch": { + "summary": "Update documents", + "operationId": "documentsDBUpdateDocuments", "tags": [ - "functions" + "documentsDB" ], - "description": "Delete a function execution by its unique ID.", + "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": { - "204": { - "description": "No content" + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteExecution", - "group": "executions", - "weight": 578, + "method": "updateDocuments", + "group": "documents", + "weight": 412, "cookies": false, "type": "", - "demo": "functions\/delete-execution.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "execution.write", + "demo": "documentsdb\/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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/update-documents.md", "auth": { "Project": [], "Key": [] @@ -16494,43 +16106,70 @@ ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<FUNCTION_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" }, { - "name": "executionId", - "description": "Execution ID.", + "name": "collectionId", + "description": "Collection ID.", "required": true, "schema": { "type": "string", - "x-example": "<EXECUTION_ID>" + "x-example": "<COLLECTION_ID>" }, "in": "path" } - ] - } - }, - "\/functions\/{functionId}\/variables": { - "get": { - "summary": "List variables", - "operationId": "functionsListVariables", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "object", + "description": "Document data as JSON object. Include only attribute and value pairs to be updated.", + "x-example": "{}" + }, + "queries": { + "type": "array", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "x-example": null, + "items": { + "type": "string" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>" + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete documents", + "operationId": "documentsDBDeleteDocuments", "tags": [ - "functions" + "documentsDB" ], - "description": "Get a list of all variables of a specific function.", + "description": "Bulk delete documents using queries, if no queries are passed then all documents are deleted.", "responses": { "200": { - "description": "Variables List", + "description": "Documents List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/variableList" + "$ref": "#\/components\/schemas\/documentList" } } } @@ -16538,22 +16177,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "listVariables", - "group": "variables", - "weight": 583, + "method": "deleteDocuments", + "group": "documents", + "weight": 416, "cookies": false, "type": "", - "demo": "functions\/list-variables.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", + "demo": "documentsdb\/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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/delete-documents.md", "auth": { "Project": [], "Key": [] @@ -16567,31 +16207,67 @@ ], "parameters": [ { - "name": "functionId", - "description": "Function unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<FUNCTION_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "x-example": "<COLLECTION_ID>" }, "in": "path" } - ] - }, - "post": { - "summary": "Create variable", - "operationId": "functionsCreateVariable", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "queries": { + "type": "array", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "x-example": null, + "items": { + "type": "string" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>" + } + } + } + } + } + } + } + }, + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { + "get": { + "summary": "Get document", + "operationId": "documentsDBGetDocument", "tags": [ - "functions" + "documentsDB" ], - "description": "Create a new function environment variable. These variables can be accessed in the function at runtime as environment variables.", + "description": "Get a document by its unique ID. This endpoint response returns a JSON object with the document data.", "responses": { - "201": { - "description": "Variable", + "200": { + "description": "Document", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/variable" + "$ref": "#\/components\/schemas\/document" } } } @@ -16599,92 +16275,108 @@ }, "deprecated": false, "x-appwrite": { - "method": "createVariable", - "group": "variables", - "weight": 581, + "method": "getDocument", + "group": "documents", + "weight": 410, "cookies": false, "type": "", - "demo": "functions\/create-variable.md", + "demo": "documentsdb\/get-document.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", + "scope": "documents.read", "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/get-document.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<FUNCTION_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "x-example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DOCUMENT_ID>" + }, + "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", + "x-example": "<TRANSACTION_ID>" + }, + "in": "query" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Variable key. Max length: 255 chars.", - "x-example": "<KEY>" - }, - "value": { - "type": "string", - "description": "Variable value. Max length: 8192 chars.", - "x-example": "<VALUE>" - }, - "secret": { - "type": "boolean", - "description": "Secret variables can be updated or deleted, but only functions can read them during build and runtime.", - "x-example": false - } - }, - "required": [ - "key", - "value" - ] - } - } - } - } - } - }, - "\/functions\/{functionId}\/variables\/{variableId}": { - "get": { - "summary": "Get variable", - "operationId": "functionsGetVariable", + ] + }, + "put": { + "summary": "Upsert a document", + "operationId": "documentsDBUpsertDocument", "tags": [ - "functions" + "documentsDB" ], - "description": "Get a variable by its unique ID.", + "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": { - "200": { - "description": "Variable", + "201": { + "description": "Document", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/variable" + "$ref": "#\/components\/schemas\/document" } } } @@ -16692,70 +16384,147 @@ }, "deprecated": false, "x-appwrite": { - "method": "getVariable", - "group": "variables", - "weight": 582, + "method": "upsertDocument", + "group": "documents", + "weight": 413, "cookies": false, "type": "", - "demo": "functions\/get-variable.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", + "demo": "documentsdb\/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", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/upsert-document.md", + "methods": [ + { + "name": "upsertDocument", + "namespace": "documentsDB", + "desc": "", + "auth": { + "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": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<FUNCTION_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" }, { - "name": "variableId", - "description": "Variable unique ID.", + "name": "collectionId", + "description": "Collection ID.", "required": true, "schema": { "type": "string", - "x-example": "<VARIABLE_ID>" + "x-example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DOCUMENT_ID>" }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "object", + "description": "Document data as JSON object. Include all required fields of the document to be created or updated.", + "x-example": "{}" + }, + "permissions": { + "type": "array", + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>" + } + } + } + } + } + } }, - "put": { - "summary": "Update variable", - "operationId": "functionsUpdateVariable", + "patch": { + "summary": "Update document", + "operationId": "documentsDBUpdateDocument", "tags": [ - "functions" + "documentsDB" ], - "description": "Update variable by its unique ID.", + "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": "Variable", + "description": "Document", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/variable" + "$ref": "#\/components\/schemas\/document" } } } @@ -16763,51 +16532,66 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateVariable", - "group": "variables", - "weight": 584, + "method": "updateDocument", + "group": "documents", + "weight": 411, "cookies": false, "type": "", - "demo": "functions\/update-variable.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", + "demo": "documentsdb\/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", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/update-document.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<FUNCTION_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" }, { - "name": "variableId", - "description": "Variable unique ID.", + "name": "collectionId", + "description": "Collection ID.", "required": true, "schema": { "type": "string", - "x-example": "<VARIABLE_ID>" + "x-example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DOCUMENT_ID>" }, "in": "path" } @@ -16818,39 +16602,37 @@ "schema": { "type": "object", "properties": { - "key": { - "type": "string", - "description": "Variable key. Max length: 255 chars.", - "x-example": "<KEY>" + "data": { + "type": "object", + "description": "Document data as JSON object. Include only fields and value pairs to be updated.", + "x-example": "{}" }, - "value": { - "type": "string", - "description": "Variable value. Max length: 8192 chars.", - "x-example": "<VALUE>", - "x-nullable": true + "permissions": { + "type": "array", + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } }, - "secret": { - "type": "boolean", - "description": "Secret variables can be updated or deleted, but only functions can read them during build and runtime.", - "x-example": false, - "x-nullable": true + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>" } - }, - "required": [ - "key" - ] + } } } } } }, "delete": { - "summary": "Delete variable", - "operationId": "functionsDeleteVariable", + "summary": "Delete document", + "operationId": "documentsDBDeleteDocument", "tags": [ - "functions" + "documentsDB" ], - "description": "Delete a variable by its unique ID.", + "description": "Delete a document by its unique ID.", "responses": { "204": { "description": "No content" @@ -16858,72 +16640,103 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteVariable", - "group": "variables", - "weight": 585, + "method": "deleteDocument", + "group": "documents", + "weight": 415, "cookies": false, "type": "", - "demo": "functions\/delete-variable.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", + "demo": "documentsdb\/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", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/delete-document.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<FUNCTION_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" }, { - "name": "variableId", - "description": "Variable unique ID.", + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", "required": true, "schema": { "type": "string", - "x-example": "<VARIABLE_ID>" + "x-example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DOCUMENT_ID>" }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>" + } + } + } + } + } + } } }, - "\/graphql": { - "post": { - "summary": "GraphQL endpoint", - "operationId": "graphqlQuery", + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/decrement": { + "patch": { + "summary": "Decrement document attribute", + "operationId": "documentsDBDecrementDocumentAttribute", "tags": [ - "graphql" + "documentsDB" ], - "description": "Execute a GraphQL mutation.", + "description": "Decrement a specific column of a row by a given value.", "responses": { "200": { - "description": "Any", + "description": "Document", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/any" + "$ref": "#\/components\/schemas\/document" } } } @@ -16931,55 +16744,124 @@ }, "deprecated": false, "x-appwrite": { - "method": "query", - "group": "graphql", - "weight": 176, + "method": "decrementDocumentAttribute", + "group": "documents", + "weight": 420, "cookies": false, - "type": "graphql", - "demo": "graphql\/query.md", - "rate-limit": 60, + "type": "", + "demo": "documentsdb\/decrement-document-attribute.md", + "rate-limit": 120, "rate-time": 60, - "rate-key": "url:{url},ip:{ip}", - "scope": "graphql", + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", "platforms": [ - "console", - "server", "client", + "server", + "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/graphql\/post.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/decrement-document-attribute.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [], "Session": [], - "JWT": [] + "JWT": [], + "Key": [] } - ] + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "attribute", + "description": "Attribute key.", + "required": true, + "schema": { + "type": "string" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "value": { + "type": "number", + "description": "Value to decrement the attribute by. The value must be a number.", + "x-example": null, + "format": "float" + }, + "min": { + "type": "number", + "description": "Minimum value for the attribute. If the current value is lesser than this value, an exception will be thrown.", + "x-example": null, + "format": "float" + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>" + } + } + } + } + } + } } }, - "\/graphql\/mutation": { - "post": { - "summary": "GraphQL endpoint", - "operationId": "graphqlMutation", + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/increment": { + "patch": { + "summary": "Increment document attribute", + "operationId": "documentsDBIncrementDocumentAttribute", "tags": [ - "graphql" + "documentsDB" ], - "description": "Execute a GraphQL mutation.", + "description": "Increment a specific column of a row by a given value.", "responses": { "200": { - "description": "Any", + "description": "Document", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/any" + "$ref": "#\/components\/schemas\/document" } } } @@ -16987,107 +16869,124 @@ }, "deprecated": false, "x-appwrite": { - "method": "mutation", - "group": "graphql", - "weight": 175, + "method": "incrementDocumentAttribute", + "group": "documents", + "weight": 419, "cookies": false, - "type": "graphql", - "demo": "graphql\/mutation.md", - "rate-limit": 60, + "type": "", + "demo": "documentsdb\/increment-document-attribute.md", + "rate-limit": 120, "rate-time": 60, - "rate-key": "url:{url},ip:{ip}", - "scope": "graphql", + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", "platforms": [ - "console", - "server", "client", + "server", + "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/graphql\/post.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/increment-document-attribute.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [], "Session": [], - "JWT": [] + "JWT": [], + "Key": [] } - ] - } - }, - "\/health": { - "get": { - "summary": "Get HTTP", - "operationId": "healthGet", - "tags": [ - "health" ], - "description": "Check the Appwrite HTTP server is up and responsive.", - "responses": { - "200": { - "description": "Health Status", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/healthStatus" + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DOCUMENT_ID>" + }, + "in": "path" + }, + { + "name": "attribute", + "description": "Attribute key.", + "required": true, + "schema": { + "type": "string" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "value": { + "type": "number", + "description": "Value to increment the attribute by. The value must be a number.", + "x-example": null, + "format": "float" + }, + "max": { + "type": "number", + "description": "Maximum value for the attribute. If the current value is greater than this value, an error will be thrown.", + "x-example": null, + "format": "float" + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>" + } } } } } - }, - "deprecated": false, - "x-appwrite": { - "method": "get", - "group": "health", - "weight": 450, - "cookies": false, - "type": "", - "demo": "health\/get.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get.md", - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ] + } } }, - "\/health\/anti-virus": { + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/indexes": { "get": { - "summary": "Get antivirus", - "operationId": "healthGetAntivirus", + "summary": "List indexes", + "operationId": "documentsDBListIndexes", "tags": [ - "health" + "documentsDB" ], - "description": "Check the Appwrite Antivirus server is up and connection is successful.", + "description": "List indexes in the collection.", "responses": { "200": { - "description": "Health Antivirus", + "description": "Indexes List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthAntivirus" + "$ref": "#\/components\/schemas\/indexList" } } } @@ -17095,23 +16994,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "getAntivirus", - "group": "health", - "weight": 459, + "method": "listIndexes", + "group": "indexes", + "weight": 408, "cookies": false, "type": "", - "demo": "health\/get-antivirus.md", + "demo": "documentsdb\/list-indexes.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "collections.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-storage-anti-virus.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/list-indexes.md", "auth": { "Project": [], "Key": [] @@ -17122,24 +17021,68 @@ "Project": [], "Key": [] } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "x-example": "<COLLECTION_ID>" + }, + "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", + "x-example": false, + "default": true + }, + "in": "query" + } ] - } - }, - "\/health\/cache": { - "get": { - "summary": "Get cache", - "operationId": "healthGetCache", + }, + "post": { + "summary": "Create index", + "operationId": "documentsDBCreateIndex", "tags": [ - "health" + "documentsDB" ], - "description": "Check the Appwrite in-memory cache servers are up and connection is successful.", + "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": { - "200": { - "description": "Status List", + "202": { + "description": "Index", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthStatusList" + "$ref": "#\/components\/schemas\/index" } } } @@ -17147,23 +17090,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "getCache", - "group": "health", - "weight": 453, + "method": "createIndex", + "group": "indexes", + "weight": 405, "cookies": false, "type": "", - "demo": "health\/get-cache.md", + "demo": "documentsdb\/create-index.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "collections.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-cache.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/create-index.md", "auth": { "Project": [], "Key": [] @@ -17174,24 +17117,110 @@ "Project": [], "Key": [] } - ] + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "x-example": "<COLLECTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Index Key.", + "x-example": null + }, + "type": { + "type": "string", + "description": "Index type.", + "x-example": "key", + "enum": [ + "key", + "fulltext", + "unique", + "spatial" + ], + "x-enum-name": "IndexType", + "x-enum-keys": [] + }, + "attributes": { + "type": "array", + "description": "Array of attributes to index. Maximum of 100 attributes are allowed, each 32 characters long.", + "x-example": null, + "items": { + "type": "string" + } + }, + "orders": { + "type": "array", + "description": "Array of index orders. Maximum of 100 orders are allowed.", + "x-example": null, + "items": { + "type": "string", + "enum": [ + "asc", + "desc" + ], + "x-enum-name": "OrderBy", + "x-enum-keys": [] + } + }, + "lengths": { + "type": "array", + "description": "Length of index. Maximum of 100", + "x-example": null, + "items": { + "type": "integer" + } + } + }, + "required": [ + "key", + "type", + "attributes" + ] + } + } + } + } } }, - "\/health\/certificate": { + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/indexes\/{key}": { "get": { - "summary": "Get the SSL certificate for a domain", - "operationId": "healthGetCertificate", + "summary": "Get index", + "operationId": "documentsDBGetIndex", "tags": [ - "health" + "documentsDB" ], - "description": "Get the SSL certificate for a domain", + "description": "Get index by ID.", "responses": { "200": { - "description": "Health Certificate", + "description": "Index", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthCertificate" + "$ref": "#\/components\/schemas\/index" } } } @@ -17199,23 +17228,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "getCertificate", - "group": "health", - "weight": 456, + "method": "getIndex", + "group": "indexes", + "weight": 406, "cookies": false, "type": "", - "demo": "health\/get-certificate.md", + "demo": "documentsdb\/get-index.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "collections.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-certificate.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/get-index.md", "auth": { "Project": [], "Key": [] @@ -17229,56 +17258,67 @@ ], "parameters": [ { - "name": "domain", - "description": "string", - "required": false, + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "x-example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Index Key.", + "required": true, "schema": { "type": "string" }, - "in": "query" + "in": "path" } ] - } - }, - "\/health\/db": { - "get": { - "summary": "Get DB", - "operationId": "healthGetDB", + }, + "delete": { + "summary": "Delete index", + "operationId": "documentsDBDeleteIndex", "tags": [ - "health" + "documentsDB" ], - "description": "Check the Appwrite database servers are up and connection is successful.", + "description": "Delete an index.", "responses": { - "200": { - "description": "Status List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/healthStatusList" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "getDB", - "group": "health", - "weight": 452, + "method": "deleteIndex", + "group": "indexes", + "weight": 407, "cookies": false, "type": "", - "demo": "health\/get-db.md", + "demo": "documentsdb\/delete-index.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "collections.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-db.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/delete-index.md", "auth": { "Project": [], "Key": [] @@ -17289,24 +17329,55 @@ "Project": [], "Key": [] } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "x-example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Index Key.", + "required": true, + "schema": { + "type": "string" + }, + "in": "path" + } ] } }, - "\/health\/pubsub": { + "\/functions": { "get": { - "summary": "Get pubsub", - "operationId": "healthGetPubSub", + "summary": "List functions", + "operationId": "functionsList", "tags": [ - "health" + "functions" ], - "description": "Check the Appwrite pub-sub servers are up and connection is successful.", + "description": "Get a list of all the project's functions. You can use the query params to filter your results.", "responses": { "200": { - "description": "Status List", + "description": "Functions List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthStatusList" + "$ref": "#\/components\/schemas\/functionList" } } } @@ -17314,23 +17385,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getPubSub", - "group": "health", - "weight": 454, + "method": "list", + "group": "functions", + "weight": 477, "cookies": false, "type": "", - "demo": "health\/get-pub-sub.md", + "demo": "functions\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-pubsub.md", "auth": { "Project": [], "Key": [] @@ -17341,24 +17411,59 @@ "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", + "x-example": "<SEARCH>", + "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", + "x-example": false, + "default": true + }, + "in": "query" + } ] - } - }, - "\/health\/queue\/audits": { - "get": { - "summary": "Get audits queue", - "operationId": "healthGetQueueAudits", + }, + "post": { + "summary": "Create function", + "operationId": "functionsCreate", "tags": [ - "health" + "functions" ], - "description": "Get the number of audit logs that are waiting to be processed in the Appwrite internal queue server.", + "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": { - "200": { - "description": "Health Queue", + "201": { + "description": "Function", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/function" } } } @@ -17366,23 +17471,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueAudits", - "group": "queue", - "weight": 460, + "method": "create", + "group": "functions", + "weight": 626, "cookies": false, "type": "", - "demo": "health\/get-queue-audits.md", + "demo": "functions\/create.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-audits.md", "auth": { "Project": [], "Key": [] @@ -17394,101 +17498,302 @@ "Key": [] } ], - "parameters": [ - { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 5000 - }, - "in": "query" - } - ] - } - }, - "\/health\/queue\/billing-project-aggregation": { - "get": { - "summary": "Get billing project aggregation queue", - "operationId": "healthGetQueueBillingProjectAggregation", - "tags": [ - "health" - ], - "description": "Get billing project aggregation queue.", - "responses": { - "200": { - "description": "Health Queue", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/healthQueue" - } + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "functionId": { + "type": "string", + "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.", + "x-example": "<FUNCTION_ID>" + }, + "name": { + "type": "string", + "description": "Function name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "runtime": { + "type": "string", + "description": "Execution runtime.", + "x-example": "node-14.5", + "enum": [ + "node-14.5", + "node-16.0", + "node-18.0", + "node-19.0", + "node-20.0", + "node-21.0", + "node-22", + "node-23", + "node-24", + "node-25", + "php-8.0", + "php-8.1", + "php-8.2", + "php-8.3", + "php-8.4", + "ruby-3.0", + "ruby-3.1", + "ruby-3.2", + "ruby-3.3", + "ruby-3.4", + "ruby-4.0", + "python-3.8", + "python-3.9", + "python-3.10", + "python-3.11", + "python-3.12", + "python-3.13", + "python-3.14", + "python-ml-3.11", + "python-ml-3.12", + "python-ml-3.13", + "deno-1.21", + "deno-1.24", + "deno-1.35", + "deno-1.40", + "deno-1.46", + "deno-2.0", + "deno-2.5", + "deno-2.6", + "dart-2.15", + "dart-2.16", + "dart-2.17", + "dart-2.18", + "dart-2.19", + "dart-3.0", + "dart-3.1", + "dart-3.3", + "dart-3.5", + "dart-3.8", + "dart-3.9", + "dart-3.10", + "dotnet-6.0", + "dotnet-7.0", + "dotnet-8.0", + "dotnet-10", + "java-8.0", + "java-11.0", + "java-17.0", + "java-18.0", + "java-21.0", + "java-22", + "java-25", + "swift-5.5", + "swift-5.8", + "swift-5.9", + "swift-5.10", + "swift-6.2", + "kotlin-1.6", + "kotlin-1.8", + "kotlin-1.9", + "kotlin-2.0", + "kotlin-2.3", + "cpp-17", + "cpp-20", + "bun-1.0", + "bun-1.1", + "bun-1.2", + "bun-1.3", + "go-1.23", + "go-1.24", + "go-1.25", + "go-1.26", + "static-1", + "flutter-3.24", + "flutter-3.27", + "flutter-3.29", + "flutter-3.32", + "flutter-3.35", + "flutter-3.38" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "execute": { + "type": "array", + "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.", + "x-example": "[\"any\"]", + "items": { + "type": "string" + } + }, + "events": { + "type": "array", + "description": "Events list. Maximum of 100 events are allowed.", + "x-example": null, + "items": { + "type": "string" + } + }, + "schedule": { + "type": "string", + "description": "Schedule CRON syntax.", + "x-example": null + }, + "timeout": { + "type": "integer", + "description": "Function maximum execution time in seconds.", + "x-example": 1, + "format": "int32" + }, + "enabled": { + "type": "boolean", + "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.", + "x-example": false + }, + "logging": { + "type": "boolean", + "description": "When disabled, executions will exclude logs and errors, and will be slightly faster.", + "x-example": false + }, + "entrypoint": { + "type": "string", + "description": "Entrypoint File. This path is relative to the \"providerRootDirectory\".", + "x-example": "<ENTRYPOINT>" + }, + "commands": { + "type": "string", + "description": "Build Commands.", + "x-example": "<COMMANDS>" + }, + "scopes": { + "type": "array", + "description": "List of scopes allowed for API key auto-generated for every execution. Maximum of 100 scopes are allowed.", + "x-example": null, + "items": { + "type": "string", + "enum": [ + "sessions.write", + "users.read", + "users.write", + "teams.read", + "teams.write", + "databases.read", + "databases.write", + "collections.read", + "collections.write", + "tables.read", + "tables.write", + "attributes.read", + "attributes.write", + "columns.read", + "columns.write", + "indexes.read", + "indexes.write", + "documents.read", + "documents.write", + "rows.read", + "rows.write", + "files.read", + "files.write", + "buckets.read", + "buckets.write", + "functions.read", + "functions.write", + "sites.read", + "sites.write", + "log.read", + "log.write", + "execution.read", + "execution.write", + "locale.read", + "avatars.read", + "health.read", + "providers.read", + "providers.write", + "messages.read", + "messages.write", + "topics.read", + "topics.write", + "subscribers.read", + "subscribers.write", + "targets.read", + "targets.write", + "rules.read", + "rules.write", + "schedules.read", + "schedules.write", + "migrations.read", + "migrations.write", + "vcs.read", + "vcs.write", + "assistant.read", + "tokens.read", + "tokens.write", + "policies.write", + "policies.read", + "archives.read", + "archives.write", + "restorations.read", + "restorations.write", + "domains.read", + "domains.write", + "events.read" + ], + "x-enum-name": null, + "x-enum-keys": [] + } + }, + "installationId": { + "type": "string", + "description": "Appwrite Installation ID for VCS (Version Control System) deployment.", + "x-example": "<INSTALLATION_ID>" + }, + "providerRepositoryId": { + "type": "string", + "description": "Repository ID of the repo linked to the function.", + "x-example": "<PROVIDER_REPOSITORY_ID>" + }, + "providerBranch": { + "type": "string", + "description": "Production branch for the repo linked to the function.", + "x-example": "<PROVIDER_BRANCH>" + }, + "providerSilentMode": { + "type": "boolean", + "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.", + "x-example": false + }, + "providerRootDirectory": { + "type": "string", + "description": "Path to function code in the linked repo.", + "x-example": "<PROVIDER_ROOT_DIRECTORY>" + }, + "specification": { + "type": "string", + "description": "Runtime specification for the function and builds.", + "x-example": null + } + }, + "required": [ + "functionId", + "name", + "runtime" + ] } } } - }, - "deprecated": false, - "x-appwrite": { - "method": "getQueueBillingProjectAggregation", - "group": null, - "weight": 734, - "cookies": false, - "type": "", - "demo": "health\/get-queue-billing-project-aggregation.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-billing-project-aggregation.md", - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 10000 - }, - "in": "query" - } - ] + } } }, - "\/health\/queue\/billing-team-aggregation": { + "\/functions\/runtimes": { "get": { - "summary": "Get billing team aggregation queue", - "operationId": "healthGetQueueBillingTeamAggregation", + "summary": "List runtimes", + "operationId": "functionsListRuntimes", "tags": [ - "health" + "functions" ], - "description": "Get billing team aggregation queue.", + "description": "Get a list of all runtimes that are currently active on your instance.", "responses": { "200": { - "description": "Health Queue", + "description": "Runtimes List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/runtimeList" } } } @@ -17496,23 +17801,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueBillingTeamAggregation", - "group": null, - "weight": 733, + "method": "listRuntimes", + "group": "runtimes", + "weight": 479, "cookies": false, "type": "", - "demo": "health\/get-queue-billing-team-aggregation.md", + "demo": "functions\/list-runtimes.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "public", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-billing-team-aggregation.md", "auth": { "Project": [], "Key": [] @@ -17523,37 +17827,24 @@ "Project": [], "Key": [] } - ], - "parameters": [ - { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 10000 - }, - "in": "query" - } ] } }, - "\/health\/queue\/builds": { + "\/functions\/specifications": { "get": { - "summary": "Get builds queue", - "operationId": "healthGetQueueBuilds", + "summary": "List specifications", + "operationId": "functionsListSpecifications", "tags": [ - "health" + "functions" ], - "description": "Get the number of builds that are waiting to be processed in the Appwrite internal queue server.", + "description": "List allowed function specifications for this instance.", "responses": { "200": { - "description": "Health Queue", + "description": "Specifications List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/specificationList" } } } @@ -17561,23 +17852,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueBuilds", - "group": "queue", - "weight": 464, + "method": "listSpecifications", + "group": "runtimes", + "weight": 480, "cookies": false, "type": "", - "demo": "health\/get-queue-builds.md", + "demo": "functions\/list-specifications.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.read", "platforms": [ - "console", - "server" + "server", + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-builds.md", "auth": { "Project": [], "Key": [] @@ -17588,37 +17878,24 @@ "Project": [], "Key": [] } - ], - "parameters": [ - { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 5000 - }, - "in": "query" - } ] } }, - "\/health\/queue\/builds-priority": { + "\/functions\/{functionId}": { "get": { - "summary": "Get billing aggregation queue", - "operationId": "healthGetQueuePriorityBuilds", + "summary": "Get function", + "operationId": "functionsGet", "tags": [ - "health" + "functions" ], - "description": "Get the priority builds queue size.", + "description": "Get a function by its unique ID.", "responses": { "200": { - "description": "Health Queue", + "description": "Function", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/function" } } } @@ -17626,23 +17903,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueuePriorityBuilds", - "group": null, - "weight": 735, + "method": "get", + "group": "functions", + "weight": 475, "cookies": false, "type": "", - "demo": "health\/get-queue-priority-builds.md", + "demo": "functions\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-priority-builds.md", "auth": { "Project": [], "Key": [] @@ -17656,34 +17932,31 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 500.", - "required": false, + "name": "functionId", + "description": "Function ID.", + "required": true, "schema": { - "type": "integer", - "format": "int32", - "default": 500 + "type": "string", + "x-example": "<FUNCTION_ID>" }, - "in": "query" + "in": "path" } ] - } - }, - "\/health\/queue\/certificates": { - "get": { - "summary": "Get certificates queue", - "operationId": "healthGetQueueCertificates", + }, + "put": { + "summary": "Update function", + "operationId": "functionsUpdate", "tags": [ - "health" + "functions" ], - "description": "Get the number of certificates that are waiting to be issued against [Letsencrypt](https:\/\/letsencrypt.org\/) in the Appwrite internal queue server.", + "description": "Update function by its unique ID.", "responses": { "200": { - "description": "Health Queue", + "description": "Function", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/function" } } } @@ -17691,23 +17964,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueCertificates", - "group": "queue", - "weight": 463, + "method": "update", + "group": "functions", + "weight": 627, "cookies": false, "type": "", - "demo": "health\/get-queue-certificates.md", + "demo": "functions\/update.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-certificates.md", "auth": { "Project": [], "Key": [] @@ -17721,58 +17993,320 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, + "name": "functionId", + "description": "Function ID.", + "required": true, "schema": { - "type": "integer", - "format": "int32", - "default": 5000 + "type": "string", + "x-example": "<FUNCTION_ID>" }, - "in": "query" + "in": "path" } - ] - } - }, - "\/health\/queue\/databases": { - "get": { - "summary": "Get databases queue", - "operationId": "healthGetQueueDatabases", - "tags": [ - "health" ], - "description": "Get the number of database changes that are waiting to be processed in the Appwrite internal queue server.", - "responses": { - "200": { - "description": "Health Queue", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/healthQueue" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "getQueueDatabases", - "group": "queue", - "weight": 465, + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Function name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "runtime": { + "type": "string", + "description": "Execution runtime.", + "x-example": "node-14.5", + "enum": [ + "node-14.5", + "node-16.0", + "node-18.0", + "node-19.0", + "node-20.0", + "node-21.0", + "node-22", + "node-23", + "node-24", + "node-25", + "php-8.0", + "php-8.1", + "php-8.2", + "php-8.3", + "php-8.4", + "ruby-3.0", + "ruby-3.1", + "ruby-3.2", + "ruby-3.3", + "ruby-3.4", + "ruby-4.0", + "python-3.8", + "python-3.9", + "python-3.10", + "python-3.11", + "python-3.12", + "python-3.13", + "python-3.14", + "python-ml-3.11", + "python-ml-3.12", + "python-ml-3.13", + "deno-1.21", + "deno-1.24", + "deno-1.35", + "deno-1.40", + "deno-1.46", + "deno-2.0", + "deno-2.5", + "deno-2.6", + "dart-2.15", + "dart-2.16", + "dart-2.17", + "dart-2.18", + "dart-2.19", + "dart-3.0", + "dart-3.1", + "dart-3.3", + "dart-3.5", + "dart-3.8", + "dart-3.9", + "dart-3.10", + "dotnet-6.0", + "dotnet-7.0", + "dotnet-8.0", + "dotnet-10", + "java-8.0", + "java-11.0", + "java-17.0", + "java-18.0", + "java-21.0", + "java-22", + "java-25", + "swift-5.5", + "swift-5.8", + "swift-5.9", + "swift-5.10", + "swift-6.2", + "kotlin-1.6", + "kotlin-1.8", + "kotlin-1.9", + "kotlin-2.0", + "kotlin-2.3", + "cpp-17", + "cpp-20", + "bun-1.0", + "bun-1.1", + "bun-1.2", + "bun-1.3", + "go-1.23", + "go-1.24", + "go-1.25", + "go-1.26", + "static-1", + "flutter-3.24", + "flutter-3.27", + "flutter-3.29", + "flutter-3.32", + "flutter-3.35", + "flutter-3.38" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "execute": { + "type": "array", + "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.", + "x-example": "[\"any\"]", + "items": { + "type": "string" + } + }, + "events": { + "type": "array", + "description": "Events list. Maximum of 100 events are allowed.", + "x-example": null, + "items": { + "type": "string" + } + }, + "schedule": { + "type": "string", + "description": "Schedule CRON syntax.", + "x-example": null + }, + "timeout": { + "type": "integer", + "description": "Maximum execution time in seconds.", + "x-example": 1, + "format": "int32" + }, + "enabled": { + "type": "boolean", + "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.", + "x-example": false + }, + "logging": { + "type": "boolean", + "description": "When disabled, executions will exclude logs and errors, and will be slightly faster.", + "x-example": false + }, + "entrypoint": { + "type": "string", + "description": "Entrypoint File. This path is relative to the \"providerRootDirectory\".", + "x-example": "<ENTRYPOINT>" + }, + "commands": { + "type": "string", + "description": "Build Commands.", + "x-example": "<COMMANDS>" + }, + "scopes": { + "type": "array", + "description": "List of scopes allowed for API Key auto-generated for every execution. Maximum of 100 scopes are allowed.", + "x-example": null, + "items": { + "type": "string", + "enum": [ + "sessions.write", + "users.read", + "users.write", + "teams.read", + "teams.write", + "databases.read", + "databases.write", + "collections.read", + "collections.write", + "tables.read", + "tables.write", + "attributes.read", + "attributes.write", + "columns.read", + "columns.write", + "indexes.read", + "indexes.write", + "documents.read", + "documents.write", + "rows.read", + "rows.write", + "files.read", + "files.write", + "buckets.read", + "buckets.write", + "functions.read", + "functions.write", + "sites.read", + "sites.write", + "log.read", + "log.write", + "execution.read", + "execution.write", + "locale.read", + "avatars.read", + "health.read", + "providers.read", + "providers.write", + "messages.read", + "messages.write", + "topics.read", + "topics.write", + "subscribers.read", + "subscribers.write", + "targets.read", + "targets.write", + "rules.read", + "rules.write", + "schedules.read", + "schedules.write", + "migrations.read", + "migrations.write", + "vcs.read", + "vcs.write", + "assistant.read", + "tokens.read", + "tokens.write", + "policies.write", + "policies.read", + "archives.read", + "archives.write", + "restorations.read", + "restorations.write", + "domains.read", + "domains.write", + "events.read" + ], + "x-enum-name": null, + "x-enum-keys": [] + } + }, + "installationId": { + "type": "string", + "description": "Appwrite Installation ID for VCS (Version Controle System) deployment.", + "x-example": "<INSTALLATION_ID>" + }, + "providerRepositoryId": { + "type": "string", + "description": "Repository ID of the repo linked to the function", + "x-example": "<PROVIDER_REPOSITORY_ID>", + "x-nullable": true + }, + "providerBranch": { + "type": "string", + "description": "Production branch for the repo linked to the function", + "x-example": "<PROVIDER_BRANCH>" + }, + "providerSilentMode": { + "type": "boolean", + "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.", + "x-example": false + }, + "providerRootDirectory": { + "type": "string", + "description": "Path to function code in the linked repo.", + "x-example": "<PROVIDER_ROOT_DIRECTORY>" + }, + "specification": { + "type": "string", + "description": "Runtime specification for the function and builds.", + "x-example": null + } + }, + "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": { + "method": "delete", + "group": "functions", + "weight": 478, "cookies": false, "type": "", - "demo": "health\/get-queue-databases.md", + "demo": "functions\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-databases.md", "auth": { "Project": [], "Key": [] @@ -17786,45 +18320,33 @@ ], "parameters": [ { - "name": "name", - "description": "Queue name for which to check the queue size", - "required": false, + "name": "functionId", + "description": "Function ID.", + "required": true, "schema": { "type": "string", - "x-example": "<NAME>", - "default": "database_db_main" - }, - "in": "query" - }, - { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 5000 + "x-example": "<FUNCTION_ID>" }, - "in": "query" + "in": "path" } ] } }, - "\/health\/queue\/deletes": { - "get": { - "summary": "Get deletes queue", - "operationId": "healthGetQueueDeletes", + "\/functions\/{functionId}\/deployment": { + "patch": { + "summary": "Update function's deployment", + "operationId": "functionsUpdateFunctionDeployment", "tags": [ - "health" + "functions" ], - "description": "Get the number of background destructive changes that are waiting to be processed in the Appwrite internal queue server.", + "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": "Health Queue", + "description": "Function", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/function" } } } @@ -17832,23 +18354,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueDeletes", - "group": "queue", - "weight": 466, + "method": "updateFunctionDeployment", + "group": "functions", + "weight": 483, "cookies": false, "type": "", - "demo": "health\/get-queue-deletes.md", + "demo": "functions\/update-function-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-deletes.md", "auth": { "Project": [], "Key": [] @@ -17862,34 +18383,52 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, + "name": "functionId", + "description": "Function ID.", + "required": true, "schema": { - "type": "integer", - "format": "int32", - "default": 5000 + "type": "string", + "x-example": "<FUNCTION_ID>" }, - "in": "query" + "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "deploymentId": { + "type": "string", + "description": "Deployment ID.", + "x-example": "<DEPLOYMENT_ID>" + } + }, + "required": [ + "deploymentId" + ] + } + } + } + } } }, - "\/health\/queue\/failed\/{name}": { + "\/functions\/{functionId}\/deployments": { "get": { - "summary": "Get number of failed queue jobs", - "operationId": "healthGetFailedJobs", + "summary": "List deployments", + "operationId": "functionsListDeployments", "tags": [ - "health" + "functions" ], - "description": "Returns the amount of failed jobs in a given queue.\n", + "description": "Get a list of all the function's code deployments. You can use the query params to filter your results.", "responses": { "200": { - "description": "Health Queue", + "description": "Deployments List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/deploymentList" } } } @@ -17897,23 +18436,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getFailedJobs", - "group": "queue", - "weight": 473, + "method": "listDeployments", + "group": "deployments", + "weight": 484, "cookies": false, "type": "", - "demo": "health\/get-failed-jobs.md", + "demo": "functions\/list-deployments.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-failed-queue-jobs.md", "auth": { "Project": [], "Key": [] @@ -17927,61 +18465,66 @@ ], "parameters": [ { - "name": "name", - "description": "The name of the queue", + "name": "functionId", + "description": "Function ID.", "required": true, "schema": { "type": "string", - "x-example": "v1-database", - "enum": [ - "v1-database", - "v1-deletes", - "v1-audits", - "v1-mails", - "v1-functions", - "v1-stats-resources", - "v1-stats-usage", - "v1-webhooks", - "v1-certificates", - "v1-builds", - "v1-screenshots", - "v1-messaging", - "v1-migrations" - ], - "x-enum-name": null, - "x-enum-keys": [] + "x-example": "<FUNCTION_ID>" }, "in": "path" }, { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "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": "integer", - "format": "int32", - "default": 5000 + "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", + "x-example": "<SEARCH>", + "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", + "x-example": false, + "default": true }, "in": "query" } ] - } - }, - "\/health\/queue\/functions": { - "get": { - "summary": "Get functions queue", - "operationId": "healthGetQueueFunctions", + }, + "post": { + "summary": "Create deployment", + "operationId": "functionsCreateDeployment", "tags": [ - "health" + "functions" ], - "description": "Get the number of function executions that are waiting to be processed in the Appwrite internal queue server.", + "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": { - "200": { - "description": "Health Queue", + "202": { + "description": "Deployment", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/deployment" } } } @@ -17989,23 +18532,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueFunctions", - "group": "queue", - "weight": 470, + "method": "createDeployment", + "group": "deployments", + "weight": 481, "cookies": false, - "type": "", - "demo": "health\/get-queue-functions.md", + "type": "upload", + "demo": "functions\/create-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.write", "platforms": [ "console", "server" ], - "packaging": false, + "packaging": true, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-functions.md", "auth": { "Project": [], "Key": [] @@ -18019,34 +18561,71 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, + "name": "functionId", + "description": "Function ID.", + "required": true, "schema": { - "type": "integer", - "format": "int32", - "default": 5000 + "type": "string", + "x-example": "<FUNCTION_ID>" }, - "in": "query" + "in": "path" } - ] - } - }, - "\/health\/queue\/logs": { - "get": { - "summary": "Get logs queue", - "operationId": "healthGetQueueLogs", - "tags": [ - "health" ], - "description": "Get the number of logs that are waiting to be processed in the Appwrite internal queue server.", + "requestBody": { + "content": { + "multipart\/form-data": { + "schema": { + "type": "object", + "properties": { + "entrypoint": { + "type": "string", + "description": "Entrypoint File.", + "x-example": "<ENTRYPOINT>", + "x-nullable": true + }, + "commands": { + "type": "string", + "description": "Build Commands.", + "x-example": "<COMMANDS>", + "x-nullable": true + }, + "code": { + "type": "string", + "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.", + "x-example": null, + "format": "binary" + }, + "activate": { + "type": "boolean", + "description": "Automatically activate the deployment when it is finished building.", + "x-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": { - "200": { - "description": "Health Queue", + "202": { + "description": "Deployment", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/deployment" } } } @@ -18054,23 +18633,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueLogs", - "group": "queue", - "weight": 462, + "method": "createDuplicateDeployment", + "group": "deployments", + "weight": 489, "cookies": false, "type": "", - "demo": "health\/get-queue-logs.md", + "demo": "functions\/create-duplicate-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-logs.md", "auth": { "Project": [], "Key": [] @@ -18084,34 +18662,57 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, + "name": "functionId", + "description": "Function ID.", + "required": true, "schema": { - "type": "integer", - "format": "int32", - "default": 5000 + "type": "string", + "x-example": "<FUNCTION_ID>" }, - "in": "query" + "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "deploymentId": { + "type": "string", + "description": "Deployment ID.", + "x-example": "<DEPLOYMENT_ID>" + }, + "buildId": { + "type": "string", + "description": "Build unique ID.", + "x-example": "<BUILD_ID>" + } + }, + "required": [ + "deploymentId" + ] + } + } + } + } } }, - "\/health\/queue\/mails": { - "get": { - "summary": "Get mails queue", - "operationId": "healthGetQueueMails", + "\/functions\/{functionId}\/deployments\/template": { + "post": { + "summary": "Create template deployment", + "operationId": "functionsCreateTemplateDeployment", "tags": [ - "health" + "functions" ], - "description": "Get the number of mails that are waiting to be processed in the Appwrite internal queue server.", + "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": { - "200": { - "description": "Health Queue", + "202": { + "description": "Deployment", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/deployment" } } } @@ -18119,23 +18720,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueMails", - "group": "queue", - "weight": 467, + "method": "createTemplateDeployment", + "group": "deployments", + "weight": 486, "cookies": false, "type": "", - "demo": "health\/get-queue-mails.md", + "demo": "functions\/create-template-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-mails.md", "auth": { "Project": [], "Key": [] @@ -18149,34 +18749,88 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, + "name": "functionId", + "description": "Function ID.", + "required": true, "schema": { - "type": "integer", - "format": "int32", - "default": 5000 + "type": "string", + "x-example": "<FUNCTION_ID>" }, - "in": "query" + "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "repository": { + "type": "string", + "description": "Repository name of the template.", + "x-example": "<REPOSITORY>" + }, + "owner": { + "type": "string", + "description": "The name of the owner of the template.", + "x-example": "<OWNER>" + }, + "rootDirectory": { + "type": "string", + "description": "Path to function code in the template repo.", + "x-example": "<ROOT_DIRECTORY>" + }, + "type": { + "type": "string", + "description": "Type for the reference provided. Can be commit, branch, or tag", + "x-example": "commit", + "enum": [ + "commit", + "branch", + "tag" + ], + "x-enum-name": "TemplateReferenceType", + "x-enum-keys": [] + }, + "reference": { + "type": "string", + "description": "Reference value, can be a commit hash, branch name, or release tag", + "x-example": "<REFERENCE>" + }, + "activate": { + "type": "boolean", + "description": "Automatically activate the deployment when it is finished building.", + "x-example": false + } + }, + "required": [ + "repository", + "owner", + "rootDirectory", + "type", + "reference" + ] + } + } + } + } } }, - "\/health\/queue\/messaging": { - "get": { - "summary": "Get messaging queue", - "operationId": "healthGetQueueMessaging", + "\/functions\/{functionId}\/deployments\/vcs": { + "post": { + "summary": "Create VCS deployment", + "operationId": "functionsCreateVcsDeployment", "tags": [ - "health" + "functions" ], - "description": "Get the number of messages that are waiting to be processed in the Appwrite internal queue server.", + "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": { - "200": { - "description": "Health Queue", + "202": { + "description": "Deployment", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/deployment" } } } @@ -18184,23 +18838,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueMessaging", - "group": "queue", - "weight": 468, + "method": "createVcsDeployment", + "group": "deployments", + "weight": 487, "cookies": false, "type": "", - "demo": "health\/get-queue-messaging.md", + "demo": "functions\/create-vcs-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-messaging.md", "auth": { "Project": [], "Key": [] @@ -18214,34 +18867,69 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, + "name": "functionId", + "description": "Function ID.", + "required": true, "schema": { - "type": "integer", - "format": "int32", - "default": 5000 + "type": "string", + "x-example": "<FUNCTION_ID>" }, - "in": "query" + "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Type of reference passed. Allowed values are: branch, commit", + "x-example": "branch", + "enum": [ + "branch", + "commit" + ], + "x-enum-name": "VCSReferenceType", + "x-enum-keys": [] + }, + "reference": { + "type": "string", + "description": "VCS reference to create deployment from. Depending on type this can be: branch name, commit hash", + "x-example": "<REFERENCE>" + }, + "activate": { + "type": "boolean", + "description": "Automatically activate the deployment when it is finished building.", + "x-example": false + } + }, + "required": [ + "type", + "reference" + ] + } + } + } + } } }, - "\/health\/queue\/migrations": { + "\/functions\/{functionId}\/deployments\/{deploymentId}": { "get": { - "summary": "Get migrations queue", - "operationId": "healthGetQueueMigrations", + "summary": "Get deployment", + "operationId": "functionsGetDeployment", "tags": [ - "health" + "functions" ], - "description": "Get the number of migrations that are waiting to be processed in the Appwrite internal queue server.", + "description": "Get a function deployment by its unique ID.", "responses": { "200": { - "description": "Health Queue", + "description": "Deployment", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/deployment" } } } @@ -18249,23 +18937,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueMigrations", - "group": "queue", - "weight": 469, + "method": "getDeployment", + "group": "deployments", + "weight": 482, "cookies": false, "type": "", - "demo": "health\/get-queue-migrations.md", + "demo": "functions\/get-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-migrations.md", "auth": { "Project": [], "Key": [] @@ -18279,58 +18966,57 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, + "name": "functionId", + "description": "Function ID.", + "required": true, "schema": { - "type": "integer", - "format": "int32", - "default": 5000 + "type": "string", + "x-example": "<FUNCTION_ID>" }, - "in": "query" + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DEPLOYMENT_ID>" + }, + "in": "path" } ] - } - }, - "\/health\/queue\/region-manager": { - "get": { - "summary": "Get region manager queue", - "operationId": "healthGetQueueRegionManager", + }, + "delete": { + "summary": "Delete deployment", + "operationId": "functionsDeleteDeployment", "tags": [ - "health" + "functions" ], - "description": "Get region manager queue.", + "description": "Delete a code deployment by its unique ID.", "responses": { - "200": { - "description": "Health Queue", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/healthQueue" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "getQueueRegionManager", - "group": null, - "weight": 736, + "method": "deleteDeployment", + "group": "deployments", + "weight": 485, "cookies": false, "type": "", - "demo": "health\/get-queue-region-manager.md", + "demo": "functions\/delete-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-region-manager.md", "auth": { "Project": [], "Key": [] @@ -18344,58 +19030,60 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 100.", - "required": false, + "name": "functionId", + "description": "Function ID.", + "required": true, "schema": { - "type": "integer", - "format": "int32", - "default": 100 + "type": "string", + "x-example": "<FUNCTION_ID>" }, - "in": "query" + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DEPLOYMENT_ID>" + }, + "in": "path" } ] } }, - "\/health\/queue\/stats-resources": { + "\/functions\/{functionId}\/deployments\/{deploymentId}\/download": { "get": { - "summary": "Get stats resources queue", - "operationId": "healthGetQueueStatsResources", + "summary": "Get deployment download", + "operationId": "functionsGetDeploymentDownload", "tags": [ - "health" + "functions" ], - "description": "Get the number of metrics that are waiting to be processed in the Appwrite stats resources queue.", + "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": "Health Queue", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/healthQueue" - } - } - } + "description": "File" } }, "deprecated": false, "x-appwrite": { - "method": "getQueueStatsResources", - "group": "queue", - "weight": 471, + "method": "getDeploymentDownload", + "group": "deployments", + "weight": 488, "cookies": false, - "type": "", - "demo": "health\/get-queue-stats-resources.md", + "type": "location", + "demo": "functions\/get-deployment-download.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.read", "platforms": [ "console", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-stats-resources.md", "auth": { "Project": [], "Key": [] @@ -18404,39 +19092,66 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DEPLOYMENT_ID>" + }, + "in": "path" + }, + { + "name": "type", + "description": "Deployment file to download. Can be: \"source\", \"output\".", "required": false, "schema": { - "type": "integer", - "format": "int32", - "default": 5000 + "type": "string", + "x-example": "source", + "enum": [ + "source", + "output" + ], + "x-enum-name": "DeploymentDownloadType", + "x-enum-keys": [], + "default": "source" }, "in": "query" } ] } }, - "\/health\/queue\/stats-usage": { - "get": { - "summary": "Get stats usage queue", - "operationId": "healthGetQueueUsage", + "\/functions\/{functionId}\/deployments\/{deploymentId}\/status": { + "patch": { + "summary": "Update deployment status", + "operationId": "functionsUpdateDeploymentStatus", "tags": [ - "health" + "functions" ], - "description": "Get the number of metrics that are waiting to be processed in the Appwrite internal queue server.", + "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": "Health Queue", + "description": "Deployment", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/deployment" } } } @@ -18444,23 +19159,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueUsage", - "group": "queue", - "weight": 472, + "method": "updateDeploymentStatus", + "group": "deployments", + "weight": 490, "cookies": false, "type": "", - "demo": "health\/get-queue-usage.md", + "demo": "functions\/update-deployment-status.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-stats-usage.md", "auth": { "Project": [], "Key": [] @@ -18474,34 +19188,43 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, + "name": "functionId", + "description": "Function ID.", + "required": true, "schema": { - "type": "integer", - "format": "int32", - "default": 5000 + "type": "string", + "x-example": "<FUNCTION_ID>" }, - "in": "query" + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DEPLOYMENT_ID>" + }, + "in": "path" } ] } }, - "\/health\/queue\/threats": { + "\/functions\/{functionId}\/executions": { "get": { - "summary": "Get threats queue", - "operationId": "healthGetQueueThreats", + "summary": "List executions", + "operationId": "functionsListExecutions", "tags": [ - "health" + "functions" ], - "description": "Get threats queue.", + "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": "Health Queue", + "description": "Executions List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/executionList" } } } @@ -18509,64 +19232,88 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueThreats", - "group": null, - "weight": 737, + "method": "listExecutions", + "group": "executions", + "weight": 493, "cookies": false, "type": "", - "demo": "health\/get-queue-threats.md", + "demo": "functions\/list-executions.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "execution.read", "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-threats.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 100.", + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<FUNCTION_ID>" + }, + "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": "integer", - "format": "int32", - "default": 100 + "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", + "x-example": false, + "default": true }, "in": "query" } ] - } - }, - "\/health\/queue\/webhooks": { - "get": { - "summary": "Get webhooks queue", - "operationId": "healthGetQueueWebhooks", + }, + "post": { + "summary": "Create execution", + "operationId": "functionsCreateExecution", "tags": [ - "health" + "functions" ], - "description": "Get the number of webhooks that are waiting to be processed in the Appwrite internal queue server.", + "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": { - "200": { - "description": "Health Queue", + "201": { + "description": "Execution", "content": { - "application\/json": { + "multipart\/form-data": { "schema": { - "$ref": "#\/components\/schemas\/healthQueue" + "$ref": "#\/components\/schemas\/execution" } } } @@ -18574,64 +19321,119 @@ }, "deprecated": false, "x-appwrite": { - "method": "getQueueWebhooks", - "group": "queue", - "weight": 461, + "method": "createExecution", + "group": "executions", + "weight": 491, "cookies": false, "type": "", - "demo": "health\/get-queue-webhooks.md", + "demo": "functions\/create-execution.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "execution.write", "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-webhooks.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, + "name": "functionId", + "description": "Function ID.", + "required": true, "schema": { - "type": "integer", - "format": "int32", - "default": 5000 + "type": "string", + "x-example": "<FUNCTION_ID>" }, - "in": "query" + "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "body": { + "type": "string", + "description": "HTTP body of execution. Default value is empty string.", + "x-example": "<BODY>" + }, + "async": { + "type": "boolean", + "description": "Execute code in the background. Default value is false.", + "x-example": false + }, + "path": { + "type": "string", + "description": "HTTP path of execution. Path can include query params. Default value is \/", + "x-example": "<PATH>" + }, + "method": { + "type": "string", + "description": "HTTP method of execution. Default value is POST.", + "x-example": "GET", + "enum": [ + "GET", + "POST", + "PUT", + "PATCH", + "DELETE", + "OPTIONS", + "HEAD" + ], + "x-enum-name": "ExecutionMethod", + "x-enum-keys": [] + }, + "headers": { + "type": "object", + "description": "HTTP headers of execution. Defaults to empty.", + "x-example": "{}" + }, + "scheduledAt": { + "type": "string", + "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.", + "x-example": "<SCHEDULED_AT>", + "x-nullable": true + } + } + } + } + } + } } }, - "\/health\/storage": { + "\/functions\/{functionId}\/executions\/{executionId}": { "get": { - "summary": "Get storage", - "operationId": "healthGetStorage", + "summary": "Get execution", + "operationId": "functionsGetExecution", "tags": [ - "health" + "functions" ], - "description": "Check the Appwrite storage device is up and connection is successful.", + "description": "Get a function execution log by its unique ID.", "responses": { "200": { - "description": "Health Status", + "description": "Execution", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthStatus" + "$ref": "#\/components\/schemas\/execution" } } } @@ -18639,75 +19441,90 @@ }, "deprecated": false, "x-appwrite": { - "method": "getStorage", - "group": "storage", - "weight": 458, + "method": "getExecution", + "group": "executions", + "weight": 492, "cookies": false, "type": "", - "demo": "health\/get-storage.md", + "demo": "functions\/get-execution.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "execution.read", "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-storage.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "executionId", + "description": "Execution ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<EXECUTION_ID>" + }, + "in": "path" } ] - } - }, - "\/health\/storage\/local": { - "get": { - "summary": "Get local storage", - "operationId": "healthGetStorageLocal", + }, + "delete": { + "summary": "Delete execution", + "operationId": "functionsDeleteExecution", "tags": [ - "health" + "functions" ], - "description": "Check the Appwrite local storage device is up and connection is successful.", + "description": "Delete a function execution by its unique ID.", "responses": { - "200": { - "description": "Health Status", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/healthStatus" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "getStorageLocal", - "group": "storage", - "weight": 457, + "method": "deleteExecution", + "group": "executions", + "weight": 494, "cookies": false, "type": "", - "demo": "health\/get-storage-local.md", + "demo": "functions\/delete-execution.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "execution.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-storage-local.md", "auth": { "Project": [], "Key": [] @@ -18718,24 +19535,46 @@ "Project": [], "Key": [] } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "executionId", + "description": "Execution ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<EXECUTION_ID>" + }, + "in": "path" + } ] } }, - "\/health\/time": { + "\/functions\/{functionId}\/variables": { "get": { - "summary": "Get time", - "operationId": "healthGetTime", + "summary": "List variables", + "operationId": "functionsListVariables", "tags": [ - "health" + "functions" ], - "description": "Check the Appwrite server time is synced with Google remote NTP server. We use this technology to smoothly handle leap seconds with no disruptive events. The [Network Time Protocol](https:\/\/en.wikipedia.org\/wiki\/Network_Time_Protocol) (NTP) is used by hundreds of millions of computers and devices to synchronize their clocks over the Internet. If your computer sets its own clock, it likely uses NTP.", + "description": "Get a list of all variables of a specific function.", "responses": { "200": { - "description": "Health Time", + "description": "Variables List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/healthTime" + "$ref": "#\/components\/schemas\/variableList" } } } @@ -18743,23 +19582,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getTime", - "group": "health", - "weight": 455, + "method": "listVariables", + "group": "variables", + "weight": 499, "cookies": false, "type": "", - "demo": "health\/get-time.md", + "demo": "functions\/list-variables.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-time.md", "auth": { "Project": [], "Key": [] @@ -18770,24 +19608,34 @@ "Project": [], "Key": [] } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<FUNCTION_ID>" + }, + "in": "path" + } ] - } - }, - "\/locale": { - "get": { - "summary": "Get user locale", - "operationId": "localeGet", + }, + "post": { + "summary": "Create variable", + "operationId": "functionsCreateVariable", "tags": [ - "locale" + "functions" ], - "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))", + "description": "Create a new function environment variable. These variables can be accessed in the function at runtime as environment variables.", "responses": { - "200": { - "description": "Locale", + "201": { + "description": "Variable", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/locale" + "$ref": "#\/components\/schemas\/variable" } } } @@ -18795,55 +19643,92 @@ }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": null, - "weight": 49, + "method": "createVariable", + "group": "variables", + "weight": 628, "cookies": false, "type": "", - "demo": "locale\/get.md", + "demo": "functions\/create-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "scope": "functions.write", "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-locale.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } - ] + ], + "parameters": [ + { + "name": "functionId", + "description": "Function unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<FUNCTION_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Variable key. Max length: 255 chars.", + "x-example": "<KEY>" + }, + "value": { + "type": "string", + "description": "Variable value. Max length: 8192 chars.", + "x-example": "<VALUE>" + }, + "secret": { + "type": "boolean", + "description": "Secret variables can be updated or deleted, but only functions can read them during build and runtime.", + "x-example": false + } + }, + "required": [ + "key", + "value" + ] + } + } + } + } } }, - "\/locale\/codes": { + "\/functions\/{functionId}\/variables\/{variableId}": { "get": { - "summary": "List locale codes", - "operationId": "localeListCodes", + "summary": "Get variable", + "operationId": "functionsGetVariable", "tags": [ - "locale" + "functions" ], - "description": "List of all locale codes in [ISO 639-1](https:\/\/en.wikipedia.org\/wiki\/List_of_ISO_639-1_codes).", + "description": "Get a variable by its unique ID.", "responses": { "200": { - "description": "Locale codes list", + "description": "Variable", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/localeCodeList" + "$ref": "#\/components\/schemas\/variable" } } } @@ -18851,55 +19736,70 @@ }, "deprecated": false, "x-appwrite": { - "method": "listCodes", - "group": null, - "weight": 50, + "method": "getVariable", + "group": "variables", + "weight": 498, "cookies": false, "type": "", - "demo": "locale\/list-codes.md", + "demo": "functions\/get-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "scope": "functions.read", "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-locale-codes.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<VARIABLE_ID>" + }, + "in": "path" } ] - } - }, - "\/locale\/continents": { - "get": { - "summary": "List continents", - "operationId": "localeListContinents", + }, + "put": { + "summary": "Update variable", + "operationId": "functionsUpdateVariable", "tags": [ - "locale" + "functions" ], - "description": "List of all continents. You can use the locale header to get the data in a supported language.", + "description": "Update variable by its unique ID.", "responses": { "200": { - "description": "Continents List", + "description": "Variable", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/continentList" + "$ref": "#\/components\/schemas\/variable" } } } @@ -18907,111 +19807,167 @@ }, "deprecated": false, "x-appwrite": { - "method": "listContinents", - "group": null, - "weight": 54, + "method": "updateVariable", + "group": "variables", + "weight": 500, "cookies": false, "type": "", - "demo": "locale\/list-continents.md", + "demo": "functions\/update-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "scope": "functions.write", "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-continents.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } - ] - } - }, - "\/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": { - "method": "listCountries", - "group": null, - "weight": 51, - "cookies": false, - "type": "", - "demo": "locale\/list-countries.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", - "platforms": [ - "console", - "client", - "server", + "parameters": [ + { + "name": "functionId", + "description": "Function unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<VARIABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Variable key. Max length: 255 chars.", + "x-example": "<KEY>" + }, + "value": { + "type": "string", + "description": "Variable value. Max length: 8192 chars.", + "x-example": "<VALUE>", + "x-nullable": true + }, + "secret": { + "type": "boolean", + "description": "Secret variables can be updated or deleted, but only functions can read them during build and runtime.", + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "key" + ] + } + } + } + } + }, + "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": { + "method": "deleteVariable", + "group": "variables", + "weight": 501, + "cookies": false, + "type": "", + "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, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<FUNCTION_ID>" + }, + "in": "path" + }, + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<VARIABLE_ID>" + }, + "in": "path" } ] } }, - "\/locale\/countries\/eu": { - "get": { - "summary": "List EU countries", - "operationId": "localeListCountriesEU", + "\/graphql": { + "post": { + "summary": "GraphQL endpoint", + "operationId": "graphqlQuery", "tags": [ - "locale" + "graphql" ], - "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.", + "description": "Execute a GraphQL mutation.", "responses": { "200": { - "description": "Countries List", + "description": "Any", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/countryList" + "$ref": "#\/components\/schemas\/any" } } } @@ -19019,55 +19975,55 @@ }, "deprecated": false, "x-appwrite": { - "method": "listCountriesEU", - "group": null, - "weight": 52, + "method": "query", + "group": "graphql", + "weight": 160, "cookies": false, - "type": "", - "demo": "locale\/list-countries-eu.md", - "rate-limit": 0, - "rate-time": 3600, + "type": "graphql", + "demo": "graphql\/query.md", + "rate-limit": 60, + "rate-time": 60, "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "scope": "graphql", "platforms": [ "console", - "client", "server", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries-eu.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/graphql\/post.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], "Key": [], + "Session": [], "JWT": [] } ] } }, - "\/locale\/countries\/phones": { - "get": { - "summary": "List countries phone codes", - "operationId": "localeListCountriesPhones", + "\/graphql\/mutation": { + "post": { + "summary": "GraphQL endpoint", + "operationId": "graphqlMutation", "tags": [ - "locale" + "graphql" ], - "description": "List of all countries phone codes. You can use the locale header to get the data in a supported language.", + "description": "Execute a GraphQL mutation.", "responses": { "200": { - "description": "Phones List", + "description": "Any", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/phoneList" + "$ref": "#\/components\/schemas\/any" } } } @@ -19075,55 +20031,55 @@ }, "deprecated": false, "x-appwrite": { - "method": "listCountriesPhones", - "group": null, - "weight": 53, + "method": "mutation", + "group": "graphql", + "weight": 159, "cookies": false, - "type": "", - "demo": "locale\/list-countries-phones.md", - "rate-limit": 0, - "rate-time": 3600, + "type": "graphql", + "demo": "graphql\/mutation.md", + "rate-limit": 60, + "rate-time": 60, "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "scope": "graphql", "platforms": [ "console", - "client", "server", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries-phones.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/graphql\/post.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], "Key": [], + "Session": [], "JWT": [] } ] } }, - "\/locale\/currencies": { + "\/health": { "get": { - "summary": "List currencies", - "operationId": "localeListCurrencies", + "summary": "Get HTTP", + "operationId": "healthGet", "tags": [ - "locale" + "health" ], - "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.", + "description": "Check the Appwrite HTTP server is up and responsive.", "responses": { "200": { - "description": "Currencies List", + "description": "Health Status", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/currencyList" + "$ref": "#\/components\/schemas\/healthStatus" } } } @@ -19131,55 +20087,51 @@ }, "deprecated": false, "x-appwrite": { - "method": "listCurrencies", - "group": null, - "weight": 55, + "method": "get", + "group": "health", + "weight": 504, "cookies": false, "type": "", - "demo": "locale\/list-currencies.md", + "demo": "health\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "scope": "health.read", "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-currencies.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ] } }, - "\/locale\/languages": { + "\/health\/anti-virus": { "get": { - "summary": "List languages", - "operationId": "localeListLanguages", + "summary": "Get antivirus", + "operationId": "healthGetAntivirus", "tags": [ - "locale" + "health" ], - "description": "List of all languages classified by ISO 639-1 including 2-letter code, name in English, and name in the respective language.", + "description": "Check the Appwrite Antivirus server is up and connection is successful.", "responses": { "200": { - "description": "Languages List", + "description": "Health Antivirus", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/languageList" + "$ref": "#\/components\/schemas\/healthAntivirus" } } } @@ -19187,55 +20139,51 @@ }, "deprecated": false, "x-appwrite": { - "method": "listLanguages", - "group": null, - "weight": 56, + "method": "getAntivirus", + "group": "health", + "weight": 513, "cookies": false, "type": "", - "demo": "locale\/list-languages.md", + "demo": "health\/get-antivirus.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "scope": "health.read", "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-languages.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-storage-anti-virus.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ] } }, - "\/messaging\/messages": { + "\/health\/cache": { "get": { - "summary": "List messages", - "operationId": "messagingListMessages", + "summary": "Get cache", + "operationId": "healthGetCache", "tags": [ - "messaging" + "health" ], - "description": "Get a list of all messages from the current Appwrite project.", + "description": "Check the Appwrite in-memory cache servers are up and connection is successful.", "responses": { "200": { - "description": "Message list", + "description": "Status List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/messageList" + "$ref": "#\/components\/schemas\/healthStatusList" } } } @@ -19243,23 +20191,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "listMessages", - "group": "messages", - "weight": 231, + "method": "getCache", + "group": "health", + "weight": 507, "cookies": false, "type": "", - "demo": "messaging\/list-messages.md", + "demo": "health\/get-cache.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.read", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-messages.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-cache.md", "auth": { "Project": [], "Key": [] @@ -19270,61 +20218,24 @@ "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: scheduledAt, deliveredAt, deliveredTotal, status, description, providerType", - "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", - "x-example": "<SEARCH>", - "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", - "x-example": false, - "default": true - }, - "in": "query" - } ] } }, - "\/messaging\/messages\/email": { - "post": { - "summary": "Create email", - "operationId": "messagingCreateEmail", + "\/health\/certificate": { + "get": { + "summary": "Get the SSL certificate for a domain", + "operationId": "healthGetCertificate", "tags": [ - "messaging" + "health" ], - "description": "Create a new email message.", + "description": "Get the SSL certificate for a domain", "responses": { - "201": { - "description": "Message", + "200": { + "description": "Health Certificate", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/message" + "$ref": "#\/components\/schemas\/healthCertificate" } } } @@ -19332,23 +20243,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "createEmail", - "group": "messages", - "weight": 228, + "method": "getCertificate", + "group": "health", + "weight": 510, "cookies": false, "type": "", - "demo": "messaging\/create-email.md", + "demo": "health\/get-certificate.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-email.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-certificate.md", "auth": { "Project": [], "Key": [] @@ -19360,118 +20271,34 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "messageId": { - "type": "string", - "description": "Message 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.", - "x-example": "<MESSAGE_ID>" - }, - "subject": { - "type": "string", - "description": "Email Subject.", - "x-example": "<SUBJECT>" - }, - "content": { - "type": "string", - "description": "Email Content.", - "x-example": "<CONTENT>" - }, - "topics": { - "type": "array", - "description": "List of Topic IDs.", - "x-example": null, - "items": { - "type": "string" - } - }, - "users": { - "type": "array", - "description": "List of User IDs.", - "x-example": null, - "items": { - "type": "string" - } - }, - "targets": { - "type": "array", - "description": "List of Targets IDs.", - "x-example": null, - "items": { - "type": "string" - } - }, - "cc": { - "type": "array", - "description": "Array of target IDs to be added as CC.", - "x-example": null, - "items": { - "type": "string" - } - }, - "bcc": { - "type": "array", - "description": "Array of target IDs to be added as BCC.", - "x-example": null, - "items": { - "type": "string" - } - }, - "attachments": { - "type": "array", - "description": "Array of compound ID strings of bucket IDs and file IDs to be attached to the email. They should be formatted as <BUCKET_ID>:<FILE_ID>.", - "x-example": null, - "items": { - "type": "string" - } - }, - "draft": { - "type": "boolean", - "description": "Is message a draft", - "x-example": false - }, - "html": { - "type": "boolean", - "description": "Is content of type HTML", - "x-example": false - }, - "scheduledAt": { - "type": "string", - "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "messageId", - "subject", - "content" - ] - } - } + "parameters": [ + { + "name": "domain", + "description": "string", + "required": false, + "schema": { + "type": "string" + }, + "in": "query" } - } + ] } }, - "\/messaging\/messages\/email\/{messageId}": { - "patch": { - "summary": "Update email", - "operationId": "messagingUpdateEmail", + "\/health\/console-pausing": { + "get": { + "summary": "Get console pausing health", + "operationId": "healthGetConsolePausing", "tags": [ - "messaging" + "health" ], - "description": "Update an email message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", + "description": "Get console pausing health status. Monitors projects approaching the pause threshold to detect potential issues with console access tracking.\n", "responses": { "200": { - "description": "Message", + "description": "Health Status", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/message" + "$ref": "#\/components\/schemas\/healthStatus" } } } @@ -19479,23 +20306,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateEmail", - "group": "messages", - "weight": 235, + "method": "getConsolePausing", + "group": null, + "weight": 756, "cookies": false, "type": "", - "demo": "messaging\/update-email.md", + "demo": "health\/get-console-pausing.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-email.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-console-pausing.md", "auth": { "Project": [], "Key": [] @@ -19509,105 +20336,4654 @@ ], "parameters": [ { - "name": "messageId", - "description": "Message ID.", - "required": true, + "name": "threshold", + "description": "Percentage threshold of projects approaching pause. When hit (equal or higher), endpoint returns server error. Default value is 10.", + "required": false, "schema": { - "type": "string", - "x-example": "<MESSAGE_ID>" + "type": "integer", + "format": "int32", + "default": 10 }, - "in": "path" + "in": "query" + }, + { + "name": "inactivityDays", + "description": "Number of days of inactivity before a project is paused. Should match the plan's projectInactivityDays setting. Default value is 7.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 7 + }, + "in": "query" } + ] + } + }, + "\/health\/db": { + "get": { + "summary": "Get DB", + "operationId": "healthGetDB", + "tags": [ + "health" ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "topics": { - "type": "array", - "description": "List of Topic IDs.", - "x-example": null, - "items": { - "type": "string" - }, + "description": "Check the Appwrite database servers are up and connection is successful.", + "responses": { + "200": { + "description": "Status List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/healthStatusList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getDB", + "group": "health", + "weight": 506, + "cookies": false, + "type": "", + "demo": "health\/get-db.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-db.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ] + } + }, + "\/health\/pubsub": { + "get": { + "summary": "Get pubsub", + "operationId": "healthGetPubSub", + "tags": [ + "health" + ], + "description": "Check the Appwrite pub-sub servers are up and connection is successful.", + "responses": { + "200": { + "description": "Status List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/healthStatusList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getPubSub", + "group": "health", + "weight": 508, + "cookies": false, + "type": "", + "demo": "health\/get-pub-sub.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-pubsub.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ] + } + }, + "\/health\/queue\/audits": { + "get": { + "summary": "Get audits queue", + "operationId": "healthGetQueueAudits", + "tags": [ + "health" + ], + "description": "Get the number of audit logs that are waiting to be processed in the Appwrite internal queue server.", + "responses": { + "200": { + "description": "Health Queue", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/healthQueue" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getQueueAudits", + "group": "queue", + "weight": 514, + "cookies": false, + "type": "", + "demo": "health\/get-queue-audits.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-audits.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 5000 + }, + "in": "query" + } + ] + } + }, + "\/health\/queue\/billing-project-aggregation": { + "get": { + "summary": "Get billing project aggregation queue", + "operationId": "healthGetQueueBillingProjectAggregation", + "tags": [ + "health" + ], + "description": "Get billing project aggregation queue.", + "responses": { + "200": { + "description": "Health Queue", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/healthQueue" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getQueueBillingProjectAggregation", + "group": null, + "weight": 752, + "cookies": false, + "type": "", + "demo": "health\/get-queue-billing-project-aggregation.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-billing-project-aggregation.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 10000 + }, + "in": "query" + } + ] + } + }, + "\/health\/queue\/billing-team-aggregation": { + "get": { + "summary": "Get billing team aggregation queue", + "operationId": "healthGetQueueBillingTeamAggregation", + "tags": [ + "health" + ], + "description": "Get billing team aggregation queue.", + "responses": { + "200": { + "description": "Health Queue", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/healthQueue" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getQueueBillingTeamAggregation", + "group": null, + "weight": 751, + "cookies": false, + "type": "", + "demo": "health\/get-queue-billing-team-aggregation.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-billing-team-aggregation.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 10000 + }, + "in": "query" + } + ] + } + }, + "\/health\/queue\/builds": { + "get": { + "summary": "Get builds queue", + "operationId": "healthGetQueueBuilds", + "tags": [ + "health" + ], + "description": "Get the number of builds that are waiting to be processed in the Appwrite internal queue server.", + "responses": { + "200": { + "description": "Health Queue", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/healthQueue" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getQueueBuilds", + "group": "queue", + "weight": 518, + "cookies": false, + "type": "", + "demo": "health\/get-queue-builds.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-builds.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 5000 + }, + "in": "query" + } + ] + } + }, + "\/health\/queue\/builds-priority": { + "get": { + "summary": "Get billing aggregation queue", + "operationId": "healthGetQueuePriorityBuilds", + "tags": [ + "health" + ], + "description": "Get the priority builds queue size.", + "responses": { + "200": { + "description": "Health Queue", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/healthQueue" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getQueuePriorityBuilds", + "group": null, + "weight": 753, + "cookies": false, + "type": "", + "demo": "health\/get-queue-priority-builds.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-priority-builds.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 500.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 500 + }, + "in": "query" + } + ] + } + }, + "\/health\/queue\/certificates": { + "get": { + "summary": "Get certificates queue", + "operationId": "healthGetQueueCertificates", + "tags": [ + "health" + ], + "description": "Get the number of certificates that are waiting to be issued against [Letsencrypt](https:\/\/letsencrypt.org\/) in the Appwrite internal queue server.", + "responses": { + "200": { + "description": "Health Queue", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/healthQueue" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getQueueCertificates", + "group": "queue", + "weight": 517, + "cookies": false, + "type": "", + "demo": "health\/get-queue-certificates.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-certificates.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 5000 + }, + "in": "query" + } + ] + } + }, + "\/health\/queue\/databases": { + "get": { + "summary": "Get databases queue", + "operationId": "healthGetQueueDatabases", + "tags": [ + "health" + ], + "description": "Get the number of database changes that are waiting to be processed in the Appwrite internal queue server.", + "responses": { + "200": { + "description": "Health Queue", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/healthQueue" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getQueueDatabases", + "group": "queue", + "weight": 519, + "cookies": false, + "type": "", + "demo": "health\/get-queue-databases.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-databases.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "name", + "description": "Queue name for which to check the queue size", + "required": false, + "schema": { + "type": "string", + "x-example": "<NAME>", + "default": "database_db_main" + }, + "in": "query" + }, + { + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 5000 + }, + "in": "query" + } + ] + } + }, + "\/health\/queue\/deletes": { + "get": { + "summary": "Get deletes queue", + "operationId": "healthGetQueueDeletes", + "tags": [ + "health" + ], + "description": "Get the number of background destructive changes that are waiting to be processed in the Appwrite internal queue server.", + "responses": { + "200": { + "description": "Health Queue", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/healthQueue" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getQueueDeletes", + "group": "queue", + "weight": 520, + "cookies": false, + "type": "", + "demo": "health\/get-queue-deletes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-deletes.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 5000 + }, + "in": "query" + } + ] + } + }, + "\/health\/queue\/failed\/{name}": { + "get": { + "summary": "Get number of failed queue jobs", + "operationId": "healthGetFailedJobs", + "tags": [ + "health" + ], + "description": "Returns the amount of failed jobs in a given queue.\n", + "responses": { + "200": { + "description": "Health Queue", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/healthQueue" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getFailedJobs", + "group": "queue", + "weight": 527, + "cookies": false, + "type": "", + "demo": "health\/get-failed-jobs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-failed-queue-jobs.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "name", + "description": "The name of the queue", + "required": true, + "schema": { + "type": "string", + "x-example": "v1-database", + "enum": [ + "v1-database", + "v1-deletes", + "v1-audits", + "v1-mails", + "v1-functions", + "v1-stats-resources", + "v1-stats-usage", + "v1-webhooks", + "v1-certificates", + "v1-builds", + "v1-screenshots", + "v1-messaging", + "v1-migrations" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "in": "path" + }, + { + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 5000 + }, + "in": "query" + } + ] + } + }, + "\/health\/queue\/functions": { + "get": { + "summary": "Get functions queue", + "operationId": "healthGetQueueFunctions", + "tags": [ + "health" + ], + "description": "Get the number of function executions that are waiting to be processed in the Appwrite internal queue server.", + "responses": { + "200": { + "description": "Health Queue", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/healthQueue" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getQueueFunctions", + "group": "queue", + "weight": 524, + "cookies": false, + "type": "", + "demo": "health\/get-queue-functions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-functions.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 5000 + }, + "in": "query" + } + ] + } + }, + "\/health\/queue\/logs": { + "get": { + "summary": "Get logs queue", + "operationId": "healthGetQueueLogs", + "tags": [ + "health" + ], + "description": "Get the number of logs that are waiting to be processed in the Appwrite internal queue server.", + "responses": { + "200": { + "description": "Health Queue", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/healthQueue" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getQueueLogs", + "group": "queue", + "weight": 516, + "cookies": false, + "type": "", + "demo": "health\/get-queue-logs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-logs.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 5000 + }, + "in": "query" + } + ] + } + }, + "\/health\/queue\/mails": { + "get": { + "summary": "Get mails queue", + "operationId": "healthGetQueueMails", + "tags": [ + "health" + ], + "description": "Get the number of mails that are waiting to be processed in the Appwrite internal queue server.", + "responses": { + "200": { + "description": "Health Queue", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/healthQueue" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getQueueMails", + "group": "queue", + "weight": 521, + "cookies": false, + "type": "", + "demo": "health\/get-queue-mails.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-mails.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 5000 + }, + "in": "query" + } + ] + } + }, + "\/health\/queue\/messaging": { + "get": { + "summary": "Get messaging queue", + "operationId": "healthGetQueueMessaging", + "tags": [ + "health" + ], + "description": "Get the number of messages that are waiting to be processed in the Appwrite internal queue server.", + "responses": { + "200": { + "description": "Health Queue", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/healthQueue" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getQueueMessaging", + "group": "queue", + "weight": 522, + "cookies": false, + "type": "", + "demo": "health\/get-queue-messaging.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-messaging.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 5000 + }, + "in": "query" + } + ] + } + }, + "\/health\/queue\/migrations": { + "get": { + "summary": "Get migrations queue", + "operationId": "healthGetQueueMigrations", + "tags": [ + "health" + ], + "description": "Get the number of migrations that are waiting to be processed in the Appwrite internal queue server.", + "responses": { + "200": { + "description": "Health Queue", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/healthQueue" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getQueueMigrations", + "group": "queue", + "weight": 523, + "cookies": false, + "type": "", + "demo": "health\/get-queue-migrations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-migrations.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 5000 + }, + "in": "query" + } + ] + } + }, + "\/health\/queue\/region-manager": { + "get": { + "summary": "Get region manager queue", + "operationId": "healthGetQueueRegionManager", + "tags": [ + "health" + ], + "description": "Get region manager queue.", + "responses": { + "200": { + "description": "Health Queue", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/healthQueue" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getQueueRegionManager", + "group": null, + "weight": 754, + "cookies": false, + "type": "", + "demo": "health\/get-queue-region-manager.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-region-manager.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 100 + }, + "in": "query" + } + ] + } + }, + "\/health\/queue\/stats-resources": { + "get": { + "summary": "Get stats resources queue", + "operationId": "healthGetQueueStatsResources", + "tags": [ + "health" + ], + "description": "Get the number of metrics that are waiting to be processed in the Appwrite stats resources queue.", + "responses": { + "200": { + "description": "Health Queue", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/healthQueue" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getQueueStatsResources", + "group": "queue", + "weight": 525, + "cookies": false, + "type": "", + "demo": "health\/get-queue-stats-resources.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-stats-resources.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 5000 + }, + "in": "query" + } + ] + } + }, + "\/health\/queue\/stats-usage": { + "get": { + "summary": "Get stats usage queue", + "operationId": "healthGetQueueUsage", + "tags": [ + "health" + ], + "description": "Get the number of metrics that are waiting to be processed in the Appwrite internal queue server.", + "responses": { + "200": { + "description": "Health Queue", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/healthQueue" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getQueueUsage", + "group": "queue", + "weight": 526, + "cookies": false, + "type": "", + "demo": "health\/get-queue-usage.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-stats-usage.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 5000 + }, + "in": "query" + } + ] + } + }, + "\/health\/queue\/threats": { + "get": { + "summary": "Get threats queue", + "operationId": "healthGetQueueThreats", + "tags": [ + "health" + ], + "description": "Get threats queue.", + "responses": { + "200": { + "description": "Health Queue", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/healthQueue" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getQueueThreats", + "group": null, + "weight": 755, + "cookies": false, + "type": "", + "demo": "health\/get-queue-threats.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-threats.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 100.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 100 + }, + "in": "query" + } + ] + } + }, + "\/health\/queue\/webhooks": { + "get": { + "summary": "Get webhooks queue", + "operationId": "healthGetQueueWebhooks", + "tags": [ + "health" + ], + "description": "Get the number of webhooks that are waiting to be processed in the Appwrite internal queue server.", + "responses": { + "200": { + "description": "Health Queue", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/healthQueue" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getQueueWebhooks", + "group": "queue", + "weight": 515, + "cookies": false, + "type": "", + "demo": "health\/get-queue-webhooks.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-webhooks.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 5000 + }, + "in": "query" + } + ] + } + }, + "\/health\/storage": { + "get": { + "summary": "Get storage", + "operationId": "healthGetStorage", + "tags": [ + "health" + ], + "description": "Check the Appwrite storage device is up and connection is successful.", + "responses": { + "200": { + "description": "Health Status", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/healthStatus" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getStorage", + "group": "storage", + "weight": 512, + "cookies": false, + "type": "", + "demo": "health\/get-storage.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-storage.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ] + } + }, + "\/health\/storage\/local": { + "get": { + "summary": "Get local storage", + "operationId": "healthGetStorageLocal", + "tags": [ + "health" + ], + "description": "Check the Appwrite local storage device is up and connection is successful.", + "responses": { + "200": { + "description": "Health Status", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/healthStatus" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getStorageLocal", + "group": "storage", + "weight": 511, + "cookies": false, + "type": "", + "demo": "health\/get-storage-local.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-storage-local.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ] + } + }, + "\/health\/time": { + "get": { + "summary": "Get time", + "operationId": "healthGetTime", + "tags": [ + "health" + ], + "description": "Check the Appwrite server time is synced with Google remote NTP server. We use this technology to smoothly handle leap seconds with no disruptive events. The [Network Time Protocol](https:\/\/en.wikipedia.org\/wiki\/Network_Time_Protocol) (NTP) is used by hundreds of millions of computers and devices to synchronize their clocks over the Internet. If your computer sets its own clock, it likely uses NTP.", + "responses": { + "200": { + "description": "Health Time", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/healthTime" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getTime", + "group": "health", + "weight": 509, + "cookies": false, + "type": "", + "demo": "health\/get-time.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-time.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ] + } + }, + "\/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": { + "method": "get", + "group": null, + "weight": 49, + "cookies": false, + "type": "", + "demo": "locale\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-locale.md", + "auth": { + "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": { + "method": "listCodes", + "group": null, + "weight": 50, + "cookies": false, + "type": "", + "demo": "locale\/list-codes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-locale-codes.md", + "auth": { + "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": { + "method": "listContinents", + "group": null, + "weight": 54, + "cookies": false, + "type": "", + "demo": "locale\/list-continents.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-continents.md", + "auth": { + "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": { + "method": "listCountries", + "group": null, + "weight": 51, + "cookies": false, + "type": "", + "demo": "locale\/list-countries.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries.md", + "auth": { + "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": { + "method": "listCountriesEU", + "group": null, + "weight": 52, + "cookies": false, + "type": "", + "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", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries-eu.md", + "auth": { + "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": { + "method": "listCountriesPhones", + "group": null, + "weight": 53, + "cookies": false, + "type": "", + "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", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries-phones.md", + "auth": { + "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": { + "method": "listCurrencies", + "group": null, + "weight": 55, + "cookies": false, + "type": "", + "demo": "locale\/list-currencies.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-currencies.md", + "auth": { + "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": { + "method": "listLanguages", + "group": null, + "weight": 56, + "cookies": false, + "type": "", + "demo": "locale\/list-languages.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "locale.read", + "platforms": [ + "console", + "client", + "server", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-languages.md", + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ] + } + }, + "\/messaging\/messages": { + "get": { + "summary": "List messages", + "operationId": "messagingListMessages", + "tags": [ + "messaging" + ], + "description": "Get a list of all messages from the current Appwrite project.", + "responses": { + "200": { + "description": "Message list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/messageList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listMessages", + "group": "messages", + "weight": 215, + "cookies": false, + "type": "", + "demo": "messaging\/list-messages.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-messages.md", + "auth": { + "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: scheduledAt, deliveredAt, deliveredTotal, status, description, providerType", + "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", + "x-example": "<SEARCH>", + "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", + "x-example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/messaging\/messages\/email": { + "post": { + "summary": "Create email", + "operationId": "messagingCreateEmail", + "tags": [ + "messaging" + ], + "description": "Create a new email message.", + "responses": { + "201": { + "description": "Message", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/message" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createEmail", + "group": "messages", + "weight": 212, + "cookies": false, + "type": "", + "demo": "messaging\/create-email.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-email.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "messageId": { + "type": "string", + "description": "Message 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.", + "x-example": "<MESSAGE_ID>" + }, + "subject": { + "type": "string", + "description": "Email Subject.", + "x-example": "<SUBJECT>" + }, + "content": { + "type": "string", + "description": "Email Content.", + "x-example": "<CONTENT>" + }, + "topics": { + "type": "array", + "description": "List of Topic IDs.", + "x-example": null, + "items": { + "type": "string" + } + }, + "users": { + "type": "array", + "description": "List of User IDs.", + "x-example": null, + "items": { + "type": "string" + } + }, + "targets": { + "type": "array", + "description": "List of Targets IDs.", + "x-example": null, + "items": { + "type": "string" + } + }, + "cc": { + "type": "array", + "description": "Array of target IDs to be added as CC.", + "x-example": null, + "items": { + "type": "string" + } + }, + "bcc": { + "type": "array", + "description": "Array of target IDs to be added as BCC.", + "x-example": null, + "items": { + "type": "string" + } + }, + "attachments": { + "type": "array", + "description": "Array of compound ID strings of bucket IDs and file IDs to be attached to the email. They should be formatted as <BUCKET_ID>:<FILE_ID>.", + "x-example": null, + "items": { + "type": "string" + } + }, + "draft": { + "type": "boolean", + "description": "Is message a draft", + "x-example": false + }, + "html": { + "type": "boolean", + "description": "Is content of type HTML", + "x-example": false + }, + "scheduledAt": { + "type": "string", + "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "messageId", + "subject", + "content" + ] + } + } + } + } + } + }, + "\/messaging\/messages\/email\/{messageId}": { + "patch": { + "summary": "Update email", + "operationId": "messagingUpdateEmail", + "tags": [ + "messaging" + ], + "description": "Update an email message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", + "responses": { + "200": { + "description": "Message", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/message" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateEmail", + "group": "messages", + "weight": 219, + "cookies": false, + "type": "", + "demo": "messaging\/update-email.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-email.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "messageId", + "description": "Message ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<MESSAGE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "topics": { + "type": "array", + "description": "List of Topic IDs.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "users": { + "type": "array", + "description": "List of User IDs.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "targets": { + "type": "array", + "description": "List of Targets IDs.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "subject": { + "type": "string", + "description": "Email Subject.", + "x-example": "<SUBJECT>", + "x-nullable": true + }, + "content": { + "type": "string", + "description": "Email Content.", + "x-example": "<CONTENT>", + "x-nullable": true + }, + "draft": { + "type": "boolean", + "description": "Is message a draft", + "x-example": false, + "x-nullable": true + }, + "html": { + "type": "boolean", + "description": "Is content of type HTML", + "x-example": false, + "x-nullable": true + }, + "cc": { + "type": "array", + "description": "Array of target IDs to be added as CC.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "bcc": { + "type": "array", + "description": "Array of target IDs to be added as BCC.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "scheduledAt": { + "type": "string", + "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", + "x-example": null, + "x-nullable": true + }, + "attachments": { + "type": "array", + "description": "Array of compound ID strings of bucket IDs and file IDs to be attached to the email. They should be formatted as <BUCKET_ID>:<FILE_ID>.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/messaging\/messages\/push": { + "post": { + "summary": "Create push notification", + "operationId": "messagingCreatePush", + "tags": [ + "messaging" + ], + "description": "Create a new push notification.", + "responses": { + "201": { + "description": "Message", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/message" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createPush", + "group": "messages", + "weight": 214, + "cookies": false, + "type": "", + "demo": "messaging\/create-push.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-push.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "messageId": { + "type": "string", + "description": "Message 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.", + "x-example": "<MESSAGE_ID>" + }, + "title": { + "type": "string", + "description": "Title for push notification.", + "x-example": "<TITLE>" + }, + "body": { + "type": "string", + "description": "Body for push notification.", + "x-example": "<BODY>" + }, + "topics": { + "type": "array", + "description": "List of Topic IDs.", + "x-example": null, + "items": { + "type": "string" + } + }, + "users": { + "type": "array", + "description": "List of User IDs.", + "x-example": null, + "items": { + "type": "string" + } + }, + "targets": { + "type": "array", + "description": "List of Targets IDs.", + "x-example": null, + "items": { + "type": "string" + } + }, + "data": { + "type": "object", + "description": "Additional key-value pair data for push notification.", + "x-example": "{}", + "x-nullable": true + }, + "action": { + "type": "string", + "description": "Action for push notification.", + "x-example": "<ACTION>" + }, + "image": { + "type": "string", + "description": "Image for push notification. Must be a compound bucket ID to file ID of a jpeg, png, or bmp image in Appwrite Storage. It should be formatted as <BUCKET_ID>:<FILE_ID>.", + "x-example": "<ID1:ID2>" + }, + "icon": { + "type": "string", + "description": "Icon for push notification. Available only for Android and Web Platform.", + "x-example": "<ICON>" + }, + "sound": { + "type": "string", + "description": "Sound for push notification. Available only for Android and iOS Platform.", + "x-example": "<SOUND>" + }, + "color": { + "type": "string", + "description": "Color for push notification. Available only for Android Platform.", + "x-example": "<COLOR>" + }, + "tag": { + "type": "string", + "description": "Tag for push notification. Available only for Android Platform.", + "x-example": "<TAG>" + }, + "badge": { + "type": "integer", + "description": "Badge for push notification. Available only for iOS Platform.", + "x-example": null, + "format": "int32" + }, + "draft": { + "type": "boolean", + "description": "Is message a draft", + "x-example": false + }, + "scheduledAt": { + "type": "string", + "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", + "x-example": null, + "x-nullable": true + }, + "contentAvailable": { + "type": "boolean", + "description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.", + "x-example": false + }, + "critical": { + "type": "boolean", + "description": "If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.", + "x-example": false + }, + "priority": { + "type": "string", + "description": "Set the notification priority. \"normal\" will consider device state and may not deliver notifications immediately. \"high\" will always attempt to immediately deliver the notification.", + "x-example": "normal", + "enum": [ + "normal", + "high" + ], + "x-enum-name": "MessagePriority", + "x-enum-keys": [] + } + }, + "required": [ + "messageId" + ] + } + } + } + } + } + }, + "\/messaging\/messages\/push\/{messageId}": { + "patch": { + "summary": "Update push notification", + "operationId": "messagingUpdatePush", + "tags": [ + "messaging" + ], + "description": "Update a push notification by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", + "responses": { + "200": { + "description": "Message", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/message" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updatePush", + "group": "messages", + "weight": 221, + "cookies": false, + "type": "", + "demo": "messaging\/update-push.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-push.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "messageId", + "description": "Message ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<MESSAGE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "topics": { + "type": "array", + "description": "List of Topic IDs.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "users": { + "type": "array", + "description": "List of User IDs.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "targets": { + "type": "array", + "description": "List of Targets IDs.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "title": { + "type": "string", + "description": "Title for push notification.", + "x-example": "<TITLE>", + "x-nullable": true + }, + "body": { + "type": "string", + "description": "Body for push notification.", + "x-example": "<BODY>", + "x-nullable": true + }, + "data": { + "type": "object", + "description": "Additional Data for push notification.", + "x-example": "{}", + "x-nullable": true + }, + "action": { + "type": "string", + "description": "Action for push notification.", + "x-example": "<ACTION>", + "x-nullable": true + }, + "image": { + "type": "string", + "description": "Image for push notification. Must be a compound bucket ID to file ID of a jpeg, png, or bmp image in Appwrite Storage. It should be formatted as <BUCKET_ID>:<FILE_ID>.", + "x-example": "<ID1:ID2>", + "x-nullable": true + }, + "icon": { + "type": "string", + "description": "Icon for push notification. Available only for Android and Web platforms.", + "x-example": "<ICON>", + "x-nullable": true + }, + "sound": { + "type": "string", + "description": "Sound for push notification. Available only for Android and iOS platforms.", + "x-example": "<SOUND>", + "x-nullable": true + }, + "color": { + "type": "string", + "description": "Color for push notification. Available only for Android platforms.", + "x-example": "<COLOR>", + "x-nullable": true + }, + "tag": { + "type": "string", + "description": "Tag for push notification. Available only for Android platforms.", + "x-example": "<TAG>", + "x-nullable": true + }, + "badge": { + "type": "integer", + "description": "Badge for push notification. Available only for iOS platforms.", + "x-example": null, + "format": "int32", + "x-nullable": true + }, + "draft": { + "type": "boolean", + "description": "Is message a draft", + "x-example": false, + "x-nullable": true + }, + "scheduledAt": { + "type": "string", + "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", + "x-example": null, + "x-nullable": true + }, + "contentAvailable": { + "type": "boolean", + "description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.", + "x-example": false, + "x-nullable": true + }, + "critical": { + "type": "boolean", + "description": "If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.", + "x-example": false, + "x-nullable": true + }, + "priority": { + "type": "string", + "description": "Set the notification priority. \"normal\" will consider device battery state and may send notifications later. \"high\" will always attempt to immediately deliver the notification.", + "x-example": "normal", + "enum": [ + "normal", + "high" + ], + "x-enum-name": "MessagePriority", + "x-enum-keys": [], + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/messaging\/messages\/sms": { + "post": { + "summary": "Create SMS", + "operationId": "messagingCreateSms", + "tags": [ + "messaging" + ], + "description": "Create a new SMS message.", + "responses": { + "201": { + "description": "Message", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/message" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "method": "createSms", + "group": "messages", + "weight": 213, + "cookies": false, + "type": "", + "demo": "messaging\/create-sms.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-sms.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createSMS" + }, + "methods": [ + { + "name": "createSms", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "messageId", + "content", + "topics", + "users", + "targets", + "draft", + "scheduledAt" + ], + "required": [ + "messageId", + "content" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/message" + } + ], + "description": "Create a new SMS message.", + "demo": "messaging\/create-sms.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createSMS" + } + }, + { + "name": "createSMS", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "messageId", + "content", + "topics", + "users", + "targets", + "draft", + "scheduledAt" + ], + "required": [ + "messageId", + "content" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/message" + } + ], + "description": "Create a new SMS message.", + "demo": "messaging\/create-sms.md", + "public": true + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "messageId": { + "type": "string", + "description": "Message 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.", + "x-example": "<MESSAGE_ID>" + }, + "content": { + "type": "string", + "description": "SMS Content.", + "x-example": "<CONTENT>" + }, + "topics": { + "type": "array", + "description": "List of Topic IDs.", + "x-example": null, + "items": { + "type": "string" + } + }, + "users": { + "type": "array", + "description": "List of User IDs.", + "x-example": null, + "items": { + "type": "string" + } + }, + "targets": { + "type": "array", + "description": "List of Targets IDs.", + "x-example": null, + "items": { + "type": "string" + } + }, + "draft": { + "type": "boolean", + "description": "Is message a draft", + "x-example": false + }, + "scheduledAt": { + "type": "string", + "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "messageId", + "content" + ] + } + } + } + } + } + }, + "\/messaging\/messages\/sms\/{messageId}": { + "patch": { + "summary": "Update SMS", + "operationId": "messagingUpdateSms", + "tags": [ + "messaging" + ], + "description": "Update an SMS message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", + "responses": { + "200": { + "description": "Message", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/message" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "method": "updateSms", + "group": "messages", + "weight": 220, + "cookies": false, + "type": "", + "demo": "messaging\/update-sms.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-sms.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateSMS" + }, + "methods": [ + { + "name": "updateSms", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "messageId", + "topics", + "users", + "targets", + "content", + "draft", + "scheduledAt" + ], + "required": [ + "messageId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/message" + } + ], + "description": "Update an SMS message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", + "demo": "messaging\/update-sms.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateSMS" + } + }, + { + "name": "updateSMS", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "messageId", + "topics", + "users", + "targets", + "content", + "draft", + "scheduledAt" + ], + "required": [ + "messageId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/message" + } + ], + "description": "Update an SMS message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", + "demo": "messaging\/update-sms.md", + "public": true + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "messageId", + "description": "Message ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<MESSAGE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "topics": { + "type": "array", + "description": "List of Topic IDs.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "users": { + "type": "array", + "description": "List of User IDs.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "targets": { + "type": "array", + "description": "List of Targets IDs.", + "x-example": null, + "items": { + "type": "string" + }, + "x-nullable": true + }, + "content": { + "type": "string", + "description": "Email Content.", + "x-example": "<CONTENT>", + "x-nullable": true + }, + "draft": { + "type": "boolean", + "description": "Is message a draft", + "x-example": false, + "x-nullable": true + }, + "scheduledAt": { + "type": "string", + "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", + "x-example": null, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/messaging\/messages\/{messageId}": { + "get": { + "summary": "Get message", + "operationId": "messagingGetMessage", + "tags": [ + "messaging" + ], + "description": "Get a message by its unique ID.\n", + "responses": { + "200": { + "description": "Message", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/message" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getMessage", + "group": "messages", + "weight": 218, + "cookies": false, + "type": "", + "demo": "messaging\/get-message.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/get-message.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "messageId", + "description": "Message ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<MESSAGE_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete message", + "operationId": "messagingDelete", + "tags": [ + "messaging" + ], + "description": "Delete a message. If the message is not a draft or scheduled, but has been sent, this will not recall the message.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "delete", + "group": "messages", + "weight": 222, + "cookies": false, + "type": "", + "demo": "messaging\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-message.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "messageId", + "description": "Message ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<MESSAGE_ID>" + }, + "in": "path" + } + ] + } + }, + "\/messaging\/messages\/{messageId}\/logs": { + "get": { + "summary": "List message logs", + "operationId": "messagingListMessageLogs", + "tags": [ + "messaging" + ], + "description": "Get the message activity logs listed by its unique ID.", + "responses": { + "200": { + "description": "Logs List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/logList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listMessageLogs", + "group": "logs", + "weight": 216, + "cookies": false, + "type": "", + "demo": "messaging\/list-message-logs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-message-logs.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "messageId", + "description": "Message ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<MESSAGE_ID>" + }, + "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). 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", + "x-example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/messaging\/messages\/{messageId}\/targets": { + "get": { + "summary": "List message targets", + "operationId": "messagingListTargets", + "tags": [ + "messaging" + ], + "description": "Get a list of the targets associated with a message.", + "responses": { + "200": { + "description": "Target list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/targetList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listTargets", + "group": "messages", + "weight": 217, + "cookies": false, + "type": "", + "demo": "messaging\/list-targets.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-message-targets.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "messageId", + "description": "Message ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<MESSAGE_ID>" + }, + "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: userId, providerId, identifier, providerType", + "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", + "x-example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/messaging\/providers": { + "get": { + "summary": "List providers", + "operationId": "messagingListProviders", + "tags": [ + "messaging" + ], + "description": "Get a list of all providers from the current Appwrite project.", + "responses": { + "200": { + "description": "Provider list", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/providerList" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listProviders", + "group": "providers", + "weight": 186, + "cookies": false, + "type": "", + "demo": "messaging\/list-providers.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-providers.md", + "auth": { + "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, provider, type, enabled", + "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", + "x-example": "<SEARCH>", + "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", + "x-example": false, + "default": true + }, + "in": "query" + } + ] + } + }, + "\/messaging\/providers\/apns": { + "post": { + "summary": "Create APNS provider", + "operationId": "messagingCreateApnsProvider", + "tags": [ + "messaging" + ], + "description": "Create a new Apple Push Notification service provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "method": "createApnsProvider", + "group": "providers", + "weight": 185, + "cookies": false, + "type": "", + "demo": "messaging\/create-apns-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-apns-provider.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createAPNSProvider" + }, + "methods": [ + { + "name": "createApnsProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "authKey", + "authKeyId", + "teamId", + "bundleId", + "sandbox", + "enabled" + ], + "required": [ + "providerId", + "name" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Create a new Apple Push Notification service provider.", + "demo": "messaging\/create-apns-provider.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createAPNSProvider" + } + }, + { + "name": "createAPNSProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "authKey", + "authKeyId", + "teamId", + "bundleId", + "sandbox", + "enabled" + ], + "required": [ + "providerId", + "name" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Create a new Apple Push Notification service provider.", + "demo": "messaging\/create-apns-provider.md", + "public": true + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "type": "string", + "description": "Provider 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.", + "x-example": "<PROVIDER_ID>" + }, + "name": { + "type": "string", + "description": "Provider name.", + "x-example": "<NAME>" + }, + "authKey": { + "type": "string", + "description": "APNS authentication key.", + "x-example": "<AUTH_KEY>" + }, + "authKeyId": { + "type": "string", + "description": "APNS authentication key ID.", + "x-example": "<AUTH_KEY_ID>" + }, + "teamId": { + "type": "string", + "description": "APNS team ID.", + "x-example": "<TEAM_ID>" + }, + "bundleId": { + "type": "string", + "description": "APNS bundle ID.", + "x-example": "<BUNDLE_ID>" + }, + "sandbox": { + "type": "boolean", + "description": "Use APNS sandbox environment.", + "x-example": false + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/apns\/{providerId}": { + "patch": { + "summary": "Update APNS provider", + "operationId": "messagingUpdateApnsProvider", + "tags": [ + "messaging" + ], + "description": "Update a Apple Push Notification service provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "method": "updateApnsProvider", + "group": "providers", + "weight": 199, + "cookies": false, + "type": "", + "demo": "messaging\/update-apns-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-apns-provider.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateAPNSProvider" + }, + "methods": [ + { + "name": "updateApnsProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "enabled", + "authKey", + "authKeyId", + "teamId", + "bundleId", + "sandbox" + ], + "required": [ + "providerId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Update a Apple Push Notification service provider by its unique ID.", + "demo": "messaging\/update-apns-provider.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateAPNSProvider" + } + }, + { + "name": "updateAPNSProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "enabled", + "authKey", + "authKeyId", + "teamId", + "bundleId", + "sandbox" + ], + "required": [ + "providerId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Update a Apple Push Notification service provider by its unique ID.", + "demo": "messaging\/update-apns-provider.md", + "public": true + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Provider name.", + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + }, + "authKey": { + "type": "string", + "description": "APNS authentication key.", + "x-example": "<AUTH_KEY>" + }, + "authKeyId": { + "type": "string", + "description": "APNS authentication key ID.", + "x-example": "<AUTH_KEY_ID>" + }, + "teamId": { + "type": "string", + "description": "APNS team ID.", + "x-example": "<TEAM_ID>" + }, + "bundleId": { + "type": "string", + "description": "APNS bundle ID.", + "x-example": "<BUNDLE_ID>" + }, + "sandbox": { + "type": "boolean", + "description": "Use APNS sandbox environment.", + "x-example": false, + "x-nullable": true + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/fcm": { + "post": { + "summary": "Create FCM provider", + "operationId": "messagingCreateFcmProvider", + "tags": [ + "messaging" + ], + "description": "Create a new Firebase Cloud Messaging provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "method": "createFcmProvider", + "group": "providers", + "weight": 184, + "cookies": false, + "type": "", + "demo": "messaging\/create-fcm-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-fcm-provider.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createFCMProvider" + }, + "methods": [ + { + "name": "createFcmProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "serviceAccountJSON", + "enabled" + ], + "required": [ + "providerId", + "name" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Create a new Firebase Cloud Messaging provider.", + "demo": "messaging\/create-fcm-provider.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createFCMProvider" + } + }, + { + "name": "createFCMProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "serviceAccountJSON", + "enabled" + ], + "required": [ + "providerId", + "name" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Create a new Firebase Cloud Messaging provider.", + "demo": "messaging\/create-fcm-provider.md", + "public": true + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "type": "string", + "description": "Provider 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.", + "x-example": "<PROVIDER_ID>" + }, + "name": { + "type": "string", + "description": "Provider name.", + "x-example": "<NAME>" + }, + "serviceAccountJSON": { + "type": "object", + "description": "FCM service account JSON.", + "x-example": "{}", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/fcm\/{providerId}": { + "patch": { + "summary": "Update FCM provider", + "operationId": "messagingUpdateFcmProvider", + "tags": [ + "messaging" + ], + "description": "Update a Firebase Cloud Messaging provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": true, + "x-appwrite": { + "method": "updateFcmProvider", + "group": "providers", + "weight": 198, + "cookies": false, + "type": "", + "demo": "messaging\/update-fcm-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-fcm-provider.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateFCMProvider" + }, + "methods": [ + { + "name": "updateFcmProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "enabled", + "serviceAccountJSON" + ], + "required": [ + "providerId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Update a Firebase Cloud Messaging provider by its unique ID.", + "demo": "messaging\/update-fcm-provider.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateFCMProvider" + } + }, + { + "name": "updateFCMProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "enabled", + "serviceAccountJSON" + ], + "required": [ + "providerId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/provider" + } + ], + "description": "Update a Firebase Cloud Messaging provider by its unique ID.", + "demo": "messaging\/update-fcm-provider.md", + "public": true + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Provider name.", + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, "x-nullable": true }, - "users": { - "type": "array", - "description": "List of User IDs.", - "x-example": null, - "items": { - "type": "string" - }, + "serviceAccountJSON": { + "type": "object", + "description": "FCM service account JSON.", + "x-example": "{}", "x-nullable": true + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/mailgun": { + "post": { + "summary": "Create Mailgun provider", + "operationId": "messagingCreateMailgunProvider", + "tags": [ + "messaging" + ], + "description": "Create a new Mailgun provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createMailgunProvider", + "group": "providers", + "weight": 175, + "cookies": false, + "type": "", + "demo": "messaging\/create-mailgun-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-mailgun-provider.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "type": "string", + "description": "Provider 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.", + "x-example": "<PROVIDER_ID>" }, - "targets": { - "type": "array", - "description": "List of Targets IDs.", - "x-example": null, - "items": { - "type": "string" - }, + "name": { + "type": "string", + "description": "Provider name.", + "x-example": "<NAME>" + }, + "apiKey": { + "type": "string", + "description": "Mailgun API Key.", + "x-example": "<API_KEY>" + }, + "domain": { + "type": "string", + "description": "Mailgun Domain.", + "x-example": "<DOMAIN>" + }, + "isEuRegion": { + "type": "boolean", + "description": "Set as EU region.", + "x-example": false, "x-nullable": true }, - "subject": { + "fromName": { "type": "string", - "description": "Email Subject.", - "x-example": "<SUBJECT>", + "description": "Sender Name.", + "x-example": "<FROM_NAME>" + }, + "fromEmail": { + "type": "string", + "description": "Sender email address.", + "x-example": "email@example.com", + "format": "email" + }, + "replyToName": { + "type": "string", + "description": "Name set in the reply to field for the mail. Default value is sender name. Reply to name must have reply to email as well.", + "x-example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "type": "string", + "description": "Email set in the reply to field for the mail. Default value is sender email. Reply to email must have reply to name as well.", + "x-example": "email@example.com", + "format": "email" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/mailgun\/{providerId}": { + "patch": { + "summary": "Update Mailgun provider", + "operationId": "messagingUpdateMailgunProvider", + "tags": [ + "messaging" + ], + "description": "Update a Mailgun provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateMailgunProvider", + "group": "providers", + "weight": 189, + "cookies": false, + "type": "", + "demo": "messaging\/update-mailgun-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-mailgun-provider.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Provider name.", + "x-example": "<NAME>" + }, + "apiKey": { + "type": "string", + "description": "Mailgun API Key.", + "x-example": "<API_KEY>" + }, + "domain": { + "type": "string", + "description": "Mailgun Domain.", + "x-example": "<DOMAIN>" + }, + "isEuRegion": { + "type": "boolean", + "description": "Set as EU region.", + "x-example": false, "x-nullable": true }, - "content": { + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + }, + "fromName": { + "type": "string", + "description": "Sender Name.", + "x-example": "<FROM_NAME>" + }, + "fromEmail": { + "type": "string", + "description": "Sender email address.", + "x-example": "email@example.com", + "format": "email" + }, + "replyToName": { + "type": "string", + "description": "Name set in the reply to field for the mail. Default value is sender name.", + "x-example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "type": "string", + "description": "Email set in the reply to field for the mail. Default value is sender email.", + "x-example": "<REPLY_TO_EMAIL>" + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/msg91": { + "post": { + "summary": "Create Msg91 provider", + "operationId": "messagingCreateMsg91Provider", + "tags": [ + "messaging" + ], + "description": "Create a new MSG91 provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createMsg91Provider", + "group": "providers", + "weight": 179, + "cookies": false, + "type": "", + "demo": "messaging\/create-msg-91-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-msg91-provider.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "type": "string", + "description": "Provider 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.", + "x-example": "<PROVIDER_ID>" + }, + "name": { + "type": "string", + "description": "Provider name.", + "x-example": "<NAME>" + }, + "templateId": { + "type": "string", + "description": "Msg91 template ID", + "x-example": "<TEMPLATE_ID>" + }, + "senderId": { + "type": "string", + "description": "Msg91 sender ID.", + "x-example": "<SENDER_ID>" + }, + "authKey": { + "type": "string", + "description": "Msg91 auth key.", + "x-example": "<AUTH_KEY>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/msg91\/{providerId}": { + "patch": { + "summary": "Update Msg91 provider", + "operationId": "messagingUpdateMsg91Provider", + "tags": [ + "messaging" + ], + "description": "Update a MSG91 provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateMsg91Provider", + "group": "providers", + "weight": 193, + "cookies": false, + "type": "", + "demo": "messaging\/update-msg-91-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-msg91-provider.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { "type": "string", - "description": "Email Content.", - "x-example": "<CONTENT>", - "x-nullable": true - }, - "draft": { - "type": "boolean", - "description": "Is message a draft", - "x-example": false, - "x-nullable": true + "description": "Provider name.", + "x-example": "<NAME>" }, - "html": { + "enabled": { "type": "boolean", - "description": "Is content of type HTML", + "description": "Set as enabled.", "x-example": false, "x-nullable": true }, - "cc": { - "type": "array", - "description": "Array of target IDs to be added as CC.", - "x-example": null, - "items": { - "type": "string" - }, - "x-nullable": true - }, - "bcc": { - "type": "array", - "description": "Array of target IDs to be added as BCC.", - "x-example": null, - "items": { - "type": "string" - }, - "x-nullable": true + "templateId": { + "type": "string", + "description": "Msg91 template ID.", + "x-example": "<TEMPLATE_ID>" }, - "scheduledAt": { + "senderId": { "type": "string", - "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", - "x-example": null, - "x-nullable": true + "description": "Msg91 sender ID.", + "x-example": "<SENDER_ID>" }, - "attachments": { - "type": "array", - "description": "Array of compound ID strings of bucket IDs and file IDs to be attached to the email. They should be formatted as <BUCKET_ID>:<FILE_ID>.", - "x-example": null, - "items": { - "type": "string" - }, - "x-nullable": true + "authKey": { + "type": "string", + "description": "Msg91 auth key.", + "x-example": "<AUTH_KEY>" } } } @@ -19616,21 +24992,21 @@ } } }, - "\/messaging\/messages\/push": { + "\/messaging\/providers\/resend": { "post": { - "summary": "Create push notification", - "operationId": "messagingCreatePush", + "summary": "Create Resend provider", + "operationId": "messagingCreateResendProvider", "tags": [ "messaging" ], - "description": "Create a new push notification.", + "description": "Create a new Resend provider.", "responses": { "201": { - "description": "Message", + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/message" + "$ref": "#\/components\/schemas\/provider" } } } @@ -19638,23 +25014,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "createPush", - "group": "messages", - "weight": 230, + "method": "createResendProvider", + "group": "providers", + "weight": 177, "cookies": false, "type": "", - "demo": "messaging\/create-push.md", + "demo": "messaging\/create-resend-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", + "scope": "providers.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-push.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-resend-provider.md", "auth": { "Project": [], "Key": [] @@ -19672,122 +25048,53 @@ "schema": { "type": "object", "properties": { - "messageId": { - "type": "string", - "description": "Message 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.", - "x-example": "<MESSAGE_ID>" - }, - "title": { - "type": "string", - "description": "Title for push notification.", - "x-example": "<TITLE>" - }, - "body": { + "providerId": { "type": "string", - "description": "Body for push notification.", - "x-example": "<BODY>" - }, - "topics": { - "type": "array", - "description": "List of Topic IDs.", - "x-example": null, - "items": { - "type": "string" - } - }, - "users": { - "type": "array", - "description": "List of User IDs.", - "x-example": null, - "items": { - "type": "string" - } - }, - "targets": { - "type": "array", - "description": "List of Targets IDs.", - "x-example": null, - "items": { - "type": "string" - } - }, - "data": { - "type": "object", - "description": "Additional key-value pair data for push notification.", - "x-example": "{}", - "x-nullable": true + "description": "Provider 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.", + "x-example": "<PROVIDER_ID>" }, - "action": { + "name": { "type": "string", - "description": "Action for push notification.", - "x-example": "<ACTION>" + "description": "Provider name.", + "x-example": "<NAME>" }, - "image": { + "apiKey": { "type": "string", - "description": "Image for push notification. Must be a compound bucket ID to file ID of a jpeg, png, or bmp image in Appwrite Storage. It should be formatted as <BUCKET_ID>:<FILE_ID>.", - "x-example": "<ID1:ID2>" + "description": "Resend API key.", + "x-example": "<API_KEY>" }, - "icon": { + "fromName": { "type": "string", - "description": "Icon for push notification. Available only for Android and Web Platform.", - "x-example": "<ICON>" + "description": "Sender Name.", + "x-example": "<FROM_NAME>" }, - "sound": { + "fromEmail": { "type": "string", - "description": "Sound for push notification. Available only for Android and iOS Platform.", - "x-example": "<SOUND>" + "description": "Sender email address.", + "x-example": "email@example.com", + "format": "email" }, - "color": { + "replyToName": { "type": "string", - "description": "Color for push notification. Available only for Android Platform.", - "x-example": "<COLOR>" + "description": "Name set in the reply to field for the mail. Default value is sender name.", + "x-example": "<REPLY_TO_NAME>" }, - "tag": { + "replyToEmail": { "type": "string", - "description": "Tag for push notification. Available only for Android Platform.", - "x-example": "<TAG>" - }, - "badge": { - "type": "integer", - "description": "Badge for push notification. Available only for iOS Platform.", - "x-example": null, - "format": "int32" + "description": "Email set in the reply to field for the mail. Default value is sender email.", + "x-example": "email@example.com", + "format": "email" }, - "draft": { + "enabled": { "type": "boolean", - "description": "Is message a draft", - "x-example": false - }, - "scheduledAt": { - "type": "string", - "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", - "x-example": null, + "description": "Set as enabled.", + "x-example": false, "x-nullable": true - }, - "contentAvailable": { - "type": "boolean", - "description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.", - "x-example": false - }, - "critical": { - "type": "boolean", - "description": "If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.", - "x-example": false - }, - "priority": { - "type": "string", - "description": "Set the notification priority. \"normal\" will consider device state and may not deliver notifications immediately. \"high\" will always attempt to immediately deliver the notification.", - "x-example": "normal", - "enum": [ - "normal", - "high" - ], - "x-enum-name": "MessagePriority", - "x-enum-keys": [] } }, "required": [ - "messageId" + "providerId", + "name" ] } } @@ -19795,21 +25102,21 @@ } } }, - "\/messaging\/messages\/push\/{messageId}": { + "\/messaging\/providers\/resend\/{providerId}": { "patch": { - "summary": "Update push notification", - "operationId": "messagingUpdatePush", + "summary": "Update Resend provider", + "operationId": "messagingUpdateResendProvider", "tags": [ "messaging" ], - "description": "Update a push notification by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", + "description": "Update a Resend provider by its unique ID.", "responses": { "200": { - "description": "Message", + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/message" + "$ref": "#\/components\/schemas\/provider" } } } @@ -19817,23 +25124,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "updatePush", - "group": "messages", - "weight": 237, + "method": "updateResendProvider", + "group": "providers", + "weight": 191, "cookies": false, "type": "", - "demo": "messaging\/update-push.md", + "demo": "messaging\/update-resend-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", + "scope": "providers.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-push.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-resend-provider.md", "auth": { "Project": [], "Key": [] @@ -19847,12 +25154,12 @@ ], "parameters": [ { - "name": "messageId", - "description": "Message ID.", + "name": "providerId", + "description": "Provider ID.", "required": true, "schema": { "type": "string", - "x-example": "<MESSAGE_ID>" + "x-example": "<PROVIDER_ID>" }, "in": "path" } @@ -19863,129 +25170,264 @@ "schema": { "type": "object", "properties": { - "topics": { - "type": "array", - "description": "List of Topic IDs.", - "x-example": null, - "items": { - "type": "string" - }, - "x-nullable": true + "name": { + "type": "string", + "description": "Provider name.", + "x-example": "<NAME>" }, - "users": { - "type": "array", - "description": "List of User IDs.", - "x-example": null, - "items": { - "type": "string" - }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, "x-nullable": true }, - "targets": { - "type": "array", - "description": "List of Targets IDs.", - "x-example": null, - "items": { - "type": "string" - }, - "x-nullable": true + "apiKey": { + "type": "string", + "description": "Resend API key.", + "x-example": "<API_KEY>" }, - "title": { + "fromName": { "type": "string", - "description": "Title for push notification.", - "x-example": "<TITLE>", - "x-nullable": true + "description": "Sender Name.", + "x-example": "<FROM_NAME>" }, - "body": { + "fromEmail": { "type": "string", - "description": "Body for push notification.", - "x-example": "<BODY>", - "x-nullable": true + "description": "Sender email address.", + "x-example": "email@example.com", + "format": "email" }, - "data": { - "type": "object", - "description": "Additional Data for push notification.", - "x-example": "{}", - "x-nullable": true + "replyToName": { + "type": "string", + "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", + "x-example": "<REPLY_TO_NAME>" }, - "action": { + "replyToEmail": { "type": "string", - "description": "Action for push notification.", - "x-example": "<ACTION>", - "x-nullable": true + "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", + "x-example": "<REPLY_TO_EMAIL>" + } + } + } + } + } + } + } + }, + "\/messaging\/providers\/sendgrid": { + "post": { + "summary": "Create Sendgrid provider", + "operationId": "messagingCreateSendgridProvider", + "tags": [ + "messaging" + ], + "description": "Create a new Sendgrid provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createSendgridProvider", + "group": "providers", + "weight": 176, + "cookies": false, + "type": "", + "demo": "messaging\/create-sendgrid-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-sendgrid-provider.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "type": "string", + "description": "Provider 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.", + "x-example": "<PROVIDER_ID>" }, - "image": { + "name": { "type": "string", - "description": "Image for push notification. Must be a compound bucket ID to file ID of a jpeg, png, or bmp image in Appwrite Storage. It should be formatted as <BUCKET_ID>:<FILE_ID>.", - "x-example": "<ID1:ID2>", - "x-nullable": true + "description": "Provider name.", + "x-example": "<NAME>" }, - "icon": { + "apiKey": { "type": "string", - "description": "Icon for push notification. Available only for Android and Web platforms.", - "x-example": "<ICON>", - "x-nullable": true + "description": "Sendgrid API key.", + "x-example": "<API_KEY>" }, - "sound": { + "fromName": { "type": "string", - "description": "Sound for push notification. Available only for Android and iOS platforms.", - "x-example": "<SOUND>", - "x-nullable": true + "description": "Sender Name.", + "x-example": "<FROM_NAME>" }, - "color": { + "fromEmail": { "type": "string", - "description": "Color for push notification. Available only for Android platforms.", - "x-example": "<COLOR>", - "x-nullable": true + "description": "Sender email address.", + "x-example": "email@example.com", + "format": "email" }, - "tag": { + "replyToName": { + "type": "string", + "description": "Name set in the reply to field for the mail. Default value is sender name.", + "x-example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "type": "string", + "description": "Email set in the reply to field for the mail. Default value is sender email.", + "x-example": "email@example.com", + "format": "email" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + } + } + } + }, + "\/messaging\/providers\/sendgrid\/{providerId}": { + "patch": { + "summary": "Update Sendgrid provider", + "operationId": "messagingUpdateSendgridProvider", + "tags": [ + "messaging" + ], + "description": "Update a Sendgrid provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateSendgridProvider", + "group": "providers", + "weight": 190, + "cookies": false, + "type": "", + "demo": "messaging\/update-sendgrid-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-sendgrid-provider.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROVIDER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { "type": "string", - "description": "Tag for push notification. Available only for Android platforms.", - "x-example": "<TAG>", - "x-nullable": true - }, - "badge": { - "type": "integer", - "description": "Badge for push notification. Available only for iOS platforms.", - "x-example": null, - "format": "int32", - "x-nullable": true + "description": "Provider name.", + "x-example": "<NAME>" }, - "draft": { + "enabled": { "type": "boolean", - "description": "Is message a draft", + "description": "Set as enabled.", "x-example": false, "x-nullable": true }, - "scheduledAt": { + "apiKey": { "type": "string", - "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", - "x-example": null, - "x-nullable": true + "description": "Sendgrid API key.", + "x-example": "<API_KEY>" }, - "contentAvailable": { - "type": "boolean", - "description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.", - "x-example": false, - "x-nullable": true + "fromName": { + "type": "string", + "description": "Sender Name.", + "x-example": "<FROM_NAME>" }, - "critical": { - "type": "boolean", - "description": "If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.", - "x-example": false, - "x-nullable": true + "fromEmail": { + "type": "string", + "description": "Sender email address.", + "x-example": "email@example.com", + "format": "email" }, - "priority": { + "replyToName": { "type": "string", - "description": "Set the notification priority. \"normal\" will consider device battery state and may send notifications later. \"high\" will always attempt to immediately deliver the notification.", - "x-example": "normal", - "enum": [ - "normal", - "high" - ], - "x-enum-name": "MessagePriority", - "x-enum-keys": [], - "x-nullable": true + "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", + "x-example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "type": "string", + "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", + "x-example": "<REPLY_TO_EMAIL>" } } } @@ -19994,21 +25436,21 @@ } } }, - "\/messaging\/messages\/sms": { + "\/messaging\/providers\/smtp": { "post": { - "summary": "Create SMS", - "operationId": "messagingCreateSms", + "summary": "Create SMTP provider", + "operationId": "messagingCreateSmtpProvider", "tags": [ "messaging" ], - "description": "Create a new SMS message.", + "description": "Create a new SMTP provider.", "responses": { "201": { - "description": "Message", + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/message" + "$ref": "#\/components\/schemas\/provider" } } } @@ -20016,30 +25458,30 @@ }, "deprecated": true, "x-appwrite": { - "method": "createSms", - "group": "messages", - "weight": 229, + "method": "createSmtpProvider", + "group": "providers", + "weight": 178, "cookies": false, "type": "", - "demo": "messaging\/create-sms.md", + "demo": "messaging\/create-smtp-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", + "scope": "providers.write", "platforms": [ "console", "server" ], "packaging": false, "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-sms.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-smtp-provider.md", "deprecated": { "since": "1.8.0", - "replaceWith": "messaging.createSMS" + "replaceWith": "messaging.createSMTPProvider" }, "methods": [ { - "name": "createSms", + "name": "createSmtpProvider", "namespace": "messaging", "desc": "", "auth": { @@ -20047,34 +25489,42 @@ "Key": [] }, "parameters": [ - "messageId", - "content", - "topics", - "users", - "targets", - "draft", - "scheduledAt" + "providerId", + "name", + "host", + "port", + "username", + "password", + "encryption", + "autoTLS", + "mailer", + "fromName", + "fromEmail", + "replyToName", + "replyToEmail", + "enabled" ], "required": [ - "messageId", - "content" + "providerId", + "name", + "host" ], "responses": [ { "code": 201, - "model": "#\/components\/schemas\/message" + "model": "#\/components\/schemas\/provider" } ], - "description": "Create a new SMS message.", - "demo": "messaging\/create-sms.md", + "description": "Create a new SMTP provider.", + "demo": "messaging\/create-smtp-provider.md", "public": false, "deprecated": { "since": "1.8.0", - "replaceWith": "messaging.createSMS" + "replaceWith": "messaging.createSMTPProvider" } }, { - "name": "createSMS", + "name": "createSMTPProvider", "namespace": "messaging", "desc": "", "auth": { @@ -20082,26 +25532,34 @@ "Key": [] }, "parameters": [ - "messageId", - "content", - "topics", - "users", - "targets", - "draft", - "scheduledAt" + "providerId", + "name", + "host", + "port", + "username", + "password", + "encryption", + "autoTLS", + "mailer", + "fromName", + "fromEmail", + "replyToName", + "replyToEmail", + "enabled" ], "required": [ - "messageId", - "content" + "providerId", + "name", + "host" ], "responses": [ { "code": 201, - "model": "#\/components\/schemas\/message" + "model": "#\/components\/schemas\/provider" } ], - "description": "Create a new SMS message.", - "demo": "messaging\/create-sms.md", + "description": "Create a new SMTP provider.", + "demo": "messaging\/create-smtp-provider.md", "public": true } ], @@ -20122,55 +25580,92 @@ "schema": { "type": "object", "properties": { - "messageId": { + "providerId": { "type": "string", - "description": "Message 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.", - "x-example": "<MESSAGE_ID>" + "description": "Provider 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.", + "x-example": "<PROVIDER_ID>" }, - "content": { + "name": { "type": "string", - "description": "SMS Content.", - "x-example": "<CONTENT>" + "description": "Provider name.", + "x-example": "<NAME>" }, - "topics": { - "type": "array", - "description": "List of Topic IDs.", - "x-example": null, - "items": { - "type": "string" - } + "host": { + "type": "string", + "description": "SMTP hosts. Either a single hostname or multiple semicolon-delimited hostnames. You can also specify a different port for each host such as `smtp1.example.com:25;smtp2.example.com`. You can also specify encryption type, for example: `tls:\/\/smtp1.example.com:587;ssl:\/\/smtp2.example.com:465\"`. Hosts will be tried in order.", + "x-example": "<HOST>" }, - "users": { - "type": "array", - "description": "List of User IDs.", - "x-example": null, - "items": { - "type": "string" - } + "port": { + "type": "integer", + "description": "The default SMTP server port.", + "x-example": 1, + "format": "int32" }, - "targets": { - "type": "array", - "description": "List of Targets IDs.", - "x-example": null, - "items": { - "type": "string" - } + "username": { + "type": "string", + "description": "Authentication username.", + "x-example": "<USERNAME>" }, - "draft": { + "password": { + "type": "string", + "description": "Authentication password.", + "x-example": "<PASSWORD>" + }, + "encryption": { + "type": "string", + "description": "Encryption type. Can be omitted, 'ssl', or 'tls'", + "x-example": "none", + "enum": [ + "none", + "ssl", + "tls" + ], + "x-enum-name": "SmtpEncryption", + "x-enum-keys": [] + }, + "autoTLS": { "type": "boolean", - "description": "Is message a draft", + "description": "Enable SMTP AutoTLS feature.", "x-example": false }, - "scheduledAt": { + "mailer": { "type": "string", - "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", - "x-example": null, + "description": "The value to use for the X-Mailer header.", + "x-example": "<MAILER>" + }, + "fromName": { + "type": "string", + "description": "Sender Name.", + "x-example": "<FROM_NAME>" + }, + "fromEmail": { + "type": "string", + "description": "Sender email address.", + "x-example": "email@example.com", + "format": "email" + }, + "replyToName": { + "type": "string", + "description": "Name set in the reply to field for the mail. Default value is sender name.", + "x-example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "type": "string", + "description": "Email set in the reply to field for the mail. Default value is sender email.", + "x-example": "email@example.com", + "format": "email" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, "x-nullable": true } }, "required": [ - "messageId", - "content" + "providerId", + "name", + "host" ] } } @@ -20178,21 +25673,21 @@ } } }, - "\/messaging\/messages\/sms\/{messageId}": { + "\/messaging\/providers\/smtp\/{providerId}": { "patch": { - "summary": "Update SMS", - "operationId": "messagingUpdateSms", + "summary": "Update SMTP provider", + "operationId": "messagingUpdateSmtpProvider", "tags": [ "messaging" ], - "description": "Update an SMS message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", + "description": "Update a SMTP provider by its unique ID.", "responses": { "200": { - "description": "Message", + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/message" + "$ref": "#\/components\/schemas\/provider" } } } @@ -20200,30 +25695,30 @@ }, "deprecated": true, "x-appwrite": { - "method": "updateSms", - "group": "messages", - "weight": 236, + "method": "updateSmtpProvider", + "group": "providers", + "weight": 192, "cookies": false, "type": "", - "demo": "messaging\/update-sms.md", + "demo": "messaging\/update-smtp-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", + "scope": "providers.write", "platforms": [ "console", "server" ], "packaging": false, "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-sms.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-smtp-provider.md", "deprecated": { "since": "1.8.0", - "replaceWith": "messaging.updateSMS" + "replaceWith": "messaging.updateSMTPProvider" }, "methods": [ { - "name": "updateSms", + "name": "updateSmtpProvider", "namespace": "messaging", "desc": "", "auth": { @@ -20231,33 +25726,40 @@ "Key": [] }, "parameters": [ - "messageId", - "topics", - "users", - "targets", - "content", - "draft", - "scheduledAt" + "providerId", + "name", + "host", + "port", + "username", + "password", + "encryption", + "autoTLS", + "mailer", + "fromName", + "fromEmail", + "replyToName", + "replyToEmail", + "enabled" ], "required": [ - "messageId" + "providerId" ], "responses": [ { "code": 200, - "model": "#\/components\/schemas\/message" + "model": "#\/components\/schemas\/provider" } ], - "description": "Update an SMS message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", - "demo": "messaging\/update-sms.md", + "description": "Update a SMTP provider by its unique ID.", + "demo": "messaging\/update-smtp-provider.md", "public": false, "deprecated": { "since": "1.8.0", - "replaceWith": "messaging.updateSMS" + "replaceWith": "messaging.updateSMTPProvider" } }, { - "name": "updateSMS", + "name": "updateSMTPProvider", "namespace": "messaging", "desc": "", "auth": { @@ -20265,25 +25767,32 @@ "Key": [] }, "parameters": [ - "messageId", - "topics", - "users", - "targets", - "content", - "draft", - "scheduledAt" + "providerId", + "name", + "host", + "port", + "username", + "password", + "encryption", + "autoTLS", + "mailer", + "fromName", + "fromEmail", + "replyToName", + "replyToEmail", + "enabled" ], "required": [ - "messageId" + "providerId" ], "responses": [ { "code": 200, - "model": "#\/components\/schemas\/message" + "model": "#\/components\/schemas\/provider" } ], - "description": "Update an SMS message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", - "demo": "messaging\/update-sms.md", + "description": "Update a SMTP provider by its unique ID.", + "demo": "messaging\/update-smtp-provider.md", "public": true } ], @@ -20300,12 +25809,12 @@ ], "parameters": [ { - "name": "messageId", - "description": "Message ID.", + "name": "providerId", + "description": "Provider ID.", "required": true, "schema": { "type": "string", - "x-example": "<MESSAGE_ID>" + "x-example": "<PROVIDER_ID>" }, "in": "path" } @@ -20316,152 +25825,129 @@ "schema": { "type": "object", "properties": { - "topics": { - "type": "array", - "description": "List of Topic IDs.", - "x-example": null, - "items": { - "type": "string" - }, - "x-nullable": true + "name": { + "type": "string", + "description": "Provider name.", + "x-example": "<NAME>" }, - "users": { - "type": "array", - "description": "List of User IDs.", - "x-example": null, - "items": { - "type": "string" - }, - "x-nullable": true + "host": { + "type": "string", + "description": "SMTP hosts. Either a single hostname or multiple semicolon-delimited hostnames. You can also specify a different port for each host such as `smtp1.example.com:25;smtp2.example.com`. You can also specify encryption type, for example: `tls:\/\/smtp1.example.com:587;ssl:\/\/smtp2.example.com:465\"`. Hosts will be tried in order.", + "x-example": "<HOST>" }, - "targets": { - "type": "array", - "description": "List of Targets IDs.", - "x-example": null, - "items": { - "type": "string" - }, + "port": { + "type": "integer", + "description": "SMTP port.", + "x-example": 1, + "format": "int32", "x-nullable": true }, - "content": { + "username": { "type": "string", - "description": "Email Content.", - "x-example": "<CONTENT>", - "x-nullable": true + "description": "Authentication username.", + "x-example": "<USERNAME>" }, - "draft": { + "password": { + "type": "string", + "description": "Authentication password.", + "x-example": "<PASSWORD>" + }, + "encryption": { + "type": "string", + "description": "Encryption type. Can be 'ssl' or 'tls'", + "x-example": "none", + "enum": [ + "none", + "ssl", + "tls" + ], + "x-enum-name": "SmtpEncryption", + "x-enum-keys": [] + }, + "autoTLS": { "type": "boolean", - "description": "Is message a draft", + "description": "Enable SMTP AutoTLS feature.", "x-example": false, "x-nullable": true }, - "scheduledAt": { + "mailer": { "type": "string", - "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", - "x-example": null, - "x-nullable": true - } - } - } - } - } - } - } - }, - "\/messaging\/messages\/{messageId}": { - "get": { - "summary": "Get message", - "operationId": "messagingGetMessage", - "tags": [ - "messaging" - ], - "description": "Get a message by its unique ID.\n", - "responses": { - "200": { - "description": "Message", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/message" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "getMessage", - "group": "messages", - "weight": 234, - "cookies": false, - "type": "", - "demo": "messaging\/get-message.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "messages.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/get-message.md", - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "messageId", - "description": "Message ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<MESSAGE_ID>" - }, - "in": "path" + "description": "The value to use for the X-Mailer header.", + "x-example": "<MAILER>" + }, + "fromName": { + "type": "string", + "description": "Sender Name.", + "x-example": "<FROM_NAME>" + }, + "fromEmail": { + "type": "string", + "description": "Sender email address.", + "x-example": "email@example.com", + "format": "email" + }, + "replyToName": { + "type": "string", + "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", + "x-example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "type": "string", + "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", + "x-example": "<REPLY_TO_EMAIL>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + } + } + } + } } - ] - }, - "delete": { - "summary": "Delete message", - "operationId": "messagingDelete", + } + } + }, + "\/messaging\/providers\/telesign": { + "post": { + "summary": "Create Telesign provider", + "operationId": "messagingCreateTelesignProvider", "tags": [ "messaging" ], - "description": "Delete a message. If the message is not a draft or scheduled, but has been sent, this will not recall the message.", + "description": "Create a new Telesign provider.", "responses": { - "204": { - "description": "No content" + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": "messages", - "weight": 238, + "method": "createTelesignProvider", + "group": "providers", + "weight": 180, "cookies": false, "type": "", - "demo": "messaging\/delete.md", + "demo": "messaging\/create-telesign-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", + "scope": "providers.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-message.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-telesign-provider.md", "auth": { "Project": [], "Key": [] @@ -20473,35 +25959,70 @@ "Key": [] } ], - "parameters": [ - { - "name": "messageId", - "description": "Message ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<MESSAGE_ID>" - }, - "in": "path" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "type": "string", + "description": "Provider 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.", + "x-example": "<PROVIDER_ID>" + }, + "name": { + "type": "string", + "description": "Provider name.", + "x-example": "<NAME>" + }, + "from": { + "type": "string", + "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "x-example": "+12065550100", + "format": "phone" + }, + "customerId": { + "type": "string", + "description": "Telesign customer ID.", + "x-example": "<CUSTOMER_ID>" + }, + "apiKey": { + "type": "string", + "description": "Telesign API key.", + "x-example": "<API_KEY>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } } - ] + } } }, - "\/messaging\/messages\/{messageId}\/logs": { - "get": { - "summary": "List message logs", - "operationId": "messagingListMessageLogs", + "\/messaging\/providers\/telesign\/{providerId}": { + "patch": { + "summary": "Update Telesign provider", + "operationId": "messagingUpdateTelesignProvider", "tags": [ "messaging" ], - "description": "Get the message activity logs listed by its unique ID.", + "description": "Update a Telesign provider by its unique ID.", "responses": { "200": { - "description": "Logs List", + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/logList" + "$ref": "#\/components\/schemas\/provider" } } } @@ -20509,23 +26030,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "listMessageLogs", - "group": "logs", - "weight": 232, + "method": "updateTelesignProvider", + "group": "providers", + "weight": 194, "cookies": false, "type": "", - "demo": "messaging\/list-message-logs.md", + "demo": "messaging\/update-telesign-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.read", + "scope": "providers.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-message-logs.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-telesign-provider.md", "auth": { "Project": [], "Key": [] @@ -20539,57 +26060,70 @@ ], "parameters": [ { - "name": "messageId", - "description": "Message ID.", + "name": "providerId", + "description": "Provider ID.", "required": true, "schema": { "type": "string", - "x-example": "<MESSAGE_ID>" + "x-example": "<PROVIDER_ID>" }, "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). 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", - "x-example": false, - "default": true - }, - "in": "query" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Provider name.", + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + }, + "customerId": { + "type": "string", + "description": "Telesign customer ID.", + "x-example": "<CUSTOMER_ID>" + }, + "apiKey": { + "type": "string", + "description": "Telesign API key.", + "x-example": "<API_KEY>" + }, + "from": { + "type": "string", + "description": "Sender number.", + "x-example": "<FROM>" + } + } + } + } + } + } } }, - "\/messaging\/messages\/{messageId}\/targets": { - "get": { - "summary": "List message targets", - "operationId": "messagingListTargets", + "\/messaging\/providers\/textmagic": { + "post": { + "summary": "Create Textmagic provider", + "operationId": "messagingCreateTextmagicProvider", "tags": [ "messaging" ], - "description": "Get a list of the targets associated with a message.", + "description": "Create a new Textmagic provider.", "responses": { - "200": { - "description": "Target list", + "201": { + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/targetList" + "$ref": "#\/components\/schemas\/provider" } } } @@ -20597,23 +26131,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "listTargets", - "group": "messages", - "weight": 233, + "method": "createTextmagicProvider", + "group": "providers", + "weight": 181, "cookies": false, "type": "", - "demo": "messaging\/list-targets.md", + "demo": "messaging\/create-textmagic-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.read", + "scope": "providers.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-message-targets.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-textmagic-provider.md", "auth": { "Project": [], "Key": [] @@ -20625,59 +26159,70 @@ "Key": [] } ], - "parameters": [ - { - "name": "messageId", - "description": "Message ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<MESSAGE_ID>" - }, - "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: userId, providerId, identifier, providerType", - "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", - "x-example": false, - "default": true - }, - "in": "query" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "providerId": { + "type": "string", + "description": "Provider 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.", + "x-example": "<PROVIDER_ID>" + }, + "name": { + "type": "string", + "description": "Provider name.", + "x-example": "<NAME>" + }, + "from": { + "type": "string", + "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "x-example": "+12065550100", + "format": "phone" + }, + "username": { + "type": "string", + "description": "Textmagic username.", + "x-example": "<USERNAME>" + }, + "apiKey": { + "type": "string", + "description": "Textmagic apiKey.", + "x-example": "<API_KEY>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } } - ] + } } }, - "\/messaging\/providers": { - "get": { - "summary": "List providers", - "operationId": "messagingListProviders", + "\/messaging\/providers\/textmagic\/{providerId}": { + "patch": { + "summary": "Update Textmagic provider", + "operationId": "messagingUpdateTextmagicProvider", "tags": [ "messaging" ], - "description": "Get a list of all providers from the current Appwrite project.", + "description": "Update a Textmagic provider by its unique ID.", "responses": { "200": { - "description": "Provider list", + "description": "Provider", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/providerList" + "$ref": "#\/components\/schemas\/provider" } } } @@ -20685,23 +26230,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "listProviders", + "method": "updateTextmagicProvider", "group": "providers", - "weight": 202, + "weight": 195, "cookies": false, "type": "", - "demo": "messaging\/list-providers.md", + "demo": "messaging\/update-textmagic-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.read", + "scope": "providers.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-providers.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-textmagic-provider.md", "auth": { "Project": [], "Key": [] @@ -20715,156 +26260,94 @@ ], "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, provider, type, enabled", - "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, + "name": "providerId", + "description": "Provider ID.", + "required": true, "schema": { "type": "string", - "x-example": "<SEARCH>", - "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", - "x-example": false, - "default": true + "x-example": "<PROVIDER_ID>" }, - "in": "query" + "in": "path" } - ] - } - }, - "\/messaging\/providers\/apns": { - "post": { - "summary": "Create APNS provider", - "operationId": "messagingCreateApnsProvider", - "tags": [ - "messaging" ], - "description": "Create a new Apple Push Notification service provider.", - "responses": { - "201": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Provider name.", + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "x-example": false, + "x-nullable": true + }, + "username": { + "type": "string", + "description": "Textmagic username.", + "x-example": "<USERNAME>" + }, + "apiKey": { + "type": "string", + "description": "Textmagic apiKey.", + "x-example": "<API_KEY>" + }, + "from": { + "type": "string", + "description": "Sender number.", + "x-example": "<FROM>" + } } } } } - }, - "deprecated": true, - "x-appwrite": { - "method": "createApnsProvider", - "group": "providers", - "weight": 201, - "cookies": false, - "type": "", - "demo": "messaging\/create-apns-provider.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-apns-provider.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createAPNSProvider" - }, - "methods": [ - { - "name": "createApnsProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "providerId", - "name", - "authKey", - "authKeyId", - "teamId", - "bundleId", - "sandbox", - "enabled" - ], - "required": [ - "providerId", - "name" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Create a new Apple Push Notification service provider.", - "demo": "messaging\/create-apns-provider.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createAPNSProvider" - } - }, - { - "name": "createAPNSProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "providerId", - "name", - "authKey", - "authKeyId", - "teamId", - "bundleId", - "sandbox", - "enabled" - ], - "required": [ - "providerId", - "name" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/provider" + } + } + }, + "\/messaging\/providers\/twilio": { + "post": { + "summary": "Create Twilio provider", + "operationId": "messagingCreateTwilioProvider", + "tags": [ + "messaging" + ], + "description": "Create a new Twilio provider.", + "responses": { + "201": { + "description": "Provider", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/provider" } - ], - "description": "Create a new Apple Push Notification service provider.", - "demo": "messaging\/create-apns-provider.md", - "public": true + } } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createTwilioProvider", + "group": "providers", + "weight": 182, + "cookies": false, + "type": "", + "demo": "messaging\/create-twilio-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-twilio-provider.md", "auth": { "Project": [], "Key": [] @@ -20892,30 +26375,21 @@ "description": "Provider name.", "x-example": "<NAME>" }, - "authKey": { - "type": "string", - "description": "APNS authentication key.", - "x-example": "<AUTH_KEY>" - }, - "authKeyId": { + "from": { "type": "string", - "description": "APNS authentication key ID.", - "x-example": "<AUTH_KEY_ID>" + "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "x-example": "+12065550100", + "format": "phone" }, - "teamId": { + "accountSid": { "type": "string", - "description": "APNS team ID.", - "x-example": "<TEAM_ID>" + "description": "Twilio account secret ID.", + "x-example": "<ACCOUNT_SID>" }, - "bundleId": { + "authToken": { "type": "string", - "description": "APNS bundle ID.", - "x-example": "<BUNDLE_ID>" - }, - "sandbox": { - "type": "boolean", - "description": "Use APNS sandbox environment.", - "x-example": false + "description": "Twilio authentication token.", + "x-example": "<AUTH_TOKEN>" }, "enabled": { "type": "boolean", @@ -20934,14 +26408,14 @@ } } }, - "\/messaging\/providers\/apns\/{providerId}": { + "\/messaging\/providers\/twilio\/{providerId}": { "patch": { - "summary": "Update APNS provider", - "operationId": "messagingUpdateApnsProvider", + "summary": "Update Twilio provider", + "operationId": "messagingUpdateTwilioProvider", "tags": [ "messaging" ], - "description": "Update a Apple Push Notification service provider by its unique ID.", + "description": "Update a Twilio provider by its unique ID.", "responses": { "200": { "description": "Provider", @@ -20954,14 +26428,14 @@ } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateApnsProvider", + "method": "updateTwilioProvider", "group": "providers", - "weight": 215, + "weight": 196, "cookies": false, "type": "", - "demo": "messaging\/update-apns-provider.md", + "demo": "messaging\/update-twilio-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -20971,80 +26445,8 @@ "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-apns-provider.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateAPNSProvider" - }, - "methods": [ - { - "name": "updateApnsProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "providerId", - "name", - "enabled", - "authKey", - "authKeyId", - "teamId", - "bundleId", - "sandbox" - ], - "required": [ - "providerId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Update a Apple Push Notification service provider by its unique ID.", - "demo": "messaging\/update-apns-provider.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateAPNSProvider" - } - }, - { - "name": "updateAPNSProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "providerId", - "name", - "enabled", - "authKey", - "authKeyId", - "teamId", - "bundleId", - "sandbox" - ], - "required": [ - "providerId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Update a Apple Push Notification service provider by its unique ID.", - "demo": "messaging\/update-apns-provider.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-twilio-provider.md", "auth": { "Project": [], "Key": [] @@ -21085,31 +26487,20 @@ "x-example": false, "x-nullable": true }, - "authKey": { - "type": "string", - "description": "APNS authentication key.", - "x-example": "<AUTH_KEY>" - }, - "authKeyId": { + "accountSid": { "type": "string", - "description": "APNS authentication key ID.", - "x-example": "<AUTH_KEY_ID>" + "description": "Twilio account secret ID.", + "x-example": "<ACCOUNT_SID>" }, - "teamId": { + "authToken": { "type": "string", - "description": "APNS team ID.", - "x-example": "<TEAM_ID>" + "description": "Twilio authentication token.", + "x-example": "<AUTH_TOKEN>" }, - "bundleId": { + "from": { "type": "string", - "description": "APNS bundle ID.", - "x-example": "<BUNDLE_ID>" - }, - "sandbox": { - "type": "boolean", - "description": "Use APNS sandbox environment.", - "x-example": false, - "x-nullable": true + "description": "Sender number.", + "x-example": "<FROM>" } } } @@ -21118,14 +26509,14 @@ } } }, - "\/messaging\/providers\/fcm": { + "\/messaging\/providers\/vonage": { "post": { - "summary": "Create FCM provider", - "operationId": "messagingCreateFcmProvider", + "summary": "Create Vonage provider", + "operationId": "messagingCreateVonageProvider", "tags": [ "messaging" ], - "description": "Create a new Firebase Cloud Messaging provider.", + "description": "Create a new Vonage provider.", "responses": { "201": { "description": "Provider", @@ -21138,14 +26529,14 @@ } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createFcmProvider", + "method": "createVonageProvider", "group": "providers", - "weight": 200, + "weight": 183, "cookies": false, "type": "", - "demo": "messaging\/create-fcm-provider.md", + "demo": "messaging\/create-vonage-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -21155,74 +26546,8 @@ "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-fcm-provider.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createFCMProvider" - }, - "methods": [ - { - "name": "createFcmProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "providerId", - "name", - "serviceAccountJSON", - "enabled" - ], - "required": [ - "providerId", - "name" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Create a new Firebase Cloud Messaging provider.", - "demo": "messaging\/create-fcm-provider.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createFCMProvider" - } - }, - { - "name": "createFCMProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "providerId", - "name", - "serviceAccountJSON", - "enabled" - ], - "required": [ - "providerId", - "name" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Create a new Firebase Cloud Messaging provider.", - "demo": "messaging\/create-fcm-provider.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-vonage-provider.md", "auth": { "Project": [], "Key": [] @@ -21250,11 +26575,21 @@ "description": "Provider name.", "x-example": "<NAME>" }, - "serviceAccountJSON": { - "type": "object", - "description": "FCM service account JSON.", - "x-example": "{}", - "x-nullable": true + "from": { + "type": "string", + "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "x-example": "+12065550100", + "format": "phone" + }, + "apiKey": { + "type": "string", + "description": "Vonage API key.", + "x-example": "<API_KEY>" + }, + "apiSecret": { + "type": "string", + "description": "Vonage API secret.", + "x-example": "<API_SECRET>" }, "enabled": { "type": "boolean", @@ -21273,14 +26608,14 @@ } } }, - "\/messaging\/providers\/fcm\/{providerId}": { + "\/messaging\/providers\/vonage\/{providerId}": { "patch": { - "summary": "Update FCM provider", - "operationId": "messagingUpdateFcmProvider", + "summary": "Update Vonage provider", + "operationId": "messagingUpdateVonageProvider", "tags": [ "messaging" ], - "description": "Update a Firebase Cloud Messaging provider by its unique ID.", + "description": "Update a Vonage provider by its unique ID.", "responses": { "200": { "description": "Provider", @@ -21293,14 +26628,14 @@ } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateFcmProvider", + "method": "updateVonageProvider", "group": "providers", - "weight": 214, + "weight": 197, "cookies": false, "type": "", - "demo": "messaging\/update-fcm-provider.md", + "demo": "messaging\/update-vonage-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -21310,72 +26645,8 @@ "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-fcm-provider.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateFCMProvider" - }, - "methods": [ - { - "name": "updateFcmProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "providerId", - "name", - "enabled", - "serviceAccountJSON" - ], - "required": [ - "providerId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Update a Firebase Cloud Messaging provider by its unique ID.", - "demo": "messaging\/update-fcm-provider.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateFCMProvider" - } - }, - { - "name": "updateFCMProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "providerId", - "name", - "enabled", - "serviceAccountJSON" - ], - "required": [ - "providerId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Update a Firebase Cloud Messaging provider by its unique ID.", - "demo": "messaging\/update-fcm-provider.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-vonage-provider.md", "auth": { "Project": [], "Key": [] @@ -21416,11 +26687,20 @@ "x-example": false, "x-nullable": true }, - "serviceAccountJSON": { - "type": "object", - "description": "FCM service account JSON.", - "x-example": "{}", - "x-nullable": true + "apiKey": { + "type": "string", + "description": "Vonage API key.", + "x-example": "<API_KEY>" + }, + "apiSecret": { + "type": "string", + "description": "Vonage API secret.", + "x-example": "<API_SECRET>" + }, + "from": { + "type": "string", + "description": "Sender number.", + "x-example": "<FROM>" } } } @@ -21429,16 +26709,16 @@ } } }, - "\/messaging\/providers\/mailgun": { - "post": { - "summary": "Create Mailgun provider", - "operationId": "messagingCreateMailgunProvider", + "\/messaging\/providers\/{providerId}": { + "get": { + "summary": "Get provider", + "operationId": "messagingGetProvider", "tags": [ "messaging" ], - "description": "Create a new Mailgun provider.", + "description": "Get a provider by its unique ID.\n", "responses": { - "201": { + "200": { "description": "Provider", "content": { "application\/json": { @@ -21451,23 +26731,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "createMailgunProvider", + "method": "getProvider", "group": "providers", - "weight": 191, + "weight": 188, "cookies": false, "type": "", - "demo": "messaging\/create-mailgun-provider.md", + "demo": "messaging\/get-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "providers.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-mailgun-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/get-provider.md", "auth": { "Project": [], "Key": [] @@ -21479,92 +26759,90 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "type": "string", - "description": "Provider 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.", - "x-example": "<PROVIDER_ID>" - }, - "name": { - "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "apiKey": { - "type": "string", - "description": "Mailgun API Key.", - "x-example": "<API_KEY>" - }, - "domain": { - "type": "string", - "description": "Mailgun Domain.", - "x-example": "<DOMAIN>" - }, - "isEuRegion": { - "type": "boolean", - "description": "Set as EU region.", - "x-example": false, - "x-nullable": true - }, - "fromName": { - "type": "string", - "description": "Sender Name.", - "x-example": "<FROM_NAME>" - }, - "fromEmail": { - "type": "string", - "description": "Sender email address.", - "x-example": "email@example.com", - "format": "email" - }, - "replyToName": { - "type": "string", - "description": "Name set in the reply to field for the mail. Default value is sender name. Reply to name must have reply to email as well.", - "x-example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "type": "string", - "description": "Email set in the reply to field for the mail. Default value is sender email. Reply to email must have reply to name as well.", - "x-example": "email@example.com", - "format": "email" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } - } + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROVIDER_ID>" + }, + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete provider", + "operationId": "messagingDeleteProvider", + "tags": [ + "messaging" + ], + "description": "Delete a provider by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteProvider", + "group": "providers", + "weight": 200, + "cookies": false, + "type": "", + "demo": "messaging\/delete-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-provider.md", + "auth": { + "Project": [], + "Key": [] } - } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<PROVIDER_ID>" + }, + "in": "path" + } + ] } }, - "\/messaging\/providers\/mailgun\/{providerId}": { - "patch": { - "summary": "Update Mailgun provider", - "operationId": "messagingUpdateMailgunProvider", + "\/messaging\/providers\/{providerId}\/logs": { + "get": { + "summary": "List provider logs", + "operationId": "messagingListProviderLogs", "tags": [ "messaging" ], - "description": "Update a Mailgun provider by its unique ID.", + "description": "Get the provider activity logs listed by its unique ID.", "responses": { "200": { - "description": "Provider", + "description": "Logs List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/logList" } } } @@ -21572,23 +26850,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateMailgunProvider", + "method": "listProviderLogs", "group": "providers", - "weight": 205, + "weight": 187, "cookies": false, "type": "", - "demo": "messaging\/update-mailgun-provider.md", + "demo": "messaging\/list-provider-logs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "providers.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-mailgun-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-provider-logs.md", "auth": { "Project": [], "Key": [] @@ -21610,84 +26888,49 @@ "x-example": "<PROVIDER_ID>" }, "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). 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", + "x-example": false, + "default": true + }, + "in": "query" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "apiKey": { - "type": "string", - "description": "Mailgun API Key.", - "x-example": "<API_KEY>" - }, - "domain": { - "type": "string", - "description": "Mailgun Domain.", - "x-example": "<DOMAIN>" - }, - "isEuRegion": { - "type": "boolean", - "description": "Set as EU region.", - "x-example": false, - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - }, - "fromName": { - "type": "string", - "description": "Sender Name.", - "x-example": "<FROM_NAME>" - }, - "fromEmail": { - "type": "string", - "description": "Sender email address.", - "x-example": "email@example.com", - "format": "email" - }, - "replyToName": { - "type": "string", - "description": "Name set in the reply to field for the mail. Default value is sender name.", - "x-example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "type": "string", - "description": "Email set in the reply to field for the mail. Default value is sender email.", - "x-example": "<REPLY_TO_EMAIL>" - } - } - } - } - } - } + ] } }, - "\/messaging\/providers\/msg91": { - "post": { - "summary": "Create Msg91 provider", - "operationId": "messagingCreateMsg91Provider", + "\/messaging\/subscribers\/{subscriberId}\/logs": { + "get": { + "summary": "List subscriber logs", + "operationId": "messagingListSubscriberLogs", "tags": [ "messaging" ], - "description": "Create a new MSG91 provider.", + "description": "Get the subscriber activity logs listed by its unique ID.", "responses": { - "201": { - "description": "Provider", + "200": { + "description": "Logs List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/logList" } } } @@ -21695,23 +26938,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "createMsg91Provider", - "group": "providers", - "weight": 195, + "method": "listSubscriberLogs", + "group": "subscribers", + "weight": 209, "cookies": false, "type": "", - "demo": "messaging\/create-msg-91-provider.md", + "demo": "messaging\/list-subscriber-logs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "subscribers.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-msg91-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-subscriber-logs.md", "auth": { "Project": [], "Key": [] @@ -21723,69 +26966,59 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "type": "string", - "description": "Provider 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.", - "x-example": "<PROVIDER_ID>" - }, - "name": { - "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "templateId": { - "type": "string", - "description": "Msg91 template ID", - "x-example": "<TEMPLATE_ID>" - }, - "senderId": { - "type": "string", - "description": "Msg91 sender ID.", - "x-example": "<SENDER_ID>" - }, - "authKey": { - "type": "string", - "description": "Msg91 auth key.", - "x-example": "<AUTH_KEY>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } - } + "parameters": [ + { + "name": "subscriberId", + "description": "Subscriber ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<SUBSCRIBER_ID>" + }, + "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). 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", + "x-example": false, + "default": true + }, + "in": "query" } - } + ] } }, - "\/messaging\/providers\/msg91\/{providerId}": { - "patch": { - "summary": "Update Msg91 provider", - "operationId": "messagingUpdateMsg91Provider", + "\/messaging\/topics": { + "get": { + "summary": "List topics", + "operationId": "messagingListTopics", "tags": [ "messaging" ], - "description": "Update a MSG91 provider by its unique ID.", + "description": "Get a list of all topics from the current Appwrite project.", "responses": { "200": { - "description": "Provider", + "description": "Topic list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/topicList" } } } @@ -21793,23 +27026,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateMsg91Provider", - "group": "providers", - "weight": 209, + "method": "listTopics", + "group": "topics", + "weight": 202, "cookies": false, "type": "", - "demo": "messaging\/update-msg-91-provider.md", + "demo": "messaging\/list-topics.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "topics.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-msg91-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-topics.md", "auth": { "Project": [], "Key": [] @@ -21823,70 +27056,56 @@ ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", - "required": true, + "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, description, emailTotal, smsTotal, pushTotal", + "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", - "x-example": "<PROVIDER_ID>" + "x-example": "<SEARCH>", + "default": "" }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - }, - "templateId": { - "type": "string", - "description": "Msg91 template ID.", - "x-example": "<TEMPLATE_ID>" - }, - "senderId": { - "type": "string", - "description": "Msg91 sender ID.", - "x-example": "<SENDER_ID>" - }, - "authKey": { - "type": "string", - "description": "Msg91 auth key.", - "x-example": "<AUTH_KEY>" - } - } - } - } + "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", + "x-example": false, + "default": true + }, + "in": "query" } - } - } - }, - "\/messaging\/providers\/resend": { + ] + }, "post": { - "summary": "Create Resend provider", - "operationId": "messagingCreateResendProvider", + "summary": "Create topic", + "operationId": "messagingCreateTopic", "tags": [ "messaging" ], - "description": "Create a new Resend provider.", + "description": "Create a new topic.", "responses": { "201": { - "description": "Provider", + "description": "Topic", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/topic" } } } @@ -21894,23 +27113,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "createResendProvider", - "group": "providers", - "weight": 193, + "method": "createTopic", + "group": "topics", + "weight": 201, "cookies": false, "type": "", - "demo": "messaging\/create-resend-provider.md", + "demo": "messaging\/create-topic.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "topics.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-resend-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-topic.md", "auth": { "Project": [], "Key": [] @@ -21928,52 +27147,27 @@ "schema": { "type": "object", "properties": { - "providerId": { + "topicId": { "type": "string", - "description": "Provider 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.", - "x-example": "<PROVIDER_ID>" + "description": "Topic ID. Choose a custom Topic ID or a new Topic ID.", + "x-example": "<TOPIC_ID>" }, "name": { "type": "string", - "description": "Provider name.", + "description": "Topic Name.", "x-example": "<NAME>" }, - "apiKey": { - "type": "string", - "description": "Resend API key.", - "x-example": "<API_KEY>" - }, - "fromName": { - "type": "string", - "description": "Sender Name.", - "x-example": "<FROM_NAME>" - }, - "fromEmail": { - "type": "string", - "description": "Sender email address.", - "x-example": "email@example.com", - "format": "email" - }, - "replyToName": { - "type": "string", - "description": "Name set in the reply to field for the mail. Default value is sender name.", - "x-example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "type": "string", - "description": "Email set in the reply to field for the mail. Default value is sender email.", - "x-example": "email@example.com", - "format": "email" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true + "subscribe": { + "type": "array", + "description": "An array of role strings with subscribe permission. By default all users are granted with any subscribe permission. [learn more about roles](https:\/\/appwrite.io\/docs\/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.", + "x-example": "[\"any\"]", + "items": { + "type": "string" + } } }, "required": [ - "providerId", + "topicId", "name" ] } @@ -21982,21 +27176,83 @@ } } }, - "\/messaging\/providers\/resend\/{providerId}": { + "\/messaging\/topics\/{topicId}": { + "get": { + "summary": "Get topic", + "operationId": "messagingGetTopic", + "tags": [ + "messaging" + ], + "description": "Get a topic by its unique ID.\n", + "responses": { + "200": { + "description": "Topic", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/topic" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getTopic", + "group": "topics", + "weight": 204, + "cookies": false, + "type": "", + "demo": "messaging\/get-topic.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "topics.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/get-topic.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "topicId", + "description": "Topic ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TOPIC_ID>" + }, + "in": "path" + } + ] + }, "patch": { - "summary": "Update Resend provider", - "operationId": "messagingUpdateResendProvider", + "summary": "Update topic", + "operationId": "messagingUpdateTopic", "tags": [ "messaging" ], - "description": "Update a Resend provider by its unique ID.", + "description": "Update a topic by its unique ID.\n", "responses": { "200": { - "description": "Provider", + "description": "Topic", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/topic" } } } @@ -22004,23 +27260,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateResendProvider", - "group": "providers", - "weight": 207, + "method": "updateTopic", + "group": "topics", + "weight": 205, "cookies": false, "type": "", - "demo": "messaging\/update-resend-provider.md", + "demo": "messaging\/update-topic.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "topics.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-resend-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-topic.md", "auth": { "Project": [], "Key": [] @@ -22034,12 +27290,12 @@ ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", + "name": "topicId", + "description": "Topic ID.", "required": true, "schema": { "type": "string", - "x-example": "<PROVIDER_ID>" + "x-example": "<TOPIC_ID>" }, "in": "path" } @@ -22052,87 +27308,56 @@ "properties": { "name": { "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, + "description": "Topic Name.", + "x-example": "<NAME>", "x-nullable": true }, - "apiKey": { - "type": "string", - "description": "Resend API key.", - "x-example": "<API_KEY>" - }, - "fromName": { - "type": "string", - "description": "Sender Name.", - "x-example": "<FROM_NAME>" - }, - "fromEmail": { - "type": "string", - "description": "Sender email address.", - "x-example": "email@example.com", - "format": "email" - }, - "replyToName": { - "type": "string", - "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", - "x-example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "type": "string", - "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", - "x-example": "<REPLY_TO_EMAIL>" + "subscribe": { + "type": "array", + "description": "An array of role strings with subscribe permission. By default all users are granted with any subscribe permission. [learn more about roles](https:\/\/appwrite.io\/docs\/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.", + "x-example": "[\"any\"]", + "items": { + "type": "string" + }, + "x-nullable": true } } } } } } - } - }, - "\/messaging\/providers\/sendgrid": { - "post": { - "summary": "Create Sendgrid provider", - "operationId": "messagingCreateSendgridProvider", + }, + "delete": { + "summary": "Delete topic", + "operationId": "messagingDeleteTopic", "tags": [ "messaging" ], - "description": "Create a new Sendgrid provider.", + "description": "Delete a topic by its unique ID.", "responses": { - "201": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "createSendgridProvider", - "group": "providers", - "weight": 192, + "method": "deleteTopic", + "group": "topics", + "weight": 206, "cookies": false, "type": "", - "demo": "messaging\/create-sendgrid-provider.md", + "demo": "messaging\/delete-topic.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "topics.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-sendgrid-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-topic.md", "auth": { "Project": [], "Key": [] @@ -22144,81 +27369,35 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "type": "string", - "description": "Provider 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.", - "x-example": "<PROVIDER_ID>" - }, - "name": { - "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "apiKey": { - "type": "string", - "description": "Sendgrid API key.", - "x-example": "<API_KEY>" - }, - "fromName": { - "type": "string", - "description": "Sender Name.", - "x-example": "<FROM_NAME>" - }, - "fromEmail": { - "type": "string", - "description": "Sender email address.", - "x-example": "email@example.com", - "format": "email" - }, - "replyToName": { - "type": "string", - "description": "Name set in the reply to field for the mail. Default value is sender name.", - "x-example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "type": "string", - "description": "Email set in the reply to field for the mail. Default value is sender email.", - "x-example": "email@example.com", - "format": "email" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } - } + "parameters": [ + { + "name": "topicId", + "description": "Topic ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TOPIC_ID>" + }, + "in": "path" } - } + ] } }, - "\/messaging\/providers\/sendgrid\/{providerId}": { - "patch": { - "summary": "Update Sendgrid provider", - "operationId": "messagingUpdateSendgridProvider", + "\/messaging\/topics\/{topicId}\/logs": { + "get": { + "summary": "List topic logs", + "operationId": "messagingListTopicLogs", "tags": [ "messaging" ], - "description": "Update a Sendgrid provider by its unique ID.", + "description": "Get the topic activity logs listed by its unique ID.", "responses": { "200": { - "description": "Provider", + "description": "Logs List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/logList" } } } @@ -22226,23 +27405,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateSendgridProvider", - "group": "providers", - "weight": 206, + "method": "listTopicLogs", + "group": "topics", + "weight": 203, "cookies": false, "type": "", - "demo": "messaging\/update-sendgrid-provider.md", + "demo": "messaging\/list-topic-logs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "topics.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-sendgrid-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-topic-logs.md", "auth": { "Project": [], "Key": [] @@ -22256,193 +27435,81 @@ ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", + "name": "topicId", + "description": "Topic ID.", "required": true, "schema": { "type": "string", - "x-example": "<PROVIDER_ID>" + "x-example": "<TOPIC_ID>" }, "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). 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", + "x-example": false, + "default": true + }, + "in": "query" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - }, - "apiKey": { - "type": "string", - "description": "Sendgrid API key.", - "x-example": "<API_KEY>" - }, - "fromName": { - "type": "string", - "description": "Sender Name.", - "x-example": "<FROM_NAME>" - }, - "fromEmail": { - "type": "string", - "description": "Sender email address.", - "x-example": "email@example.com", - "format": "email" - }, - "replyToName": { - "type": "string", - "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", - "x-example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "type": "string", - "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", - "x-example": "<REPLY_TO_EMAIL>" - } - } - } - } - } - } + ] } }, - "\/messaging\/providers\/smtp": { - "post": { - "summary": "Create SMTP provider", - "operationId": "messagingCreateSmtpProvider", + "\/messaging\/topics\/{topicId}\/subscribers": { + "get": { + "summary": "List subscribers", + "operationId": "messagingListSubscribers", "tags": [ "messaging" ], - "description": "Create a new SMTP provider.", + "description": "Get a list of all subscribers from the current Appwrite project.", "responses": { - "201": { - "description": "Provider", + "200": { + "description": "Subscriber list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/subscriberList" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createSmtpProvider", - "group": "providers", - "weight": 194, + "method": "listSubscribers", + "group": "subscribers", + "weight": 208, "cookies": false, "type": "", - "demo": "messaging\/create-smtp-provider.md", + "demo": "messaging\/list-subscribers.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "subscribers.read", "platforms": [ "console", "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-smtp-provider.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createSMTPProvider" - }, - "methods": [ - { - "name": "createSmtpProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "providerId", - "name", - "host", - "port", - "username", - "password", - "encryption", - "autoTLS", - "mailer", - "fromName", - "fromEmail", - "replyToName", - "replyToEmail", - "enabled" - ], - "required": [ - "providerId", - "name", - "host" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Create a new SMTP provider.", - "demo": "messaging\/create-smtp-provider.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createSMTPProvider" - } - }, - { - "name": "createSMTPProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "providerId", - "name", - "host", - "port", - "username", - "password", - "encryption", - "autoTLS", - "mailer", - "fromName", - "fromEmail", - "replyToName", - "replyToEmail", - "enabled" - ], - "required": [ - "providerId", - "name", - "host" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Create a new SMTP provider.", - "demo": "messaging\/create-smtp-provider.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-subscribers.md", "auth": { "Project": [], "Key": [] @@ -22454,247 +27521,115 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "type": "string", - "description": "Provider 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.", - "x-example": "<PROVIDER_ID>" - }, - "name": { - "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "host": { - "type": "string", - "description": "SMTP hosts. Either a single hostname or multiple semicolon-delimited hostnames. You can also specify a different port for each host such as `smtp1.example.com:25;smtp2.example.com`. You can also specify encryption type, for example: `tls:\/\/smtp1.example.com:587;ssl:\/\/smtp2.example.com:465\"`. Hosts will be tried in order.", - "x-example": "<HOST>" - }, - "port": { - "type": "integer", - "description": "The default SMTP server port.", - "x-example": 1, - "format": "int32" - }, - "username": { - "type": "string", - "description": "Authentication username.", - "x-example": "<USERNAME>" - }, - "password": { - "type": "string", - "description": "Authentication password.", - "x-example": "<PASSWORD>" - }, - "encryption": { - "type": "string", - "description": "Encryption type. Can be omitted, 'ssl', or 'tls'", - "x-example": "none", - "enum": [ - "none", - "ssl", - "tls" - ], - "x-enum-name": "SmtpEncryption", - "x-enum-keys": [] - }, - "autoTLS": { - "type": "boolean", - "description": "Enable SMTP AutoTLS feature.", - "x-example": false - }, - "mailer": { - "type": "string", - "description": "The value to use for the X-Mailer header.", - "x-example": "<MAILER>" - }, - "fromName": { - "type": "string", - "description": "Sender Name.", - "x-example": "<FROM_NAME>" - }, - "fromEmail": { - "type": "string", - "description": "Sender email address.", - "x-example": "email@example.com", - "format": "email" - }, - "replyToName": { - "type": "string", - "description": "Name set in the reply to field for the mail. Default value is sender name.", - "x-example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "type": "string", - "description": "Email set in the reply to field for the mail. Default value is sender email.", - "x-example": "email@example.com", - "format": "email" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - } - }, - "required": [ - "providerId", - "name", - "host" - ] - } - } + "parameters": [ + { + "name": "topicId", + "description": "Topic ID. The topic ID subscribed to.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TOPIC_ID>" + }, + "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: targetId, topicId, userId, providerType", + "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", + "x-example": "<SEARCH>", + "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", + "x-example": false, + "default": true + }, + "in": "query" } - } - } - }, - "\/messaging\/providers\/smtp\/{providerId}": { - "patch": { - "summary": "Update SMTP provider", - "operationId": "messagingUpdateSmtpProvider", + ] + }, + "post": { + "summary": "Create subscriber", + "operationId": "messagingCreateSubscriber", "tags": [ "messaging" ], - "description": "Update a SMTP provider by its unique ID.", + "description": "Create a new subscriber.", "responses": { - "200": { - "description": "Provider", + "201": { + "description": "Subscriber", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/subscriber" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateSmtpProvider", - "group": "providers", - "weight": 208, + "method": "createSubscriber", + "group": "subscribers", + "weight": 207, "cookies": false, "type": "", - "demo": "messaging\/update-smtp-provider.md", + "demo": "messaging\/create-subscriber.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "subscribers.write", "platforms": [ + "server", + "client", "console", "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-smtp-provider.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateSMTPProvider" - }, - "methods": [ - { - "name": "updateSmtpProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "providerId", - "name", - "host", - "port", - "username", - "password", - "encryption", - "autoTLS", - "mailer", - "fromName", - "fromEmail", - "replyToName", - "replyToEmail", - "enabled" - ], - "required": [ - "providerId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Update a SMTP provider by its unique ID.", - "demo": "messaging\/update-smtp-provider.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateSMTPProvider" - } - }, - { - "name": "updateSMTPProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "providerId", - "name", - "host", - "port", - "username", - "password", - "encryption", - "autoTLS", - "mailer", - "fromName", - "fromEmail", - "replyToName", - "replyToEmail", - "enabled" - ], - "required": [ - "providerId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/provider" - } - ], - "description": "Update a SMTP provider by its unique ID.", - "demo": "messaging\/update-smtp-provider.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-subscriber.md", "auth": { "Project": [], - "Key": [] + "JWT": [] } }, "security": [ { "Project": [], + "JWT": [], + "Session": [], "Key": [] } ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", + "name": "topicId", + "description": "Topic ID. The topic ID to subscribe to.", "required": true, "schema": { "type": "string", - "x-example": "<PROVIDER_ID>" + "x-example": "<TOPIC_ID>" }, "in": "path" } @@ -22705,105 +27640,42 @@ "schema": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "host": { - "type": "string", - "description": "SMTP hosts. Either a single hostname or multiple semicolon-delimited hostnames. You can also specify a different port for each host such as `smtp1.example.com:25;smtp2.example.com`. You can also specify encryption type, for example: `tls:\/\/smtp1.example.com:587;ssl:\/\/smtp2.example.com:465\"`. Hosts will be tried in order.", - "x-example": "<HOST>" - }, - "port": { - "type": "integer", - "description": "SMTP port.", - "x-example": 1, - "format": "int32", - "x-nullable": true - }, - "username": { - "type": "string", - "description": "Authentication username.", - "x-example": "<USERNAME>" - }, - "password": { - "type": "string", - "description": "Authentication password.", - "x-example": "<PASSWORD>" - }, - "encryption": { - "type": "string", - "description": "Encryption type. Can be 'ssl' or 'tls'", - "x-example": "none", - "enum": [ - "none", - "ssl", - "tls" - ], - "x-enum-name": "SmtpEncryption", - "x-enum-keys": [] - }, - "autoTLS": { - "type": "boolean", - "description": "Enable SMTP AutoTLS feature.", - "x-example": false, - "x-nullable": true - }, - "mailer": { - "type": "string", - "description": "The value to use for the X-Mailer header.", - "x-example": "<MAILER>" - }, - "fromName": { - "type": "string", - "description": "Sender Name.", - "x-example": "<FROM_NAME>" - }, - "fromEmail": { - "type": "string", - "description": "Sender email address.", - "x-example": "email@example.com", - "format": "email" - }, - "replyToName": { + "subscriberId": { "type": "string", - "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", - "x-example": "<REPLY_TO_NAME>" + "description": "Subscriber ID. Choose a custom Subscriber ID or a new Subscriber ID.", + "x-example": "<SUBSCRIBER_ID>" }, - "replyToEmail": { + "targetId": { "type": "string", - "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", - "x-example": "<REPLY_TO_EMAIL>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true + "description": "Target ID. The target ID to link to the specified Topic ID.", + "x-example": "<TARGET_ID>" } - } + }, + "required": [ + "subscriberId", + "targetId" + ] } } } } } }, - "\/messaging\/providers\/telesign": { - "post": { - "summary": "Create Telesign provider", - "operationId": "messagingCreateTelesignProvider", + "\/messaging\/topics\/{topicId}\/subscribers\/{subscriberId}": { + "get": { + "summary": "Get subscriber", + "operationId": "messagingGetSubscriber", "tags": [ "messaging" ], - "description": "Create a new Telesign provider.", + "description": "Get a subscriber by its unique ID.\n", "responses": { - "201": { - "description": "Provider", + "200": { + "description": "Subscriber", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/subscriber" } } } @@ -22811,23 +27683,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "createTelesignProvider", - "group": "providers", - "weight": 196, + "method": "getSubscriber", + "group": "subscribers", + "weight": 210, "cookies": false, "type": "", - "demo": "messaging\/create-telesign-provider.md", + "demo": "messaging\/get-subscriber.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "subscribers.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-telesign-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/get-subscriber.md", "auth": { "Project": [], "Key": [] @@ -22839,171 +27711,114 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "type": "string", - "description": "Provider 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.", - "x-example": "<PROVIDER_ID>" - }, - "name": { - "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "from": { - "type": "string", - "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "x-example": "+12065550100", - "format": "phone" - }, - "customerId": { - "type": "string", - "description": "Telesign customer ID.", - "x-example": "<CUSTOMER_ID>" - }, - "apiKey": { - "type": "string", - "description": "Telesign API key.", - "x-example": "<API_KEY>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } - } + "parameters": [ + { + "name": "topicId", + "description": "Topic ID. The topic ID subscribed to.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TOPIC_ID>" + }, + "in": "path" + }, + { + "name": "subscriberId", + "description": "Subscriber ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<SUBSCRIBER_ID>" + }, + "in": "path" } - } - } - }, - "\/messaging\/providers\/telesign\/{providerId}": { - "patch": { - "summary": "Update Telesign provider", - "operationId": "messagingUpdateTelesignProvider", + ] + }, + "delete": { + "summary": "Delete subscriber", + "operationId": "messagingDeleteSubscriber", "tags": [ "messaging" ], - "description": "Update a Telesign provider by its unique ID.", + "description": "Delete a subscriber by its unique ID.", "responses": { - "200": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateTelesignProvider", - "group": "providers", - "weight": 210, + "method": "deleteSubscriber", + "group": "subscribers", + "weight": 211, "cookies": false, "type": "", - "demo": "messaging\/update-telesign-provider.md", + "demo": "messaging\/delete-subscriber.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "subscribers.write", "platforms": [ + "server", + "client", "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-telesign-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-subscriber.md", "auth": { "Project": [], - "Key": [] + "JWT": [] } }, "security": [ { "Project": [], + "JWT": [], + "Session": [], "Key": [] } ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", + "name": "topicId", + "description": "Topic ID. The topic ID subscribed to.", "required": true, "schema": { "type": "string", - "x-example": "<PROVIDER_ID>" + "x-example": "<TOPIC_ID>" + }, + "in": "path" + }, + { + "name": "subscriberId", + "description": "Subscriber ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<SUBSCRIBER_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - }, - "customerId": { - "type": "string", - "description": "Telesign customer ID.", - "x-example": "<CUSTOMER_ID>" - }, - "apiKey": { - "type": "string", - "description": "Telesign API key.", - "x-example": "<API_KEY>" - }, - "from": { - "type": "string", - "description": "Sender number.", - "x-example": "<FROM>" - } - } - } - } - } - } + ] } }, - "\/messaging\/providers\/textmagic": { - "post": { - "summary": "Create Textmagic provider", - "operationId": "messagingCreateTextmagicProvider", + "\/sites": { + "get": { + "summary": "List sites", + "operationId": "sitesList", "tags": [ - "messaging" + "sites" ], - "description": "Create a new Textmagic provider.", + "description": "Get a list of all the project's sites. You can use the query params to filter your results.", "responses": { - "201": { - "description": "Provider", + "200": { + "description": "Sites List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/siteList" } } } @@ -23011,23 +27826,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "createTextmagicProvider", - "group": "providers", - "weight": 197, + "method": "list", + "group": "sites", + "weight": 531, "cookies": false, "type": "", - "demo": "messaging\/create-textmagic-provider.md", + "demo": "sites\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "sites.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-textmagic-provider.md", "auth": { "Project": [], "Key": [] @@ -23039,70 +27853,58 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "type": "string", - "description": "Provider 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.", - "x-example": "<PROVIDER_ID>" - }, - "name": { - "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "from": { - "type": "string", - "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "x-example": "+12065550100", - "format": "phone" - }, - "username": { - "type": "string", - "description": "Textmagic username.", - "x-example": "<USERNAME>" - }, - "apiKey": { - "type": "string", - "description": "Textmagic apiKey.", - "x-example": "<API_KEY>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } - } + "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, framework, deploymentId, buildCommand, installCommand, outputDirectory, 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", + "x-example": "<SEARCH>", + "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", + "x-example": false, + "default": true + }, + "in": "query" } - } - } - }, - "\/messaging\/providers\/textmagic\/{providerId}": { - "patch": { - "summary": "Update Textmagic provider", - "operationId": "messagingUpdateTextmagicProvider", + ] + }, + "post": { + "summary": "Create site", + "operationId": "sitesCreate", "tags": [ - "messaging" + "sites" ], - "description": "Update a Textmagic provider by its unique ID.", + "description": "Create a new site.", "responses": { - "200": { - "description": "Provider", + "201": { + "description": "Site", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/site" } } } @@ -23110,23 +27912,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateTextmagicProvider", - "group": "providers", - "weight": 211, + "method": "create", + "group": "sites", + "weight": 629, "cookies": false, "type": "", - "demo": "messaging\/update-textmagic-provider.md", + "demo": "sites\/create.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "sites.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-textmagic-provider.md", "auth": { "Project": [], "Key": [] @@ -23138,72 +27939,249 @@ "Key": [] } ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PROVIDER_ID>" - }, - "in": "path" - } - ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { + "siteId": { + "type": "string", + "description": "Site 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.", + "x-example": "<SITE_ID>" + }, "name": { "type": "string", - "description": "Provider name.", + "description": "Site name. Max length: 128 chars.", "x-example": "<NAME>" }, + "framework": { + "type": "string", + "description": "Sites framework.", + "x-example": "analog", + "enum": [ + "analog", + "angular", + "nextjs", + "react", + "nuxt", + "vue", + "sveltekit", + "astro", + "tanstack-start", + "remix", + "lynx", + "flutter", + "react-native", + "vite", + "other" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, "enabled": { "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true + "description": "Is site enabled? When set to 'disabled', users cannot access the site but Server SDKs with and API key can still access the site. No data is lost when this is toggled.", + "x-example": false }, - "username": { + "logging": { + "type": "boolean", + "description": "When disabled, request logs will exclude logs and errors, and site responses will be slightly faster.", + "x-example": false + }, + "timeout": { + "type": "integer", + "description": "Maximum request time in seconds.", + "x-example": 1, + "format": "int32" + }, + "installCommand": { "type": "string", - "description": "Textmagic username.", - "x-example": "<USERNAME>" + "description": "Install Command.", + "x-example": "<INSTALL_COMMAND>" }, - "apiKey": { + "buildCommand": { "type": "string", - "description": "Textmagic apiKey.", - "x-example": "<API_KEY>" + "description": "Build Command.", + "x-example": "<BUILD_COMMAND>" }, - "from": { + "outputDirectory": { "type": "string", - "description": "Sender number.", - "x-example": "<FROM>" + "description": "Output Directory for site.", + "x-example": "<OUTPUT_DIRECTORY>" + }, + "buildRuntime": { + "type": "string", + "description": "Runtime to use during build step.", + "x-example": "node-14.5", + "enum": [ + "node-14.5", + "node-16.0", + "node-18.0", + "node-19.0", + "node-20.0", + "node-21.0", + "node-22", + "node-23", + "node-24", + "node-25", + "php-8.0", + "php-8.1", + "php-8.2", + "php-8.3", + "php-8.4", + "ruby-3.0", + "ruby-3.1", + "ruby-3.2", + "ruby-3.3", + "ruby-3.4", + "ruby-4.0", + "python-3.8", + "python-3.9", + "python-3.10", + "python-3.11", + "python-3.12", + "python-3.13", + "python-3.14", + "python-ml-3.11", + "python-ml-3.12", + "python-ml-3.13", + "deno-1.21", + "deno-1.24", + "deno-1.35", + "deno-1.40", + "deno-1.46", + "deno-2.0", + "deno-2.5", + "deno-2.6", + "dart-2.15", + "dart-2.16", + "dart-2.17", + "dart-2.18", + "dart-2.19", + "dart-3.0", + "dart-3.1", + "dart-3.3", + "dart-3.5", + "dart-3.8", + "dart-3.9", + "dart-3.10", + "dotnet-6.0", + "dotnet-7.0", + "dotnet-8.0", + "dotnet-10", + "java-8.0", + "java-11.0", + "java-17.0", + "java-18.0", + "java-21.0", + "java-22", + "java-25", + "swift-5.5", + "swift-5.8", + "swift-5.9", + "swift-5.10", + "swift-6.2", + "kotlin-1.6", + "kotlin-1.8", + "kotlin-1.9", + "kotlin-2.0", + "kotlin-2.3", + "cpp-17", + "cpp-20", + "bun-1.0", + "bun-1.1", + "bun-1.2", + "bun-1.3", + "go-1.23", + "go-1.24", + "go-1.25", + "go-1.26", + "static-1", + "flutter-3.24", + "flutter-3.27", + "flutter-3.29", + "flutter-3.32", + "flutter-3.35", + "flutter-3.38" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "adapter": { + "type": "string", + "description": "Framework adapter defining rendering strategy. Allowed values are: static, ssr", + "x-example": "static", + "enum": [ + "static", + "ssr" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "installationId": { + "type": "string", + "description": "Appwrite Installation ID for VCS (Version Control System) deployment.", + "x-example": "<INSTALLATION_ID>" + }, + "fallbackFile": { + "type": "string", + "description": "Fallback file for single page application sites.", + "x-example": "<FALLBACK_FILE>" + }, + "providerRepositoryId": { + "type": "string", + "description": "Repository ID of the repo linked to the site.", + "x-example": "<PROVIDER_REPOSITORY_ID>" + }, + "providerBranch": { + "type": "string", + "description": "Production branch for the repo linked to the site.", + "x-example": "<PROVIDER_BRANCH>" + }, + "providerSilentMode": { + "type": "boolean", + "description": "Is the VCS (Version Control System) connection in silent mode for the repo linked to the site? In silent mode, comments will not be made on commits and pull requests.", + "x-example": false + }, + "providerRootDirectory": { + "type": "string", + "description": "Path to site code in the linked repo.", + "x-example": "<PROVIDER_ROOT_DIRECTORY>" + }, + "specification": { + "type": "string", + "description": "Framework specification for the site and builds.", + "x-example": null } - } + }, + "required": [ + "siteId", + "name", + "framework", + "buildRuntime" + ] } } } } } }, - "\/messaging\/providers\/twilio": { - "post": { - "summary": "Create Twilio provider", - "operationId": "messagingCreateTwilioProvider", + "\/sites\/frameworks": { + "get": { + "summary": "List frameworks", + "operationId": "sitesListFrameworks", "tags": [ - "messaging" + "sites" ], - "description": "Create a new Twilio provider.", + "description": "Get a list of all frameworks that are currently available on the server instance.", "responses": { - "201": { - "description": "Provider", + "200": { + "description": "Frameworks List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/frameworkList" } } } @@ -23211,23 +28189,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "createTwilioProvider", - "group": "providers", - "weight": 198, + "method": "listFrameworks", + "group": "frameworks", + "weight": 534, "cookies": false, "type": "", - "demo": "messaging\/create-twilio-provider.md", + "demo": "sites\/list-frameworks.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "public", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-twilio-provider.md", "auth": { "Project": [], "Key": [] @@ -23238,71 +28215,24 @@ "Project": [], "Key": [] } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "type": "string", - "description": "Provider 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.", - "x-example": "<PROVIDER_ID>" - }, - "name": { - "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "from": { - "type": "string", - "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "x-example": "+12065550100", - "format": "phone" - }, - "accountSid": { - "type": "string", - "description": "Twilio account secret ID.", - "x-example": "<ACCOUNT_SID>" - }, - "authToken": { - "type": "string", - "description": "Twilio authentication token.", - "x-example": "<AUTH_TOKEN>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } - } - } - } + ] } }, - "\/messaging\/providers\/twilio\/{providerId}": { - "patch": { - "summary": "Update Twilio provider", - "operationId": "messagingUpdateTwilioProvider", + "\/sites\/specifications": { + "get": { + "summary": "List specifications", + "operationId": "sitesListSpecifications", "tags": [ - "messaging" + "sites" ], - "description": "Update a Twilio provider by its unique ID.", + "description": "List allowed site specifications for this instance.", "responses": { "200": { - "description": "Provider", + "description": "Specifications List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/specificationList" } } } @@ -23310,23 +28240,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateTwilioProvider", - "group": "providers", - "weight": 212, + "method": "listSpecifications", + "group": "frameworks", + "weight": 557, "cookies": false, "type": "", - "demo": "messaging\/update-twilio-provider.md", + "demo": "sites\/list-specifications.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "sites.read", "platforms": [ - "console", - "server" + "server", + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-twilio-provider.md", "auth": { "Project": [], "Key": [] @@ -23337,73 +28266,24 @@ "Project": [], "Key": [] } - ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<PROVIDER_ID>" - }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - }, - "accountSid": { - "type": "string", - "description": "Twilio account secret ID.", - "x-example": "<ACCOUNT_SID>" - }, - "authToken": { - "type": "string", - "description": "Twilio authentication token.", - "x-example": "<AUTH_TOKEN>" - }, - "from": { - "type": "string", - "description": "Sender number.", - "x-example": "<FROM>" - } - } - } - } - } - } + ] } }, - "\/messaging\/providers\/vonage": { - "post": { - "summary": "Create Vonage provider", - "operationId": "messagingCreateVonageProvider", + "\/sites\/{siteId}": { + "get": { + "summary": "Get site", + "operationId": "sitesGet", "tags": [ - "messaging" + "sites" ], - "description": "Create a new Vonage provider.", + "description": "Get a site by its unique ID.", "responses": { - "201": { - "description": "Provider", + "200": { + "description": "Site", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/site" } } } @@ -23411,23 +28291,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "createVonageProvider", - "group": "providers", - "weight": 199, + "method": "get", + "group": "sites", + "weight": 530, "cookies": false, "type": "", - "demo": "messaging\/create-vonage-provider.md", + "demo": "sites\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "sites.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-vonage-provider.md", "auth": { "Project": [], "Key": [] @@ -23439,70 +28318,33 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "providerId": { - "type": "string", - "description": "Provider 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.", - "x-example": "<PROVIDER_ID>" - }, - "name": { - "type": "string", - "description": "Provider name.", - "x-example": "<NAME>" - }, - "from": { - "type": "string", - "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "x-example": "+12065550100", - "format": "phone" - }, - "apiKey": { - "type": "string", - "description": "Vonage API key.", - "x-example": "<API_KEY>" - }, - "apiSecret": { - "type": "string", - "description": "Vonage API secret.", - "x-example": "<API_SECRET>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } - } + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<SITE_ID>" + }, + "in": "path" } - } - } - }, - "\/messaging\/providers\/vonage\/{providerId}": { - "patch": { - "summary": "Update Vonage provider", - "operationId": "messagingUpdateVonageProvider", + ] + }, + "put": { + "summary": "Update site", + "operationId": "sitesUpdate", "tags": [ - "messaging" + "sites" ], - "description": "Update a Vonage provider by its unique ID.", + "description": "Update site by its unique ID.", "responses": { "200": { - "description": "Provider", + "description": "Site", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/provider" + "$ref": "#\/components\/schemas\/site" } } } @@ -23510,23 +28352,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateVonageProvider", - "group": "providers", - "weight": 213, + "method": "update", + "group": "sites", + "weight": 630, "cookies": false, "type": "", - "demo": "messaging\/update-vonage-provider.md", + "demo": "sites\/update.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "sites.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-vonage-provider.md", "auth": { "Project": [], "Key": [] @@ -23540,12 +28381,12 @@ ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "schema": { "type": "string", - "x-example": "<PROVIDER_ID>" + "x-example": "<SITE_ID>" }, "in": "path" } @@ -23558,76 +28399,248 @@ "properties": { "name": { "type": "string", - "description": "Provider name.", + "description": "Site name. Max length: 128 chars.", "x-example": "<NAME>" }, + "framework": { + "type": "string", + "description": "Sites framework.", + "x-example": "analog", + "enum": [ + "analog", + "angular", + "nextjs", + "react", + "nuxt", + "vue", + "sveltekit", + "astro", + "tanstack-start", + "remix", + "lynx", + "flutter", + "react-native", + "vite", + "other" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, "enabled": { "type": "boolean", - "description": "Set as enabled.", - "x-example": false, - "x-nullable": true + "description": "Is site enabled? When set to 'disabled', users cannot access the site but Server SDKs with and API key can still access the site. No data is lost when this is toggled.", + "x-example": false }, - "apiKey": { + "logging": { + "type": "boolean", + "description": "When disabled, request logs will exclude logs and errors, and site responses will be slightly faster.", + "x-example": false + }, + "timeout": { + "type": "integer", + "description": "Maximum request time in seconds.", + "x-example": 1, + "format": "int32" + }, + "installCommand": { "type": "string", - "description": "Vonage API key.", - "x-example": "<API_KEY>" + "description": "Install Command.", + "x-example": "<INSTALL_COMMAND>" }, - "apiSecret": { + "buildCommand": { "type": "string", - "description": "Vonage API secret.", - "x-example": "<API_SECRET>" + "description": "Build Command.", + "x-example": "<BUILD_COMMAND>" }, - "from": { + "outputDirectory": { "type": "string", - "description": "Sender number.", - "x-example": "<FROM>" + "description": "Output Directory for site.", + "x-example": "<OUTPUT_DIRECTORY>" + }, + "buildRuntime": { + "type": "string", + "description": "Runtime to use during build step.", + "x-example": "node-14.5", + "enum": [ + "node-14.5", + "node-16.0", + "node-18.0", + "node-19.0", + "node-20.0", + "node-21.0", + "node-22", + "node-23", + "node-24", + "node-25", + "php-8.0", + "php-8.1", + "php-8.2", + "php-8.3", + "php-8.4", + "ruby-3.0", + "ruby-3.1", + "ruby-3.2", + "ruby-3.3", + "ruby-3.4", + "ruby-4.0", + "python-3.8", + "python-3.9", + "python-3.10", + "python-3.11", + "python-3.12", + "python-3.13", + "python-3.14", + "python-ml-3.11", + "python-ml-3.12", + "python-ml-3.13", + "deno-1.21", + "deno-1.24", + "deno-1.35", + "deno-1.40", + "deno-1.46", + "deno-2.0", + "deno-2.5", + "deno-2.6", + "dart-2.15", + "dart-2.16", + "dart-2.17", + "dart-2.18", + "dart-2.19", + "dart-3.0", + "dart-3.1", + "dart-3.3", + "dart-3.5", + "dart-3.8", + "dart-3.9", + "dart-3.10", + "dotnet-6.0", + "dotnet-7.0", + "dotnet-8.0", + "dotnet-10", + "java-8.0", + "java-11.0", + "java-17.0", + "java-18.0", + "java-21.0", + "java-22", + "java-25", + "swift-5.5", + "swift-5.8", + "swift-5.9", + "swift-5.10", + "swift-6.2", + "kotlin-1.6", + "kotlin-1.8", + "kotlin-1.9", + "kotlin-2.0", + "kotlin-2.3", + "cpp-17", + "cpp-20", + "bun-1.0", + "bun-1.1", + "bun-1.2", + "bun-1.3", + "go-1.23", + "go-1.24", + "go-1.25", + "go-1.26", + "static-1", + "flutter-3.24", + "flutter-3.27", + "flutter-3.29", + "flutter-3.32", + "flutter-3.35", + "flutter-3.38" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "adapter": { + "type": "string", + "description": "Framework adapter defining rendering strategy. Allowed values are: static, ssr", + "x-example": "static", + "enum": [ + "static", + "ssr" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "fallbackFile": { + "type": "string", + "description": "Fallback file for single page application sites.", + "x-example": "<FALLBACK_FILE>" + }, + "installationId": { + "type": "string", + "description": "Appwrite Installation ID for VCS (Version Control System) deployment.", + "x-example": "<INSTALLATION_ID>" + }, + "providerRepositoryId": { + "type": "string", + "description": "Repository ID of the repo linked to the site.", + "x-example": "<PROVIDER_REPOSITORY_ID>" + }, + "providerBranch": { + "type": "string", + "description": "Production branch for the repo linked to the site.", + "x-example": "<PROVIDER_BRANCH>" + }, + "providerSilentMode": { + "type": "boolean", + "description": "Is the VCS (Version Control System) connection in silent mode for the repo linked to the site? In silent mode, comments will not be made on commits and pull requests.", + "x-example": false + }, + "providerRootDirectory": { + "type": "string", + "description": "Path to site code in the linked repo.", + "x-example": "<PROVIDER_ROOT_DIRECTORY>" + }, + "specification": { + "type": "string", + "description": "Framework specification for the site and builds.", + "x-example": null } - } + }, + "required": [ + "name", + "framework" + ] } } } } - } - }, - "\/messaging\/providers\/{providerId}": { - "get": { - "summary": "Get provider", - "operationId": "messagingGetProvider", + }, + "delete": { + "summary": "Delete site", + "operationId": "sitesDelete", "tags": [ - "messaging" + "sites" ], - "description": "Get a provider by its unique ID.\n", + "description": "Delete a site by its unique ID.", "responses": { - "200": { - "description": "Provider", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/provider" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "getProvider", - "group": "providers", - "weight": 204, + "method": "delete", + "group": "sites", + "weight": 533, "cookies": false, "type": "", - "demo": "messaging\/get-provider.md", + "demo": "sites\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.read", + "scope": "sites.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/get-provider.md", "auth": { "Project": [], "Key": [] @@ -23641,48 +28654,56 @@ ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "schema": { "type": "string", - "x-example": "<PROVIDER_ID>" + "x-example": "<SITE_ID>" }, "in": "path" } ] - }, - "delete": { - "summary": "Delete provider", - "operationId": "messagingDeleteProvider", + } + }, + "\/sites\/{siteId}\/deployment": { + "patch": { + "summary": "Update site's deployment", + "operationId": "sitesUpdateSiteDeployment", "tags": [ - "messaging" + "sites" ], - "description": "Delete a provider by its unique ID.", + "description": "Update the site active deployment. Use this endpoint to switch the code deployment that should be used when visitor opens your site.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Site", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/site" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteProvider", - "group": "providers", - "weight": 216, + "method": "updateSiteDeployment", + "group": "sites", + "weight": 540, "cookies": false, "type": "", - "demo": "messaging\/delete-provider.md", + "demo": "sites\/update-site-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "sites.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-provider.md", "auth": { "Project": [], "Key": [] @@ -23696,33 +28717,52 @@ ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "schema": { "type": "string", - "x-example": "<PROVIDER_ID>" + "x-example": "<SITE_ID>" }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "deploymentId": { + "type": "string", + "description": "Deployment ID.", + "x-example": "<DEPLOYMENT_ID>" + } + }, + "required": [ + "deploymentId" + ] + } + } + } + } } }, - "\/messaging\/providers\/{providerId}\/logs": { + "\/sites\/{siteId}\/deployments": { "get": { - "summary": "List provider logs", - "operationId": "messagingListProviderLogs", + "summary": "List deployments", + "operationId": "sitesListDeployments", "tags": [ - "messaging" + "sites" ], - "description": "Get the provider activity logs listed by its unique ID.", + "description": "Get a list of all the site's code deployments. You can use the query params to filter your results.", "responses": { "200": { - "description": "Logs List", + "description": "Deployments List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/logList" + "$ref": "#\/components\/schemas\/deploymentList" } } } @@ -23730,23 +28770,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "listProviderLogs", - "group": "providers", - "weight": 203, + "method": "listDeployments", + "group": "deployments", + "weight": 539, "cookies": false, "type": "", - "demo": "messaging\/list-provider-logs.md", + "demo": "sites\/list-deployments.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.read", + "scope": "sites.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-provider-logs.md", "auth": { "Project": [], "Key": [] @@ -23760,18 +28799,18 @@ ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "schema": { "type": "string", - "x-example": "<PROVIDER_ID>" + "x-example": "<SITE_ID>" }, "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). Only supported methods are limit and offset", + "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", @@ -23782,6 +28821,17 @@ }, "in": "query" }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "x-example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, { "name": "total", "description": "When set to false, the total count returned will be 0 and will not be calculated.", @@ -23794,23 +28844,21 @@ "in": "query" } ] - } - }, - "\/messaging\/subscribers\/{subscriberId}\/logs": { - "get": { - "summary": "List subscriber logs", - "operationId": "messagingListSubscriberLogs", + }, + "post": { + "summary": "Create deployment", + "operationId": "sitesCreateDeployment", "tags": [ - "messaging" + "sites" ], - "description": "Get the subscriber activity logs listed by its unique ID.", + "description": "Create a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the site's deployment to use your new deployment ID.", "responses": { - "200": { - "description": "Logs List", + "202": { + "description": "Deployment", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/logList" + "$ref": "#\/components\/schemas\/deployment" } } } @@ -23818,23 +28866,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "listSubscriberLogs", - "group": "subscribers", - "weight": 225, + "method": "createDeployment", + "group": "deployments", + "weight": 535, "cookies": false, - "type": "", - "demo": "messaging\/list-subscriber-logs.md", + "type": "upload", + "demo": "sites\/create-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "subscribers.read", + "scope": "sites.write", "platforms": [ "console", "server" ], - "packaging": false, + "packaging": true, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-subscriber-logs.md", "auth": { "Project": [], "Key": [] @@ -23848,57 +28895,76 @@ ], "parameters": [ { - "name": "subscriberId", - "description": "Subscriber ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "schema": { "type": "string", - "x-example": "<SUBSCRIBER_ID>" + "x-example": "<SITE_ID>" }, "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). 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", - "x-example": false, - "default": true - }, - "in": "query" } - ] + ], + "requestBody": { + "content": { + "multipart\/form-data": { + "schema": { + "type": "object", + "properties": { + "installCommand": { + "type": "string", + "description": "Install Commands.", + "x-example": "<INSTALL_COMMAND>", + "x-nullable": true + }, + "buildCommand": { + "type": "string", + "description": "Build Commands.", + "x-example": "<BUILD_COMMAND>", + "x-nullable": true + }, + "outputDirectory": { + "type": "string", + "description": "Output Directory.", + "x-example": "<OUTPUT_DIRECTORY>", + "x-nullable": true + }, + "code": { + "type": "string", + "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.", + "x-example": null, + "format": "binary" + }, + "activate": { + "type": "boolean", + "description": "Automatically activate the deployment when it is finished building.", + "x-example": false + } + }, + "required": [ + "code" + ] + } + } + } + } } }, - "\/messaging\/topics": { - "get": { - "summary": "List topics", - "operationId": "messagingListTopics", + "\/sites\/{siteId}\/deployments\/duplicate": { + "post": { + "summary": "Create duplicate deployment", + "operationId": "sitesCreateDuplicateDeployment", "tags": [ - "messaging" + "sites" ], - "description": "Get a list of all topics from the current Appwrite project.", + "description": "Create a new build for an existing site deployment. This endpoint allows you to rebuild a deployment with the updated site configuration, including its commands and output directory if they have been modified. The build process will be queued and executed asynchronously. The original deployment's code will be preserved and used for the new build.", "responses": { - "200": { - "description": "Topic list", + "202": { + "description": "Deployment", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/topicList" + "$ref": "#\/components\/schemas\/deployment" } } } @@ -23906,23 +28972,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "listTopics", - "group": "topics", - "weight": 218, + "method": "createDuplicateDeployment", + "group": "deployments", + "weight": 543, "cookies": false, "type": "", - "demo": "messaging\/list-topics.md", + "demo": "sites\/create-duplicate-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "topics.read", + "scope": "sites.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-topics.md", "auth": { "Project": [], "Key": [] @@ -23936,56 +29001,52 @@ ], "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, description, emailTotal, smsTotal, pushTotal", - "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, + "name": "siteId", + "description": "Site ID.", + "required": true, "schema": { "type": "string", - "x-example": "<SEARCH>", - "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", - "x-example": false, - "default": true + "x-example": "<SITE_ID>" }, - "in": "query" + "in": "path" } - ] - }, + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "deploymentId": { + "type": "string", + "description": "Deployment ID.", + "x-example": "<DEPLOYMENT_ID>" + } + }, + "required": [ + "deploymentId" + ] + } + } + } + } + } + }, + "\/sites\/{siteId}\/deployments\/template": { "post": { - "summary": "Create topic", - "operationId": "messagingCreateTopic", + "summary": "Create template deployment", + "operationId": "sitesCreateTemplateDeployment", "tags": [ - "messaging" + "sites" ], - "description": "Create a new topic.", + "description": "Create a deployment based on a template.\n\nUse this endpoint with combination of [listTemplates](https:\/\/appwrite.io\/docs\/products\/sites\/templates) to find the template details.", "responses": { - "201": { - "description": "Topic", + "202": { + "description": "Deployment", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/topic" + "$ref": "#\/components\/schemas\/deployment" } } } @@ -23993,23 +29054,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "createTopic", - "group": "topics", - "weight": 217, + "method": "createTemplateDeployment", + "group": "deployments", + "weight": 536, "cookies": false, "type": "", - "demo": "messaging\/create-topic.md", + "demo": "sites\/create-template-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "topics.write", + "scope": "sites.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-topic.md", "auth": { "Project": [], "Key": [] @@ -24021,34 +29081,68 @@ "Key": [] } ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<SITE_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "topicId": { + "repository": { "type": "string", - "description": "Topic ID. Choose a custom Topic ID or a new Topic ID.", - "x-example": "<TOPIC_ID>" + "description": "Repository name of the template.", + "x-example": "<REPOSITORY>" }, - "name": { + "owner": { "type": "string", - "description": "Topic Name.", - "x-example": "<NAME>" + "description": "The name of the owner of the template.", + "x-example": "<OWNER>" }, - "subscribe": { - "type": "array", - "description": "An array of role strings with subscribe permission. By default all users are granted with any subscribe permission. [learn more about roles](https:\/\/appwrite.io\/docs\/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.", - "x-example": "[\"any\"]", - "items": { - "type": "string" - } + "rootDirectory": { + "type": "string", + "description": "Path to site code in the template repo.", + "x-example": "<ROOT_DIRECTORY>" + }, + "type": { + "type": "string", + "description": "Type for the reference provided. Can be commit, branch, or tag", + "x-example": "branch", + "enum": [ + "branch", + "commit", + "tag" + ], + "x-enum-name": "TemplateReferenceType", + "x-enum-keys": [] + }, + "reference": { + "type": "string", + "description": "Reference value, can be a commit hash, branch name, or release tag", + "x-example": "<REFERENCE>" + }, + "activate": { + "type": "boolean", + "description": "Automatically activate the deployment when it is finished building.", + "x-example": false } }, "required": [ - "topicId", - "name" + "repository", + "owner", + "rootDirectory", + "type", + "reference" ] } } @@ -24056,21 +29150,21 @@ } } }, - "\/messaging\/topics\/{topicId}": { - "get": { - "summary": "Get topic", - "operationId": "messagingGetTopic", + "\/sites\/{siteId}\/deployments\/vcs": { + "post": { + "summary": "Create VCS deployment", + "operationId": "sitesCreateVcsDeployment", "tags": [ - "messaging" + "sites" ], - "description": "Get a topic by its unique ID.\n", + "description": "Create a deployment when a site is connected to VCS.\n\nThis endpoint lets you create deployment from a branch, commit, or a tag.", "responses": { - "200": { - "description": "Topic", + "202": { + "description": "Deployment", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/topic" + "$ref": "#\/components\/schemas\/deployment" } } } @@ -24078,23 +29172,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getTopic", - "group": "topics", - "weight": 220, + "method": "createVcsDeployment", + "group": "deployments", + "weight": 537, "cookies": false, "type": "", - "demo": "messaging\/get-topic.md", + "demo": "sites\/create-vcs-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "topics.read", + "scope": "sites.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/get-topic.md", "auth": { "Project": [], "Key": [] @@ -24108,31 +29201,70 @@ ], "parameters": [ { - "name": "topicId", - "description": "Topic ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "schema": { "type": "string", - "x-example": "<TOPIC_ID>" + "x-example": "<SITE_ID>" }, "in": "path" } - ] - }, - "patch": { - "summary": "Update topic", - "operationId": "messagingUpdateTopic", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Type of reference passed. Allowed values are: branch, commit", + "x-example": "branch", + "enum": [ + "branch", + "commit", + "tag" + ], + "x-enum-name": "VCSReferenceType", + "x-enum-keys": [] + }, + "reference": { + "type": "string", + "description": "VCS reference to create deployment from. Depending on type this can be: branch name, commit hash", + "x-example": "<REFERENCE>" + }, + "activate": { + "type": "boolean", + "description": "Automatically activate the deployment when it is finished building.", + "x-example": false + } + }, + "required": [ + "type", + "reference" + ] + } + } + } + } + } + }, + "\/sites\/{siteId}\/deployments\/{deploymentId}": { + "get": { + "summary": "Get deployment", + "operationId": "sitesGetDeployment", "tags": [ - "messaging" + "sites" ], - "description": "Update a topic by its unique ID.\n", + "description": "Get a site deployment by its unique ID.", "responses": { "200": { - "description": "Topic", + "description": "Deployment", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/topic" + "$ref": "#\/components\/schemas\/deployment" } } } @@ -24140,23 +29272,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateTopic", - "group": "topics", - "weight": 221, + "method": "getDeployment", + "group": "deployments", + "weight": 538, "cookies": false, "type": "", - "demo": "messaging\/update-topic.md", + "demo": "sites\/get-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "topics.write", + "scope": "sites.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-topic.md", "auth": { "Project": [], "Key": [] @@ -24170,50 +29301,34 @@ ], "parameters": [ { - "name": "topicId", - "description": "Topic ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "schema": { "type": "string", - "x-example": "<TOPIC_ID>" + "x-example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DEPLOYMENT_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Topic Name.", - "x-example": "<NAME>", - "x-nullable": true - }, - "subscribe": { - "type": "array", - "description": "An array of role strings with subscribe permission. By default all users are granted with any subscribe permission. [learn more about roles](https:\/\/appwrite.io\/docs\/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.", - "x-example": "[\"any\"]", - "items": { - "type": "string" - }, - "x-nullable": true - } - } - } - } - } - } + ] }, "delete": { - "summary": "Delete topic", - "operationId": "messagingDeleteTopic", + "summary": "Delete deployment", + "operationId": "sitesDeleteDeployment", "tags": [ - "messaging" + "sites" ], - "description": "Delete a topic by its unique ID.", + "description": "Delete a site deployment by its unique ID.", "responses": { "204": { "description": "No content" @@ -24221,23 +29336,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteTopic", - "group": "topics", - "weight": 222, + "method": "deleteDeployment", + "group": "deployments", + "weight": 541, "cookies": false, "type": "", - "demo": "messaging\/delete-topic.md", + "demo": "sites\/delete-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "topics.write", + "scope": "sites.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-topic.md", "auth": { "Project": [], "Key": [] @@ -24251,57 +29365,60 @@ ], "parameters": [ { - "name": "topicId", - "description": "Topic ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "schema": { "type": "string", - "x-example": "<TOPIC_ID>" + "x-example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DEPLOYMENT_ID>" }, "in": "path" } ] } }, - "\/messaging\/topics\/{topicId}\/logs": { + "\/sites\/{siteId}\/deployments\/{deploymentId}\/download": { "get": { - "summary": "List topic logs", - "operationId": "messagingListTopicLogs", + "summary": "Get deployment download", + "operationId": "sitesGetDeploymentDownload", "tags": [ - "messaging" + "sites" ], - "description": "Get the topic activity logs listed by its unique ID.", + "description": "Get a site deployment content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory.", "responses": { "200": { - "description": "Logs List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/logList" - } - } - } + "description": "File" } }, "deprecated": false, "x-appwrite": { - "method": "listTopicLogs", - "group": "topics", - "weight": 219, + "method": "getDeploymentDownload", + "group": "deployments", + "weight": 542, "cookies": false, - "type": "", - "demo": "messaging\/list-topic-logs.md", + "type": "location", + "demo": "sites\/get-deployment-download.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "topics.read", + "scope": "sites.read", "platforms": [ "console", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-topic-logs.md", "auth": { "Project": [], "Key": [] @@ -24310,62 +29427,66 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "topicId", - "description": "Topic ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "schema": { "type": "string", - "x-example": "<TOPIC_ID>" + "x-example": "<SITE_ID>" }, "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). Only supported methods are limit and offset", - "required": false, + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] + "type": "string", + "x-example": "<DEPLOYMENT_ID>" }, - "in": "query" + "in": "path" }, { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "name": "type", + "description": "Deployment file to download. Can be: \"source\", \"output\".", "required": false, "schema": { - "type": "boolean", - "x-example": false, - "default": true + "type": "string", + "x-example": "source", + "enum": [ + "source", + "output" + ], + "x-enum-name": "DeploymentDownloadType", + "x-enum-keys": [], + "default": "source" }, "in": "query" } ] } }, - "\/messaging\/topics\/{topicId}\/subscribers": { - "get": { - "summary": "List subscribers", - "operationId": "messagingListSubscribers", + "\/sites\/{siteId}\/deployments\/{deploymentId}\/status": { + "patch": { + "summary": "Update deployment status", + "operationId": "sitesUpdateDeploymentStatus", "tags": [ - "messaging" + "sites" ], - "description": "Get a list of all subscribers from the current Appwrite project.", + "description": "Cancel an ongoing site deployment build. If the build is already in progress, it will be stopped and marked as canceled. If the build hasn't started yet, it will be marked as canceled without executing. You cannot cancel builds that have already completed (status 'ready') or failed. The response includes the final build status and details.", "responses": { "200": { - "description": "Subscriber list", + "description": "Deployment", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/subscriberList" + "$ref": "#\/components\/schemas\/deployment" } } } @@ -24373,23 +29494,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "listSubscribers", - "group": "subscribers", - "weight": 224, + "method": "updateDeploymentStatus", + "group": "deployments", + "weight": 544, "cookies": false, "type": "", - "demo": "messaging\/list-subscribers.md", + "demo": "sites\/update-deployment-status.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "subscribers.read", + "scope": "sites.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-subscribers.md", "auth": { "Project": [], "Key": [] @@ -24403,66 +29523,43 @@ ], "parameters": [ { - "name": "topicId", - "description": "Topic ID. The topic ID subscribed to.", + "name": "siteId", + "description": "Site ID.", "required": true, "schema": { "type": "string", - "x-example": "<TOPIC_ID>" + "x-example": "<SITE_ID>" }, "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, provider, type, enabled", - "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, + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, "schema": { "type": "string", - "x-example": "<SEARCH>", - "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", - "x-example": false, - "default": true + "x-example": "<DEPLOYMENT_ID>" }, - "in": "query" + "in": "path" } ] - }, - "post": { - "summary": "Create subscriber", - "operationId": "messagingCreateSubscriber", + } + }, + "\/sites\/{siteId}\/logs": { + "get": { + "summary": "List logs", + "operationId": "sitesListLogs", "tags": [ - "messaging" + "sites" ], - "description": "Create a new subscriber.", + "description": "Get a list of all site logs. You can use the query params to filter your results.", "responses": { - "201": { - "description": "Subscriber", + "200": { + "description": "Executions List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/subscriber" + "$ref": "#\/components\/schemas\/executionList" } } } @@ -24470,92 +29567,86 @@ }, "deprecated": false, "x-appwrite": { - "method": "createSubscriber", - "group": "subscribers", - "weight": 223, + "method": "listLogs", + "group": "logs", + "weight": 546, "cookies": false, "type": "", - "demo": "messaging\/create-subscriber.md", + "demo": "sites\/list-logs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "subscribers.write", + "scope": "log.read", "platforms": [ - "server", - "client", "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-subscriber.md", "auth": { "Project": [], - "JWT": [] + "Key": [] } }, "security": [ { "Project": [], - "JWT": [], - "Session": [], "Key": [] } ], "parameters": [ { - "name": "topicId", - "description": "Topic ID. The topic ID to subscribe to.", + "name": "siteId", + "description": "Site ID.", "required": true, "schema": { "type": "string", - "x-example": "<TOPIC_ID>" + "x-example": "<SITE_ID>" }, "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", + "x-example": false, + "default": true + }, + "in": "query" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "subscriberId": { - "type": "string", - "description": "Subscriber ID. Choose a custom Subscriber ID or a new Subscriber ID.", - "x-example": "<SUBSCRIBER_ID>" - }, - "targetId": { - "type": "string", - "description": "Target ID. The target ID to link to the specified Topic ID.", - "x-example": "<TARGET_ID>" - } - }, - "required": [ - "subscriberId", - "targetId" - ] - } - } - } - } + ] } }, - "\/messaging\/topics\/{topicId}\/subscribers\/{subscriberId}": { + "\/sites\/{siteId}\/logs\/{logId}": { "get": { - "summary": "Get subscriber", - "operationId": "messagingGetSubscriber", + "summary": "Get log", + "operationId": "sitesGetLog", "tags": [ - "messaging" + "sites" ], - "description": "Get a subscriber by its unique ID.\n", + "description": "Get a site request log by its unique ID.", "responses": { "200": { - "description": "Subscriber", + "description": "Execution", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/subscriber" + "$ref": "#\/components\/schemas\/execution" } } } @@ -24563,23 +29654,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getSubscriber", - "group": "subscribers", - "weight": 226, + "method": "getLog", + "group": "logs", + "weight": 545, "cookies": false, "type": "", - "demo": "messaging\/get-subscriber.md", + "demo": "sites\/get-log.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "subscribers.read", + "scope": "log.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/get-subscriber.md", "auth": { "Project": [], "Key": [] @@ -24593,34 +29683,34 @@ ], "parameters": [ { - "name": "topicId", - "description": "Topic ID. The topic ID subscribed to.", + "name": "siteId", + "description": "Site ID.", "required": true, "schema": { "type": "string", - "x-example": "<TOPIC_ID>" + "x-example": "<SITE_ID>" }, "in": "path" }, { - "name": "subscriberId", - "description": "Subscriber ID.", + "name": "logId", + "description": "Log ID.", "required": true, "schema": { "type": "string", - "x-example": "<SUBSCRIBER_ID>" + "x-example": "<LOG_ID>" }, "in": "path" } ] }, "delete": { - "summary": "Delete subscriber", - "operationId": "messagingDeleteSubscriber", + "summary": "Delete log", + "operationId": "sitesDeleteLog", "tags": [ - "messaging" + "sites" ], - "description": "Delete a subscriber by its unique ID.", + "description": "Delete a site log by its unique ID.", "responses": { "204": { "description": "No content" @@ -24628,77 +29718,72 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteSubscriber", - "group": "subscribers", - "weight": 227, + "method": "deleteLog", + "group": "logs", + "weight": 547, "cookies": false, "type": "", - "demo": "messaging\/delete-subscriber.md", + "demo": "sites\/delete-log.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "subscribers.write", + "scope": "log.write", "platforms": [ - "server", - "client", "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-subscriber.md", "auth": { "Project": [], - "JWT": [] + "Key": [] } }, "security": [ { "Project": [], - "JWT": [], - "Session": [], "Key": [] } ], "parameters": [ { - "name": "topicId", - "description": "Topic ID. The topic ID subscribed to.", + "name": "siteId", + "description": "Site ID.", "required": true, "schema": { "type": "string", - "x-example": "<TOPIC_ID>" + "x-example": "<SITE_ID>" }, "in": "path" }, { - "name": "subscriberId", - "description": "Subscriber ID.", + "name": "logId", + "description": "Log ID.", "required": true, "schema": { "type": "string", - "x-example": "<SUBSCRIBER_ID>" + "x-example": "<LOG_ID>" }, "in": "path" } ] } }, - "\/sites": { + "\/sites\/{siteId}\/variables": { "get": { - "summary": "List sites", - "operationId": "sitesList", + "summary": "List variables", + "operationId": "sitesListVariables", "tags": [ "sites" ], - "description": "Get a list of all the project's sites. You can use the query params to filter your results.", + "description": "Get a list of all variables of a specific site.", "responses": { "200": { - "description": "Sites List", + "description": "Variables List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/siteList" + "$ref": "#\/components\/schemas\/variableList" } } } @@ -24706,12 +29791,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "list", - "group": "sites", - "weight": 590, + "method": "listVariables", + "group": "variables", + "weight": 550, "cookies": false, "type": "", - "demo": "sites\/list.md", + "demo": "sites\/list-variables.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -24735,56 +29820,31 @@ ], "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, framework, deploymentId, buildCommand, installCommand, outputDirectory, 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, + "name": "siteId", + "description": "Site unique ID.", + "required": true, "schema": { "type": "string", - "x-example": "<SEARCH>", - "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", - "x-example": false, - "default": true + "x-example": "<SITE_ID>" }, - "in": "query" + "in": "path" } ] }, "post": { - "summary": "Create site", - "operationId": "sitesCreate", + "summary": "Create variable", + "operationId": "sitesCreateVariable", "tags": [ "sites" ], - "description": "Create a new site.", + "description": "Create a new site variable. These variables can be accessed during build and runtime (server-side rendering) as environment variables.", "responses": { "201": { - "description": "Site", + "description": "Variable", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/site" + "$ref": "#\/components\/schemas\/variable" } } } @@ -24792,12 +29852,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "create", - "group": "sites", - "weight": 588, + "method": "createVariable", + "group": "variables", + "weight": 631, "cookies": false, "type": "", - "demo": "sites\/create.md", + "demo": "sites\/create-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -24819,227 +29879,43 @@ "Key": [] } ], + "parameters": [ + { + "name": "siteId", + "description": "Site unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<SITE_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "siteId": { - "type": "string", - "description": "Site 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.", - "x-example": "<SITE_ID>" - }, - "name": { - "type": "string", - "description": "Site name. Max length: 128 chars.", - "x-example": "<NAME>" - }, - "framework": { - "type": "string", - "description": "Sites framework.", - "x-example": "analog", - "enum": [ - "analog", - "angular", - "nextjs", - "react", - "nuxt", - "vue", - "sveltekit", - "astro", - "tanstack-start", - "remix", - "lynx", - "flutter", - "react-native", - "vite", - "other" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "enabled": { - "type": "boolean", - "description": "Is site enabled? When set to 'disabled', users cannot access the site but Server SDKs with and API key can still access the site. No data is lost when this is toggled.", - "x-example": false - }, - "logging": { - "type": "boolean", - "description": "When disabled, request logs will exclude logs and errors, and site responses will be slightly faster.", - "x-example": false - }, - "timeout": { - "type": "integer", - "description": "Maximum request time in seconds.", - "x-example": 1, - "format": "int32" - }, - "installCommand": { - "type": "string", - "description": "Install Command.", - "x-example": "<INSTALL_COMMAND>" - }, - "buildCommand": { - "type": "string", - "description": "Build Command.", - "x-example": "<BUILD_COMMAND>" - }, - "outputDirectory": { - "type": "string", - "description": "Output Directory for site.", - "x-example": "<OUTPUT_DIRECTORY>" - }, - "buildRuntime": { - "type": "string", - "description": "Runtime to use during build step.", - "x-example": "node-14.5", - "enum": [ - "node-14.5", - "node-16.0", - "node-18.0", - "node-19.0", - "node-20.0", - "node-21.0", - "node-22", - "node-23", - "node-24", - "node-25", - "php-8.0", - "php-8.1", - "php-8.2", - "php-8.3", - "php-8.4", - "ruby-3.0", - "ruby-3.1", - "ruby-3.2", - "ruby-3.3", - "ruby-3.4", - "ruby-4.0", - "python-3.8", - "python-3.9", - "python-3.10", - "python-3.11", - "python-3.12", - "python-3.13", - "python-3.14", - "python-ml-3.11", - "python-ml-3.12", - "python-ml-3.13", - "deno-1.21", - "deno-1.24", - "deno-1.35", - "deno-1.40", - "deno-1.46", - "deno-2.0", - "deno-2.5", - "deno-2.6", - "dart-2.15", - "dart-2.16", - "dart-2.17", - "dart-2.18", - "dart-2.19", - "dart-3.0", - "dart-3.1", - "dart-3.3", - "dart-3.5", - "dart-3.8", - "dart-3.9", - "dart-3.10", - "dotnet-6.0", - "dotnet-7.0", - "dotnet-8.0", - "dotnet-10", - "java-8.0", - "java-11.0", - "java-17.0", - "java-18.0", - "java-21.0", - "java-22", - "java-25", - "swift-5.5", - "swift-5.8", - "swift-5.9", - "swift-5.10", - "swift-6.2", - "kotlin-1.6", - "kotlin-1.8", - "kotlin-1.9", - "kotlin-2.0", - "kotlin-2.3", - "cpp-17", - "cpp-20", - "bun-1.0", - "bun-1.1", - "bun-1.2", - "bun-1.3", - "go-1.23", - "go-1.24", - "go-1.25", - "go-1.26", - "static-1", - "flutter-3.24", - "flutter-3.27", - "flutter-3.29", - "flutter-3.32", - "flutter-3.35", - "flutter-3.38" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "adapter": { - "type": "string", - "description": "Framework adapter defining rendering strategy. Allowed values are: static, ssr", - "x-example": "static", - "enum": [ - "static", - "ssr" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "installationId": { - "type": "string", - "description": "Appwrite Installation ID for VCS (Version Control System) deployment.", - "x-example": "<INSTALLATION_ID>" - }, - "fallbackFile": { - "type": "string", - "description": "Fallback file for single page application sites.", - "x-example": "<FALLBACK_FILE>" - }, - "providerRepositoryId": { + "key": { "type": "string", - "description": "Repository ID of the repo linked to the site.", - "x-example": "<PROVIDER_REPOSITORY_ID>" + "description": "Variable key. Max length: 255 chars.", + "x-example": "<KEY>" }, - "providerBranch": { + "value": { "type": "string", - "description": "Production branch for the repo linked to the site.", - "x-example": "<PROVIDER_BRANCH>" + "description": "Variable value. Max length: 8192 chars.", + "x-example": "<VALUE>" }, - "providerSilentMode": { + "secret": { "type": "boolean", - "description": "Is the VCS (Version Control System) connection in silent mode for the repo linked to the site? In silent mode, comments will not be made on commits and pull requests.", + "description": "Secret variables can be updated or deleted, but only sites can read them during build and runtime.", "x-example": false - }, - "providerRootDirectory": { - "type": "string", - "description": "Path to site code in the linked repo.", - "x-example": "<PROVIDER_ROOT_DIRECTORY>" - }, - "specification": { - "type": "string", - "description": "Framework specification for the site and builds.", - "x-example": null } }, "required": [ - "siteId", - "name", - "framework", - "buildRuntime" + "key", + "value" ] } } @@ -25047,21 +29923,92 @@ } } }, - "\/sites\/frameworks": { + "\/sites\/{siteId}\/variables\/{variableId}": { "get": { - "summary": "List frameworks", - "operationId": "sitesListFrameworks", + "summary": "Get variable", + "operationId": "sitesGetVariable", + "tags": [ + "sites" + ], + "description": "Get a variable by its unique ID.", + "responses": { + "200": { + "description": "Variable", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/variable" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getVariable", + "group": "variables", + "weight": 549, + "cookies": false, + "type": "", + "demo": "sites\/get-variable.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<VARIABLE_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update variable", + "operationId": "sitesUpdateVariable", "tags": [ "sites" ], - "description": "Get a list of all frameworks that are currently available on the server instance.", + "description": "Update variable by its unique ID.", "responses": { "200": { - "description": "Frameworks List", + "description": "Variable", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/frameworkList" + "$ref": "#\/components\/schemas\/variable" } } } @@ -25069,16 +30016,16 @@ }, "deprecated": false, "x-appwrite": { - "method": "listFrameworks", - "group": "frameworks", - "weight": 593, + "method": "updateVariable", + "group": "variables", + "weight": 551, "cookies": false, "type": "", - "demo": "sites\/list-frameworks.md", + "demo": "sites\/update-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "sites.write", "platforms": [ "console", "server" @@ -25095,44 +30042,88 @@ "Project": [], "Key": [] } - ] - } - }, - "\/sites\/specifications": { - "get": { - "summary": "List specifications", - "operationId": "sitesListSpecifications", + ], + "parameters": [ + { + "name": "siteId", + "description": "Site unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<VARIABLE_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Variable key. Max length: 255 chars.", + "x-example": "<KEY>" + }, + "value": { + "type": "string", + "description": "Variable value. Max length: 8192 chars.", + "x-example": "<VALUE>", + "x-nullable": true + }, + "secret": { + "type": "boolean", + "description": "Secret variables can be updated or deleted, but only sites can read them during build and runtime.", + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "key" + ] + } + } + } + } + }, + "delete": { + "summary": "Delete variable", + "operationId": "sitesDeleteVariable", "tags": [ "sites" ], - "description": "List allowed site specifications for this instance.", + "description": "Delete a variable by its unique ID.", "responses": { - "200": { - "description": "Specifications List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/specificationList" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "listSpecifications", - "group": "frameworks", - "weight": 616, + "method": "deleteVariable", + "group": "variables", + "weight": 552, "cookies": false, "type": "", - "demo": "sites\/list-specifications.md", + "demo": "sites\/delete-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": "sites.write", "platforms": [ - "server", - "console" + "console", + "server" ], "packaging": false, "public": true, @@ -25146,24 +30137,46 @@ "Project": [], "Key": [] } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<SITE_ID>" + }, + "in": "path" + }, + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<VARIABLE_ID>" + }, + "in": "path" + } ] } }, - "\/sites\/{siteId}": { + "\/storage\/buckets": { "get": { - "summary": "Get site", - "operationId": "sitesGet", + "summary": "List buckets", + "operationId": "storageListBuckets", "tags": [ - "sites" + "storage" ], - "description": "Get a site by its unique ID.", + "description": "Get a list of all the storage buckets. You can use the query params to filter your results.", "responses": { "200": { - "description": "Site", + "description": "Buckets List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/site" + "$ref": "#\/components\/schemas\/bucketList" } } } @@ -25171,22 +30184,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": "sites", - "weight": 589, + "method": "listBuckets", + "group": "buckets", + "weight": 598, "cookies": false, "type": "", - "demo": "sites\/get.md", + "demo": "storage\/list-buckets.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": "buckets.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/list-buckets.md", "auth": { "Project": [], "Key": [] @@ -25200,31 +30214,56 @@ ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", - "required": true, + "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: enabled, name, fileSecurity, maximumFileSize, encryption, antivirus, transformations", + "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", - "x-example": "<SITE_ID>" + "x-example": "<SEARCH>", + "default": "" }, - "in": "path" + "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", + "x-example": false, + "default": true + }, + "in": "query" } ] }, - "put": { - "summary": "Update site", - "operationId": "sitesUpdate", + "post": { + "summary": "Create bucket", + "operationId": "storageCreateBucket", "tags": [ - "sites" + "storage" ], - "description": "Update site by its unique ID.", + "description": "Create a new storage bucket.", "responses": { - "200": { - "description": "Site", + "201": { + "description": "Bucket", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/site" + "$ref": "#\/components\/schemas\/bucket" } } } @@ -25232,22 +30271,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "update", - "group": "sites", - "weight": 591, + "method": "createBucket", + "group": "buckets", + "weight": 596, "cookies": false, "type": "", - "demo": "sites\/update.md", + "demo": "storage\/create-bucket.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "buckets.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/create-bucket.md", "auth": { "Project": [], "Key": [] @@ -25259,268 +30299,132 @@ "Key": [] } ], - "parameters": [ - { - "name": "siteId", - "description": "Site ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<SITE_ID>" - }, - "in": "path" - } - ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { + "bucketId": { + "type": "string", + "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.", + "x-example": "<BUCKET_ID>" + }, "name": { "type": "string", - "description": "Site name. Max length: 128 chars.", + "description": "Bucket name", "x-example": "<NAME>" }, - "framework": { - "type": "string", - "description": "Sites framework.", - "x-example": "analog", - "enum": [ - "analog", - "angular", - "nextjs", - "react", - "nuxt", - "vue", - "sveltekit", - "astro", - "tanstack-start", - "remix", - "lynx", - "flutter", - "react-native", - "vite", - "other" - ], - "x-enum-name": null, - "x-enum-keys": [] + "permissions": { + "type": "array", + "description": "An array of permission strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + }, + "x-nullable": true }, - "enabled": { + "fileSecurity": { "type": "boolean", - "description": "Is site enabled? When set to 'disabled', users cannot access the site but Server SDKs with and API key can still access the site. No data is lost when this is toggled.", + "description": "Enables configuring permissions for individual file. A user needs one of file or bucket level permissions to access a file. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", "x-example": false }, - "logging": { + "enabled": { "type": "boolean", - "description": "When disabled, request logs will exclude logs and errors, and site responses will be slightly faster.", + "description": "Is bucket enabled? When set to 'disabled', users cannot access the files in this bucket but Server SDKs with and API key can still access the bucket. No files are lost when this is toggled.", "x-example": false }, - "timeout": { + "maximumFileSize": { "type": "integer", - "description": "Maximum request time in seconds.", + "description": "Maximum file size allowed in bytes. Maximum allowed value is 5GB.", "x-example": 1, "format": "int32" }, - "installCommand": { - "type": "string", - "description": "Install Command.", - "x-example": "<INSTALL_COMMAND>" - }, - "buildCommand": { - "type": "string", - "description": "Build Command.", - "x-example": "<BUILD_COMMAND>" - }, - "outputDirectory": { - "type": "string", - "description": "Output Directory for site.", - "x-example": "<OUTPUT_DIRECTORY>" - }, - "buildRuntime": { - "type": "string", - "description": "Runtime to use during build step.", - "x-example": "node-14.5", - "enum": [ - "node-14.5", - "node-16.0", - "node-18.0", - "node-19.0", - "node-20.0", - "node-21.0", - "node-22", - "node-23", - "node-24", - "node-25", - "php-8.0", - "php-8.1", - "php-8.2", - "php-8.3", - "php-8.4", - "ruby-3.0", - "ruby-3.1", - "ruby-3.2", - "ruby-3.3", - "ruby-3.4", - "ruby-4.0", - "python-3.8", - "python-3.9", - "python-3.10", - "python-3.11", - "python-3.12", - "python-3.13", - "python-3.14", - "python-ml-3.11", - "python-ml-3.12", - "python-ml-3.13", - "deno-1.21", - "deno-1.24", - "deno-1.35", - "deno-1.40", - "deno-1.46", - "deno-2.0", - "deno-2.5", - "deno-2.6", - "dart-2.15", - "dart-2.16", - "dart-2.17", - "dart-2.18", - "dart-2.19", - "dart-3.0", - "dart-3.1", - "dart-3.3", - "dart-3.5", - "dart-3.8", - "dart-3.9", - "dart-3.10", - "dotnet-6.0", - "dotnet-7.0", - "dotnet-8.0", - "dotnet-10", - "java-8.0", - "java-11.0", - "java-17.0", - "java-18.0", - "java-21.0", - "java-22", - "java-25", - "swift-5.5", - "swift-5.8", - "swift-5.9", - "swift-5.10", - "swift-6.2", - "kotlin-1.6", - "kotlin-1.8", - "kotlin-1.9", - "kotlin-2.0", - "kotlin-2.3", - "cpp-17", - "cpp-20", - "bun-1.0", - "bun-1.1", - "bun-1.2", - "bun-1.3", - "go-1.23", - "go-1.24", - "go-1.25", - "go-1.26", - "static-1", - "flutter-3.24", - "flutter-3.27", - "flutter-3.29", - "flutter-3.32", - "flutter-3.35", - "flutter-3.38" - ], - "x-enum-name": null, - "x-enum-keys": [] + "allowedFileExtensions": { + "type": "array", + "description": "Allowed file extensions. Maximum of 100 extensions are allowed, each 64 characters long.", + "x-example": null, + "items": { + "type": "string" + } }, - "adapter": { + "compression": { "type": "string", - "description": "Framework adapter defining rendering strategy. Allowed values are: static, ssr", - "x-example": "static", + "description": "Compression algorithm chosen for compression. Can be one of none, [gzip](https:\/\/en.wikipedia.org\/wiki\/Gzip), or [zstd](https:\/\/en.wikipedia.org\/wiki\/Zstd), For file size above 20MB compression is skipped even if it's enabled", + "x-example": "none", "enum": [ - "static", - "ssr" + "none", + "gzip", + "zstd" ], "x-enum-name": null, "x-enum-keys": [] }, - "fallbackFile": { - "type": "string", - "description": "Fallback file for single page application sites.", - "x-example": "<FALLBACK_FILE>" - }, - "installationId": { - "type": "string", - "description": "Appwrite Installation ID for VCS (Version Control System) deployment.", - "x-example": "<INSTALLATION_ID>" - }, - "providerRepositoryId": { - "type": "string", - "description": "Repository ID of the repo linked to the site.", - "x-example": "<PROVIDER_REPOSITORY_ID>" - }, - "providerBranch": { - "type": "string", - "description": "Production branch for the repo linked to the site.", - "x-example": "<PROVIDER_BRANCH>" - }, - "providerSilentMode": { + "encryption": { "type": "boolean", - "description": "Is the VCS (Version Control System) connection in silent mode for the repo linked to the site? In silent mode, comments will not be made on commits and pull requests.", + "description": "Is encryption enabled? For file size above 20MB encryption is skipped even if it's enabled", "x-example": false }, - "providerRootDirectory": { - "type": "string", - "description": "Path to site code in the linked repo.", - "x-example": "<PROVIDER_ROOT_DIRECTORY>" + "antivirus": { + "type": "boolean", + "description": "Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled", + "x-example": false }, - "specification": { - "type": "string", - "description": "Framework specification for the site and builds.", - "x-example": null + "transformations": { + "type": "boolean", + "description": "Are image transformations enabled?", + "x-example": false } }, "required": [ - "name", - "framework" + "bucketId", + "name" ] } } } } - }, - "delete": { - "summary": "Delete site", - "operationId": "sitesDelete", + } + }, + "\/storage\/buckets\/{bucketId}": { + "get": { + "summary": "Get bucket", + "operationId": "storageGetBucket", "tags": [ - "sites" + "storage" ], - "description": "Delete a site by its unique ID.", + "description": "Get a storage bucket by its unique ID. This endpoint response returns a JSON object with the storage bucket metadata.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Bucket", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/bucket" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": "sites", - "weight": 592, + "method": "getBucket", + "group": "buckets", + "weight": 597, "cookies": false, "type": "", - "demo": "sites\/delete.md", + "demo": "storage\/get-bucket.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "buckets.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-bucket.md", "auth": { "Project": [], "Key": [] @@ -25534,33 +30438,31 @@ ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "bucketId", + "description": "Bucket unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<SITE_ID>" + "x-example": "<BUCKET_ID>" }, "in": "path" } ] - } - }, - "\/sites\/{siteId}\/deployment": { - "patch": { - "summary": "Update site's deployment", - "operationId": "sitesUpdateSiteDeployment", + }, + "put": { + "summary": "Update bucket", + "operationId": "storageUpdateBucket", "tags": [ - "sites" + "storage" ], - "description": "Update the site active deployment. Use this endpoint to switch the code deployment that should be used when visitor opens your site.", + "description": "Update a storage bucket by its unique ID.", "responses": { "200": { - "description": "Site", + "description": "Bucket", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/site" + "$ref": "#\/components\/schemas\/bucket" } } } @@ -25568,22 +30470,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateSiteDeployment", - "group": "sites", + "method": "updateBucket", + "group": "buckets", "weight": 599, "cookies": false, "type": "", - "demo": "sites\/update-site-deployment.md", + "demo": "storage\/update-bucket.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "buckets.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/update-bucket.md", "auth": { "Project": [], "Key": [] @@ -25597,12 +30500,12 @@ ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "bucketId", + "description": "Bucket unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<SITE_ID>" + "x-example": "<BUCKET_ID>" }, "in": "path" } @@ -25613,36 +30516,151 @@ "schema": { "type": "object", "properties": { - "deploymentId": { + "name": { "type": "string", - "description": "Deployment ID.", - "x-example": "<DEPLOYMENT_ID>" + "description": "Bucket name", + "x-example": "<NAME>" + }, + "permissions": { + "type": "array", + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + }, + "x-nullable": true + }, + "fileSecurity": { + "type": "boolean", + "description": "Enables configuring permissions for individual file. A user needs one of file or bucket level permissions to access a file. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": false + }, + "enabled": { + "type": "boolean", + "description": "Is bucket enabled? When set to 'disabled', users cannot access the files in this bucket but Server SDKs with and API key can still access the bucket. No files are lost when this is toggled.", + "x-example": false + }, + "maximumFileSize": { + "type": "integer", + "description": "Maximum file size allowed in bytes. Maximum allowed value is 5GB.", + "x-example": 1, + "format": "int32" + }, + "allowedFileExtensions": { + "type": "array", + "description": "Allowed file extensions. Maximum of 100 extensions are allowed, each 64 characters long.", + "x-example": null, + "items": { + "type": "string" + } + }, + "compression": { + "type": "string", + "description": "Compression algorithm chosen for compression. Can be one of none, [gzip](https:\/\/en.wikipedia.org\/wiki\/Gzip), or [zstd](https:\/\/en.wikipedia.org\/wiki\/Zstd), For file size above 20MB compression is skipped even if it's enabled", + "x-example": "none", + "enum": [ + "none", + "gzip", + "zstd" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "encryption": { + "type": "boolean", + "description": "Is encryption enabled? For file size above 20MB encryption is skipped even if it's enabled", + "x-example": false + }, + "antivirus": { + "type": "boolean", + "description": "Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled", + "x-example": false + }, + "transformations": { + "type": "boolean", + "description": "Are image transformations enabled?", + "x-example": false } }, "required": [ - "deploymentId" + "name" ] } } } } + }, + "delete": { + "summary": "Delete bucket", + "operationId": "storageDeleteBucket", + "tags": [ + "storage" + ], + "description": "Delete a storage bucket by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteBucket", + "group": "buckets", + "weight": 600, + "cookies": false, + "type": "", + "demo": "storage\/delete-bucket.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "buckets.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/delete-bucket.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Bucket unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<BUCKET_ID>" + }, + "in": "path" + } + ] } }, - "\/sites\/{siteId}\/deployments": { + "\/storage\/buckets\/{bucketId}\/files": { "get": { - "summary": "List deployments", - "operationId": "sitesListDeployments", + "summary": "List files", + "operationId": "storageListFiles", "tags": [ - "sites" + "storage" ], - "description": "Get a list of all the site's code deployments. You can use the query params to filter your results.", + "description": "Get a list of all the user files. You can use the query params to filter your results.", "responses": { "200": { - "description": "Deployments List", + "description": "Files List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/deploymentList" + "$ref": "#\/components\/schemas\/fileList" } } } @@ -25650,47 +30668,52 @@ }, "deprecated": false, "x-appwrite": { - "method": "listDeployments", - "group": "deployments", - "weight": 598, + "method": "listFiles", + "group": "files", + "weight": 603, "cookies": false, "type": "", - "demo": "sites\/list-deployments.md", + "demo": "storage\/list-files.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": "files.read", "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/list-files.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", "required": true, "schema": { "type": "string", - "x-example": "<SITE_ID>" + "x-example": "<BUCKET_ID>" }, "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", + "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, signature, mimeType, sizeOriginal, chunksTotal, chunksUploaded", "required": false, "schema": { "type": "array", @@ -25726,19 +30749,19 @@ ] }, "post": { - "summary": "Create deployment", - "operationId": "sitesCreateDeployment", + "summary": "Create file", + "operationId": "storageCreateFile", "tags": [ - "sites" + "storage" ], - "description": "Create a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the site's deployment to use your new deployment ID.", + "description": "Create a new file. Before using this route, you should create a new bucket resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/storage#storageCreateBucket) API or directly from your Appwrite console.\n\nLarger files should be uploaded using multiple requests with the [content-range](https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTTP\/Headers\/Content-Range) header to send a partial request with a maximum supported chunk of `5MB`. The `content-range` header values should always be in bytes.\n\nWhen the first request is sent, the server will return the **File** object, and the subsequent part request must include the file's **id** in `x-appwrite-id` header to allow the server to know that the partial upload is for the existing file and not for a new one.\n\nIf you're creating a new file using one of the Appwrite SDKs, all the chunking logic will be managed by the SDK internally.\n", "responses": { - "202": { - "description": "Deployment", + "201": { + "description": "File", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/deployment" + "$ref": "#\/components\/schemas\/file" } } } @@ -25746,41 +30769,46 @@ }, "deprecated": false, "x-appwrite": { - "method": "createDeployment", - "group": "deployments", - "weight": 594, + "method": "createFile", + "group": "files", + "weight": 802, "cookies": false, "type": "upload", - "demo": "sites\/create-deployment.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "demo": "storage\/create-file.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId},chunkId:{chunkId}", + "scope": "files.write", "platforms": [ "console", + "client", + "server", "server" ], - "packaging": true, + "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/create-file.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", "required": true, "schema": { "type": "string", - "x-example": "<SITE_ID>" + "x-example": "<BUCKET_ID>" }, "in": "path" } @@ -25791,39 +30819,31 @@ "schema": { "type": "object", "properties": { - "installCommand": { - "type": "string", - "description": "Install Commands.", - "x-example": "<INSTALL_COMMAND>", - "x-nullable": true - }, - "buildCommand": { - "type": "string", - "description": "Build Commands.", - "x-example": "<BUILD_COMMAND>", - "x-nullable": true - }, - "outputDirectory": { + "fileId": { "type": "string", - "description": "Output Directory.", - "x-example": "<OUTPUT_DIRECTORY>", - "x-nullable": true + "description": "File 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.", + "x-example": "<FILE_ID>", + "x-upload-id": true }, - "code": { + "file": { "type": "string", - "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.", + "description": "Binary file. Appwrite SDKs provide helpers to handle file input. [Learn about file input](https:\/\/appwrite.io\/docs\/products\/storage\/upload-download#input-file).", "x-example": null, "format": "binary" }, - "activate": { - "type": "boolean", - "description": "Automatically activate the deployment when it is finished building.", - "x-example": false + "permissions": { + "type": "array", + "description": "An array of permission strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + }, + "x-nullable": true } }, "required": [ - "code", - "activate" + "fileId", + "file" ] } } @@ -25831,21 +30851,21 @@ } } }, - "\/sites\/{siteId}\/deployments\/duplicate": { - "post": { - "summary": "Create duplicate deployment", - "operationId": "sitesCreateDuplicateDeployment", + "\/storage\/buckets\/{bucketId}\/files\/{fileId}": { + "get": { + "summary": "Get file", + "operationId": "storageGetFile", "tags": [ - "sites" + "storage" ], - "description": "Create a new build for an existing site deployment. This endpoint allows you to rebuild a deployment with the updated site configuration, including its commands and output directory if they have been modified. The build process will be queued and executed asynchronously. The original deployment's code will be preserved and used for the new build.", + "description": "Get a file by its unique ID. This endpoint response returns a JSON object with the file metadata.", "responses": { - "202": { - "description": "Deployment", + "200": { + "description": "File", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/deployment" + "$ref": "#\/components\/schemas\/file" } } } @@ -25853,41 +30873,132 @@ }, "deprecated": false, "x-appwrite": { - "method": "createDuplicateDeployment", - "group": "deployments", + "method": "getFile", + "group": "files", "weight": 602, "cookies": false, "type": "", - "demo": "sites\/create-duplicate-deployment.md", + "demo": "storage\/get-file.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "files.read", "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", "required": true, "schema": { "type": "string", - "x-example": "<SITE_ID>" + "x-example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<FILE_ID>" + }, + "in": "path" + } + ] + }, + "put": { + "summary": "Update file", + "operationId": "storageUpdateFile", + "tags": [ + "storage" + ], + "description": "Update a file by its unique ID. Only users with write permissions have access to update this resource.", + "responses": { + "200": { + "description": "File", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/file" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateFile", + "group": "files", + "weight": 604, + "cookies": false, + "type": "", + "demo": "storage\/update-file.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "files.write", + "platforms": [ + "console", + "client", + "server", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/update-file.md", + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Bucket unique ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<FILE_ID>" }, "in": "path" } @@ -25898,341 +31009,531 @@ "schema": { "type": "object", "properties": { - "deploymentId": { + "name": { "type": "string", - "description": "Deployment ID.", - "x-example": "<DEPLOYMENT_ID>" + "description": "File name.", + "x-example": "<NAME>" + }, + "permissions": { + "type": "array", + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + }, + "x-nullable": true } - }, - "required": [ - "deploymentId" - ] + } } } } } + }, + "delete": { + "summary": "Delete file", + "operationId": "storageDeleteFile", + "tags": [ + "storage" + ], + "description": "Delete a file by its unique ID. Only users with write permissions have access to delete this resource.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteFile", + "group": "files", + "weight": 605, + "cookies": false, + "type": "", + "demo": "storage\/delete-file.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "files.write", + "platforms": [ + "console", + "client", + "server", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/delete-file.md", + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "schema": { + "type": "string", + "x-example": "<BUCKET_ID>" + }, + "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<FILE_ID>" + }, + "in": "path" + } + ] } }, - "\/sites\/{siteId}\/deployments\/template": { - "post": { - "summary": "Create template deployment", - "operationId": "sitesCreateTemplateDeployment", + "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/download": { + "get": { + "summary": "Get file for download", + "operationId": "storageGetFileDownload", "tags": [ - "sites" + "storage" ], - "description": "Create a deployment based on a template.\n\nUse this endpoint with combination of [listTemplates](https:\/\/appwrite.io\/docs\/products\/sites\/templates) to find the template details.", + "description": "Get a file 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": { - "202": { - "description": "Deployment", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/deployment" - } - } - } + "200": { + "description": "File" } }, "deprecated": false, - "x-appwrite": { - "method": "createTemplateDeployment", - "group": "deployments", - "weight": 595, + "x-appwrite": { + "method": "getFileDownload", + "group": "files", + "weight": 607, "cookies": false, - "type": "", - "demo": "sites\/create-template-deployment.md", + "type": "location", + "demo": "storage\/get-file-download.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "files.read", "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-download.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "bucketId", + "description": "Storage bucket ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", "required": true, "schema": { "type": "string", - "x-example": "<SITE_ID>" + "x-example": "<BUCKET_ID>" }, "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<FILE_ID>" + }, + "in": "path" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "schema": { + "type": "string", + "x-example": "<TOKEN>", + "default": "" + }, + "in": "query" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "repository": { - "type": "string", - "description": "Repository name of the template.", - "x-example": "<REPOSITORY>" - }, - "owner": { - "type": "string", - "description": "The name of the owner of the template.", - "x-example": "<OWNER>" - }, - "rootDirectory": { - "type": "string", - "description": "Path to site code in the template repo.", - "x-example": "<ROOT_DIRECTORY>" - }, - "type": { - "type": "string", - "description": "Type for the reference provided. Can be commit, branch, or tag", - "x-example": "branch", - "enum": [ - "branch", - "commit", - "tag" - ], - "x-enum-name": "TemplateReferenceType", - "x-enum-keys": [] - }, - "reference": { - "type": "string", - "description": "Reference value, can be a commit hash, branch name, or release tag", - "x-example": "<REFERENCE>" - }, - "activate": { - "type": "boolean", - "description": "Automatically activate the deployment when it is finished building.", - "x-example": false - } - }, - "required": [ - "repository", - "owner", - "rootDirectory", - "type", - "reference" - ] - } - } - } - } + ] } }, - "\/sites\/{siteId}\/deployments\/vcs": { - "post": { - "summary": "Create VCS deployment", - "operationId": "sitesCreateVcsDeployment", + "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/preview": { + "get": { + "summary": "Get file preview", + "operationId": "storageGetFilePreview", "tags": [ - "sites" + "storage" ], - "description": "Create a deployment when a site is connected to VCS.\n\nThis endpoint lets you create deployment from a branch, commit, or a tag.", + "description": "Get a file preview image. Currently, this method supports preview for image files (jpg, png, and gif), other supported formats, like pdf, docs, slides, and spreadsheets, will return the file icon image. You can also pass query string arguments for cutting and resizing your preview image. Preview is supported only for image files smaller than 10MB.", "responses": { - "202": { - "description": "Deployment", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/deployment" - } - } - } + "200": { + "description": "Image" } }, "deprecated": false, "x-appwrite": { - "method": "createVcsDeployment", - "group": "deployments", - "weight": 596, + "method": "getFilePreview", + "group": "files", + "weight": 606, "cookies": false, - "type": "", - "demo": "sites\/create-vcs-deployment.md", + "type": "location", + "demo": "storage\/get-file-preview.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "files.read", "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-preview.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", "required": true, "schema": { "type": "string", - "x-example": "<SITE_ID>" + "x-example": "<BUCKET_ID>" }, "in": "path" + }, + { + "name": "fileId", + "description": "File ID", + "required": true, + "schema": { + "type": "string", + "x-example": "<FILE_ID>" + }, + "in": "path" + }, + { + "name": "width", + "description": "Resize preview image width, Pass an integer between 0 to 4000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "height", + "description": "Resize preview image height, Pass an integer between 0 to 4000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "gravity", + "description": "Image crop gravity. Can be one of center,top-left,top,top-right,left,right,bottom-left,bottom,bottom-right", + "required": false, + "schema": { + "type": "string", + "x-example": "center", + "enum": [ + "center", + "top-left", + "top", + "top-right", + "left", + "right", + "bottom-left", + "bottom", + "bottom-right" + ], + "x-enum-name": "ImageGravity", + "x-enum-keys": [], + "default": "center" + }, + "in": "query" + }, + { + "name": "quality", + "description": "Preview image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "x-example": -1, + "default": -1 + }, + "in": "query" + }, + { + "name": "borderWidth", + "description": "Preview image border in pixels. Pass an integer between 0 to 100. Defaults to 0.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "borderColor", + "description": "Preview image border color. Use a valid HEX color, no # is needed for prefix.", + "required": false, + "schema": { + "type": "string", + "default": "" + }, + "in": "query" + }, + { + "name": "borderRadius", + "description": "Preview image border radius in pixels. Pass an integer between 0 to 4000.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0 + }, + "in": "query" + }, + { + "name": "opacity", + "description": "Preview image opacity. Only works with images having an alpha channel (like png). Pass a number between 0 to 1.", + "required": false, + "schema": { + "type": "number", + "format": "float", + "x-example": 0, + "default": 1 + }, + "in": "query" + }, + { + "name": "rotation", + "description": "Preview image rotation in degrees. Pass an integer between -360 and 360.", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "x-example": -360, + "default": 0 + }, + "in": "query" + }, + { + "name": "background", + "description": "Preview image background color. Only works with transparent images (png). Use a valid HEX color, no # is needed for prefix.", + "required": false, + "schema": { + "type": "string", + "default": "" + }, + "in": "query" + }, + { + "name": "output", + "description": "Output format type (jpeg, jpg, png, gif and webp).", + "required": false, + "schema": { + "type": "string", + "x-example": "jpg", + "enum": [ + "jpg", + "jpeg", + "png", + "webp", + "heic", + "avif", + "gif" + ], + "x-enum-name": "ImageFormat", + "x-enum-keys": [], + "default": "" + }, + "in": "query" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "schema": { + "type": "string", + "x-example": "<TOKEN>", + "default": "" + }, + "in": "query" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of reference passed. Allowed values are: branch, commit", - "x-example": "branch", - "enum": [ - "branch", - "commit", - "tag" - ], - "x-enum-name": "VCSReferenceType", - "x-enum-keys": [] - }, - "reference": { - "type": "string", - "description": "VCS reference to create deployment from. Depending on type this can be: branch name, commit hash", - "x-example": "<REFERENCE>" - }, - "activate": { - "type": "boolean", - "description": "Automatically activate the deployment when it is finished building.", - "x-example": false - } - }, - "required": [ - "type", - "reference" - ] - } - } - } - } + ] } }, - "\/sites\/{siteId}\/deployments\/{deploymentId}": { + "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/view": { "get": { - "summary": "Get deployment", - "operationId": "sitesGetDeployment", + "summary": "Get file for view", + "operationId": "storageGetFileView", "tags": [ - "sites" + "storage" ], - "description": "Get a site deployment by its unique ID.", + "description": "Get a file content by its unique ID. This endpoint is similar to the download method but returns with no 'Content-Disposition: attachment' header.", "responses": { "200": { - "description": "Deployment", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/deployment" - } - } - } + "description": "File" } }, "deprecated": false, "x-appwrite": { - "method": "getDeployment", - "group": "deployments", - "weight": 597, + "method": "getFileView", + "group": "files", + "weight": 608, "cookies": false, - "type": "", - "demo": "sites\/get-deployment.md", + "type": "location", + "demo": "storage\/get-file-view.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": "files.read", "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-view.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", "required": true, "schema": { "type": "string", - "x-example": "<SITE_ID>" + "x-example": "<BUCKET_ID>" }, "in": "path" }, { - "name": "deploymentId", - "description": "Deployment ID.", + "name": "fileId", + "description": "File ID.", "required": true, "schema": { "type": "string", - "x-example": "<DEPLOYMENT_ID>" + "x-example": "<FILE_ID>" }, "in": "path" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "schema": { + "type": "string", + "x-example": "<TOKEN>", + "default": "" + }, + "in": "query" } ] - }, - "delete": { - "summary": "Delete deployment", - "operationId": "sitesDeleteDeployment", + } + }, + "\/tablesdb": { + "get": { + "summary": "List databases", + "operationId": "tablesDBList", "tags": [ - "sites" + "tablesDB" ], - "description": "Delete a site deployment by its unique ID.", + "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Databases List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/databaseList" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteDeployment", - "group": "deployments", - "weight": 600, + "method": "list", + "group": "tablesdb", + "weight": 322, "cookies": false, "type": "", - "demo": "sites\/delete-deployment.md", + "demo": "tablesdb\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "databases.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list.md", "auth": { "Project": [], "Key": [] @@ -26246,60 +31547,80 @@ ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", - "required": true, + "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": "string", - "x-example": "<SITE_ID>" + "type": "array", + "items": { + "type": "string" + }, + "default": [] }, - "in": "path" + "in": "query" }, { - "name": "deploymentId", - "description": "Deployment ID.", - "required": true, + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, "schema": { "type": "string", - "x-example": "<DEPLOYMENT_ID>" + "x-example": "<SEARCH>", + "default": "" }, - "in": "path" + "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", + "x-example": false, + "default": true + }, + "in": "query" } ] - } - }, - "\/sites\/{siteId}\/deployments\/{deploymentId}\/download": { - "get": { - "summary": "Get deployment download", - "operationId": "sitesGetDeploymentDownload", + }, + "post": { + "summary": "Create database", + "operationId": "tablesDBCreate", "tags": [ - "sites" + "tablesDB" ], - "description": "Get a site deployment content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory.", + "description": "Create a new Database.\n", "responses": { - "200": { - "description": "File" + "201": { + "description": "Database", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/database" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "getDeploymentDownload", - "group": "deployments", - "weight": 601, + "method": "create", + "group": "tablesdb", + "weight": 318, "cookies": false, - "type": "location", - "demo": "sites\/get-deployment-download.md", + "type": "", + "demo": "tablesdb\/create.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": "databases.write", "platforms": [ "console", - "server", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create.md", "auth": { "Project": [], "Key": [] @@ -26308,66 +31629,56 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], - "parameters": [ - { - "name": "siteId", - "description": "Site ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<SITE_ID>" - }, - "in": "path" - }, - { - "name": "deploymentId", - "description": "Deployment ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DEPLOYMENT_ID>" - }, - "in": "path" - }, - { - "name": "type", - "description": "Deployment file to download. Can be: \"source\", \"output\".", - "required": false, - "schema": { - "type": "string", - "x-example": "source", - "enum": [ - "source", - "output" - ], - "x-enum-name": "DeploymentDownloadType", - "x-enum-keys": [], - "default": "source" - }, - "in": "query" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "databaseId": { + "type": "string", + "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.", + "x-example": "<DATABASE_ID>" + }, + "name": { + "type": "string", + "description": "Database name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "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.", + "x-example": false + } + }, + "required": [ + "databaseId", + "name" + ] + } + } } - ] + } } }, - "\/sites\/{siteId}\/deployments\/{deploymentId}\/status": { - "patch": { - "summary": "Update deployment status", - "operationId": "sitesUpdateDeploymentStatus", + "\/tablesdb\/transactions": { + "get": { + "summary": "List transactions", + "operationId": "tablesDBListTransactions", "tags": [ - "sites" + "tablesDB" ], - "description": "Cancel an ongoing site deployment build. If the build is already in progress, it will be stopped and marked as canceled. If the build hasn't started yet, it will be marked as canceled without executing. You cannot cancel builds that have already completed (status 'ready') or failed. The response includes the final build status and details.", + "description": "List transactions across all databases.", "responses": { "200": { - "description": "Deployment", + "description": "Transaction List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/deployment" + "$ref": "#\/components\/schemas\/transactionList" } } } @@ -26375,22 +31686,28 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateDeploymentStatus", - "group": "deployments", - "weight": 603, + "method": "listTransactions", + "group": "transactions", + "weight": 389, "cookies": false, "type": "", - "demo": "sites\/update-deployment-status.md", + "demo": "tablesdb\/list-transactions.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": [ + "documents.read", + "rows.read" + ], "platforms": [ "console", + "server", + "client", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-transactions.md", "auth": { "Project": [], "Key": [] @@ -26399,48 +31716,41 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<SITE_ID>" - }, - "in": "path" - }, - { - "name": "deploymentId", - "description": "Deployment ID.", - "required": true, + "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": "string", - "x-example": "<DEPLOYMENT_ID>" + "type": "array", + "items": { + "type": "string" + }, + "default": [] }, - "in": "path" + "in": "query" } ] - } - }, - "\/sites\/{siteId}\/logs": { - "get": { - "summary": "List logs", - "operationId": "sitesListLogs", + }, + "post": { + "summary": "Create transaction", + "operationId": "tablesDBCreateTransaction", "tags": [ - "sites" + "tablesDB" ], - "description": "Get a list of all site logs. You can use the query params to filter your results.", + "description": "Create a new transaction.", "responses": { - "200": { - "description": "Executions List", + "201": { + "description": "Transaction", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/executionList" + "$ref": "#\/components\/schemas\/transaction" } } } @@ -26448,22 +31758,28 @@ }, "deprecated": false, "x-appwrite": { - "method": "listLogs", - "group": "logs", - "weight": 605, + "method": "createTransaction", + "group": "transactions", + "weight": 385, "cookies": false, "type": "", - "demo": "sites\/list-logs.md", + "demo": "tablesdb\/create-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "log.read", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "console", + "server", + "client", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-transaction.md", "auth": { "Project": [], "Key": [] @@ -26472,62 +31788,45 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "Session": [], + "JWT": [] } ], - "parameters": [ - { - "name": "siteId", - "description": "Site ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<SITE_ID>" - }, - "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", - "x-example": false, - "default": true - }, - "in": "query" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ttl": { + "type": "integer", + "description": "Seconds before the transaction expires.", + "x-example": 60, + "format": "int32" + } + } + } + } } - ] + } } }, - "\/sites\/{siteId}\/logs\/{logId}": { + "\/tablesdb\/transactions\/{transactionId}": { "get": { - "summary": "Get log", - "operationId": "sitesGetLog", + "summary": "Get transaction", + "operationId": "tablesDBGetTransaction", "tags": [ - "sites" + "tablesDB" ], - "description": "Get a site request log by its unique ID.", + "description": "Get a transaction by its unique ID.", "responses": { "200": { - "description": "Execution", + "description": "Transaction", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/execution" + "$ref": "#\/components\/schemas\/transaction" } } } @@ -26535,22 +31834,28 @@ }, "deprecated": false, "x-appwrite": { - "method": "getLog", - "group": "logs", - "weight": 604, + "method": "getTransaction", + "group": "transactions", + "weight": 386, "cookies": false, "type": "", - "demo": "sites\/get-log.md", + "demo": "tablesdb\/get-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "log.read", + "scope": [ + "documents.read", + "rows.read" + ], "platforms": [ "console", + "server", + "client", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-transaction.md", "auth": { "Project": [], "Key": [] @@ -26559,62 +31864,67 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<SITE_ID>" - }, - "in": "path" - }, - { - "name": "logId", - "description": "Log ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "schema": { "type": "string", - "x-example": "<LOG_ID>" + "x-example": "<TRANSACTION_ID>" }, "in": "path" } ] }, - "delete": { - "summary": "Delete log", - "operationId": "sitesDeleteLog", + "patch": { + "summary": "Update transaction", + "operationId": "tablesDBUpdateTransaction", "tags": [ - "sites" + "tablesDB" ], - "description": "Delete a site log by its unique ID.", + "description": "Update a transaction, to either commit or roll back its operations.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteLog", - "group": "logs", - "weight": 606, + "method": "updateTransaction", + "group": "transactions", + "weight": 387, "cookies": false, "type": "", - "demo": "sites\/delete-log.md", + "demo": "tablesdb\/update-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "log.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "console", + "server", + "client", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-transaction.md", "auth": { "Project": [], "Key": [] @@ -26623,71 +31933,81 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<SITE_ID>" - }, - "in": "path" - }, - { - "name": "logId", - "description": "Log ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "schema": { "type": "string", - "x-example": "<LOG_ID>" + "x-example": "<TRANSACTION_ID>" }, "in": "path" } - ] - } - }, - "\/sites\/{siteId}\/variables": { - "get": { - "summary": "List variables", - "operationId": "sitesListVariables", - "tags": [ - "sites" ], - "description": "Get a list of all variables of a specific site.", - "responses": { - "200": { - "description": "Variables List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/variableList" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "commit": { + "type": "boolean", + "description": "Commit transaction?", + "x-example": false + }, + "rollback": { + "type": "boolean", + "description": "Rollback transaction?", + "x-example": false + } } } } } + } + }, + "delete": { + "summary": "Delete transaction", + "operationId": "tablesDBDeleteTransaction", + "tags": [ + "tablesDB" + ], + "description": "Delete a transaction by its unique ID.", + "responses": { + "204": { + "description": "No content" + } }, "deprecated": false, "x-appwrite": { - "method": "listVariables", - "group": "variables", - "weight": 609, + "method": "deleteTransaction", + "group": "transactions", + "weight": 388, "cookies": false, "type": "", - "demo": "sites\/list-variables.md", + "demo": "tablesdb\/delete-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "console", + "server", + "client", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-transaction.md", "auth": { "Project": [], "Key": [] @@ -26696,36 +32016,40 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site unique ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "schema": { "type": "string", - "x-example": "<SITE_ID>" + "x-example": "<TRANSACTION_ID>" }, "in": "path" } ] - }, + } + }, + "\/tablesdb\/transactions\/{transactionId}\/operations": { "post": { - "summary": "Create variable", - "operationId": "sitesCreateVariable", + "summary": "Create operations", + "operationId": "tablesDBCreateOperations", "tags": [ - "sites" + "tablesDB" ], - "description": "Create a new site variable. These variables can be accessed during build and runtime (server-side rendering) as environment variables.", + "description": "Create multiple operations in a single transaction.", "responses": { "201": { - "description": "Variable", + "description": "Transaction", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/variable" + "$ref": "#\/components\/schemas\/transaction" } } } @@ -26733,22 +32057,28 @@ }, "deprecated": false, "x-appwrite": { - "method": "createVariable", - "group": "variables", - "weight": 607, + "method": "createOperations", + "group": "transactions", + "weight": 390, "cookies": false, "type": "", - "demo": "sites\/create-variable.md", + "demo": "tablesdb\/create-operations.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "console", + "server", + "client", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-operations.md", "auth": { "Project": [], "Key": [] @@ -26757,17 +32087,19 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site unique ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "schema": { "type": "string", - "x-example": "<SITE_ID>" + "x-example": "<TRANSACTION_ID>" }, "in": "path" } @@ -26778,47 +32110,36 @@ "schema": { "type": "object", "properties": { - "key": { - "type": "string", - "description": "Variable key. Max length: 255 chars.", - "x-example": "<KEY>" - }, - "value": { - "type": "string", - "description": "Variable value. Max length: 8192 chars.", - "x-example": "<VALUE>" - }, - "secret": { - "type": "boolean", - "description": "Secret variables can be updated or deleted, but only sites can read them during build and runtime.", - "x-example": false + "operations": { + "type": "array", + "description": "Array of staged operations.", + "x-example": "[\n\t {\n\t \"action\": \"create\",\n\t \"databaseId\": \"<DATABASE_ID>\",\n\t \"tableId\": \"<TABLE_ID>\",\n\t \"rowId\": \"<ROW_ID>\",\n\t \"data\": {\n\t \"name\": \"Walter O'Brien\"\n\t }\n\t }\n\t]", + "items": { + "type": "object" + } } - }, - "required": [ - "key", - "value" - ] + } } } } } } }, - "\/sites\/{siteId}\/variables\/{variableId}": { + "\/tablesdb\/{databaseId}": { "get": { - "summary": "Get variable", - "operationId": "sitesGetVariable", + "summary": "Get database", + "operationId": "tablesDBGet", "tags": [ - "sites" + "tablesDB" ], - "description": "Get a variable by its unique ID.", + "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", "responses": { "200": { - "description": "Variable", + "description": "Database", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/variable" + "$ref": "#\/components\/schemas\/database" } } } @@ -26826,22 +32147,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "getVariable", - "group": "variables", - "weight": 608, + "method": "get", + "group": "tablesdb", + "weight": 319, "cookies": false, "type": "", - "demo": "sites\/get-variable.md", + "demo": "tablesdb\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": "databases.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get.md", "auth": { "Project": [], "Key": [] @@ -26855,41 +32177,31 @@ ], "parameters": [ { - "name": "siteId", - "description": "Site unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<SITE_ID>" - }, - "in": "path" - }, - { - "name": "variableId", - "description": "Variable unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<VARIABLE_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } ] }, "put": { - "summary": "Update variable", - "operationId": "sitesUpdateVariable", + "summary": "Update database", + "operationId": "tablesDBUpdate", "tags": [ - "sites" + "tablesDB" ], - "description": "Update variable by its unique ID.", + "description": "Update a database by its unique ID.", "responses": { "200": { - "description": "Variable", + "description": "Database", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/variable" + "$ref": "#\/components\/schemas\/database" } } } @@ -26897,22 +32209,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateVariable", - "group": "variables", - "weight": 610, + "method": "update", + "group": "tablesdb", + "weight": 320, "cookies": false, "type": "", - "demo": "sites\/update-variable.md", + "demo": "tablesdb\/update.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update.md", "auth": { "Project": [], "Key": [] @@ -26926,22 +32239,12 @@ ], "parameters": [ { - "name": "siteId", - "description": "Site unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<SITE_ID>" - }, - "in": "path" - }, - { - "name": "variableId", - "description": "Variable unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<VARIABLE_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } @@ -26952,39 +32255,29 @@ "schema": { "type": "object", "properties": { - "key": { - "type": "string", - "description": "Variable key. Max length: 255 chars.", - "x-example": "<KEY>" - }, - "value": { + "name": { "type": "string", - "description": "Variable value. Max length: 8192 chars.", - "x-example": "<VALUE>", - "x-nullable": true + "description": "Database name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "secret": { + "enabled": { "type": "boolean", - "description": "Secret variables can be updated or deleted, but only sites can read them during build and runtime.", - "x-example": false, - "x-nullable": true + "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.", + "x-example": false } - }, - "required": [ - "key" - ] + } } } } } }, "delete": { - "summary": "Delete variable", - "operationId": "sitesDeleteVariable", + "summary": "Delete database", + "operationId": "tablesDBDelete", "tags": [ - "sites" + "tablesDB" ], - "description": "Delete a variable by its unique ID.", + "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" @@ -26992,22 +32285,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteVariable", - "group": "variables", - "weight": 611, + "method": "delete", + "group": "tablesdb", + "weight": 321, "cookies": false, "type": "", - "demo": "sites\/delete-variable.md", + "demo": "tablesdb\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete.md", "auth": { "Project": [], "Key": [] @@ -27021,43 +32315,33 @@ ], "parameters": [ { - "name": "siteId", - "description": "Site unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<SITE_ID>" - }, - "in": "path" - }, - { - "name": "variableId", - "description": "Variable unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<VARIABLE_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } ] } }, - "\/storage\/buckets": { + "\/tablesdb\/{databaseId}\/tables": { "get": { - "summary": "List buckets", - "operationId": "storageListBuckets", + "summary": "List tables", + "operationId": "tablesDBListTables", "tags": [ - "storage" + "tablesDB" ], - "description": "Get a list of all the storage buckets. You can use the query params to filter your results.", + "description": "Get a list of all tables that belong to the provided databaseId. You can use the search parameter to filter your results.", "responses": { "200": { - "description": "Buckets List", + "description": "Tables List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/bucketList" + "$ref": "#\/components\/schemas\/tableList" } } } @@ -27065,23 +32349,26 @@ }, "deprecated": false, "x-appwrite": { - "method": "listBuckets", - "group": "buckets", - "weight": 530, + "method": "listTables", + "group": "tables", + "weight": 329, "cookies": false, "type": "", - "demo": "storage\/list-buckets.md", + "demo": "tablesdb\/list-tables.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "buckets.read", + "scope": [ + "tables.read", + "collections.read" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/list-buckets.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-tables.md", "auth": { "Project": [], "Key": [] @@ -27094,9 +32381,19 @@ } ], "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "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: enabled, name, fileSecurity, maximumFileSize, encryption, antivirus, transformations", + "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, enabled, rowSecurity", "required": false, "schema": { "type": "array", @@ -27132,156 +32429,19 @@ ] }, "post": { - "summary": "Create bucket", - "operationId": "storageCreateBucket", + "summary": "Create table", + "operationId": "tablesDBCreateTable", "tags": [ - "storage" + "tablesDB" ], - "description": "Create a new storage bucket.", + "description": "Create a new Table. Before using this route, you should create a new database resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", "responses": { "201": { - "description": "Bucket", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/bucket" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "createBucket", - "group": "buckets", - "weight": 528, - "cookies": false, - "type": "", - "demo": "storage\/create-bucket.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "buckets.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/create-bucket.md", - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "bucketId": { - "type": "string", - "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.", - "x-example": "<BUCKET_ID>" - }, - "name": { - "type": "string", - "description": "Bucket name", - "x-example": "<NAME>" - }, - "permissions": { - "type": "array", - "description": "An array of permission strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "x-example": "[\"read(\"any\")\"]", - "items": { - "type": "string" - }, - "x-nullable": true - }, - "fileSecurity": { - "type": "boolean", - "description": "Enables configuring permissions for individual file. A user needs one of file or bucket level permissions to access a file. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "x-example": false - }, - "enabled": { - "type": "boolean", - "description": "Is bucket enabled? When set to 'disabled', users cannot access the files in this bucket but Server SDKs with and API key can still access the bucket. No files are lost when this is toggled.", - "x-example": false - }, - "maximumFileSize": { - "type": "integer", - "description": "Maximum file size allowed in bytes. Maximum allowed value is 5GB.", - "x-example": 1, - "format": "int32" - }, - "allowedFileExtensions": { - "type": "array", - "description": "Allowed file extensions. Maximum of 100 extensions are allowed, each 64 characters long.", - "x-example": null, - "items": { - "type": "string" - } - }, - "compression": { - "type": "string", - "description": "Compression algorithm chosen for compression. Can be one of none, [gzip](https:\/\/en.wikipedia.org\/wiki\/Gzip), or [zstd](https:\/\/en.wikipedia.org\/wiki\/Zstd), For file size above 20MB compression is skipped even if it's enabled", - "x-example": "none", - "enum": [ - "none", - "gzip", - "zstd" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "encryption": { - "type": "boolean", - "description": "Is encryption enabled? For file size above 20MB encryption is skipped even if it's enabled", - "x-example": false - }, - "antivirus": { - "type": "boolean", - "description": "Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled", - "x-example": false - }, - "transformations": { - "type": "boolean", - "description": "Are image transformations enabled?", - "x-example": false - } - }, - "required": [ - "bucketId", - "name" - ] - } - } - } - } - } - }, - "\/storage\/buckets\/{bucketId}": { - "get": { - "summary": "Get bucket", - "operationId": "storageGetBucket", - "tags": [ - "storage" - ], - "description": "Get a storage bucket by its unique ID. This endpoint response returns a JSON object with the storage bucket metadata.", - "responses": { - "200": { - "description": "Bucket", + "description": "Table", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/bucket" + "$ref": "#\/components\/schemas\/table" } } } @@ -27289,85 +32449,26 @@ }, "deprecated": false, "x-appwrite": { - "method": "getBucket", - "group": "buckets", - "weight": 529, + "method": "createTable", + "group": "tables", + "weight": 325, "cookies": false, "type": "", - "demo": "storage\/get-bucket.md", + "demo": "tablesdb\/create-table.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "buckets.read", - "platforms": [ - "console", - "server" + "scope": [ + "tables.write", + "collections.write" ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-bucket.md", - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "bucketId", - "description": "Bucket unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<BUCKET_ID>" - }, - "in": "path" - } - ] - }, - "put": { - "summary": "Update bucket", - "operationId": "storageUpdateBucket", - "tags": [ - "storage" - ], - "description": "Update a storage bucket by its unique ID.", - "responses": { - "200": { - "description": "Bucket", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/bucket" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "updateBucket", - "group": "buckets", - "weight": 531, - "cookies": false, - "type": "", - "demo": "storage\/update-bucket.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "buckets.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/update-bucket.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-table.md", "auth": { "Project": [], "Key": [] @@ -27381,12 +32482,12 @@ ], "parameters": [ { - "name": "bucketId", - "description": "Bucket unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<BUCKET_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } @@ -27397,151 +32498,77 @@ "schema": { "type": "object", "properties": { + "tableId": { + "type": "string", + "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.", + "x-example": "<TABLE_ID>" + }, "name": { "type": "string", - "description": "Bucket name", + "description": "Table name. Max length: 128 chars.", "x-example": "<NAME>" }, "permissions": { "type": "array", - "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/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).", "x-example": "[\"read(\"any\")\"]", "items": { "type": "string" }, "x-nullable": true }, - "fileSecurity": { + "rowSecurity": { "type": "boolean", - "description": "Enables configuring permissions for individual file. A user needs one of file or bucket level permissions to access a file. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "description": "Enables configuring permissions for individual rows. A user needs one of row or table level permissions to access a row. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", "x-example": false }, "enabled": { "type": "boolean", - "description": "Is bucket enabled? When set to 'disabled', users cannot access the files in this bucket but Server SDKs with and API key can still access the bucket. No files are lost when this is toggled.", + "description": "Is table enabled? When set to 'disabled', users cannot access the table but Server SDKs with and API key can still read and write to the table. No data is lost when this is toggled.", "x-example": false }, - "maximumFileSize": { - "type": "integer", - "description": "Maximum file size allowed in bytes. Maximum allowed value is 5GB.", - "x-example": 1, - "format": "int32" - }, - "allowedFileExtensions": { + "columns": { "type": "array", - "description": "Allowed file extensions. Maximum of 100 extensions are allowed, each 64 characters long.", + "description": "Array of column definitions to create. Each column should contain: key (string), type (string: string, integer, float, boolean, datetime, relationship), size (integer, required for string type), required (boolean, optional), default (mixed, optional), array (boolean, optional), and type-specific options.", "x-example": null, "items": { - "type": "string" + "type": "object" } }, - "compression": { - "type": "string", - "description": "Compression algorithm chosen for compression. Can be one of none, [gzip](https:\/\/en.wikipedia.org\/wiki\/Gzip), or [zstd](https:\/\/en.wikipedia.org\/wiki\/Zstd), For file size above 20MB compression is skipped even if it's enabled", - "x-example": "none", - "enum": [ - "none", - "gzip", - "zstd" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "encryption": { - "type": "boolean", - "description": "Is encryption enabled? For file size above 20MB encryption is skipped even if it's enabled", - "x-example": false - }, - "antivirus": { - "type": "boolean", - "description": "Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled", - "x-example": false - }, - "transformations": { - "type": "boolean", - "description": "Are image transformations enabled?", - "x-example": false + "indexes": { + "type": "array", + "description": "Array of index definitions to create. Each index should contain: key (string), type (string: key, fulltext, unique, spatial), attributes (array of column keys), orders (array of ASC\/DESC, optional), and lengths (array of integers, optional).", + "x-example": null, + "items": { + "type": "object" + } } }, "required": [ + "tableId", "name" ] } } } } - }, - "delete": { - "summary": "Delete bucket", - "operationId": "storageDeleteBucket", - "tags": [ - "storage" - ], - "description": "Delete a storage bucket by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "method": "deleteBucket", - "group": "buckets", - "weight": 532, - "cookies": false, - "type": "", - "demo": "storage\/delete-bucket.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "buckets.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/delete-bucket.md", - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "bucketId", - "description": "Bucket unique ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<BUCKET_ID>" - }, - "in": "path" - } - ] } }, - "\/storage\/buckets\/{bucketId}\/files": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}": { "get": { - "summary": "List files", - "operationId": "storageListFiles", + "summary": "Get table", + "operationId": "tablesDBGetTable", "tags": [ - "storage" + "tablesDB" ], - "description": "Get a list of all the user files. You can use the query params to filter your results.", + "description": "Get a table by its unique ID. This endpoint response returns a JSON object with the table metadata.", "responses": { "200": { - "description": "Files List", + "description": "Table", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/fileList" + "$ref": "#\/components\/schemas\/table" } } } @@ -27549,100 +32576,74 @@ }, "deprecated": false, "x-appwrite": { - "method": "listFiles", - "group": "files", - "weight": 535, + "method": "getTable", + "group": "tables", + "weight": 326, "cookies": false, "type": "", - "demo": "storage\/list-files.md", + "demo": "tablesdb\/get-table.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", + "scope": [ + "tables.read", + "collections.read" + ], "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/list-files.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-table.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<BUCKET_ID>" + "x-example": "<DATABASE_ID>" }, "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, signature, mimeType, sizeOriginal, chunksTotal, chunksUploaded", - "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, + "name": "tableId", + "description": "Table ID.", + "required": true, "schema": { "type": "string", - "x-example": "<SEARCH>", - "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", - "x-example": false, - "default": true + "x-example": "<TABLE_ID>" }, - "in": "query" + "in": "path" } ] }, - "post": { - "summary": "Create file", - "operationId": "storageCreateFile", + "put": { + "summary": "Update table", + "operationId": "tablesDBUpdateTable", "tags": [ - "storage" + "tablesDB" ], - "description": "Create a new file. Before using this route, you should create a new bucket resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/storage#storageCreateBucket) API or directly from your Appwrite console.\n\nLarger files should be uploaded using multiple requests with the [content-range](https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTTP\/Headers\/Content-Range) header to send a partial request with a maximum supported chunk of `5MB`. The `content-range` header values should always be in bytes.\n\nWhen the first request is sent, the server will return the **File** object, and the subsequent part request must include the file's **id** in `x-appwrite-id` header to allow the server to know that the partial upload is for the existing file and not for a new one.\n\nIf you're creating a new file using one of the Appwrite SDKs, all the chunking logic will be managed by the SDK internally.\n", + "description": "Update a table by its unique ID.", "responses": { - "201": { - "description": "File", + "200": { + "description": "Table", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/file" + "$ref": "#\/components\/schemas\/table" } } } @@ -27650,179 +32651,179 @@ }, "deprecated": false, "x-appwrite": { - "method": "createFile", - "group": "files", - "weight": 781, + "method": "updateTable", + "group": "tables", + "weight": 327, "cookies": false, - "type": "upload", - "demo": "storage\/create-file.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId},chunkId:{chunkId}", - "scope": "files.write", + "type": "", + "demo": "tablesdb\/update-table.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/create-file.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-table.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<BUCKET_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TABLE_ID>" }, "in": "path" } ], "requestBody": { "content": { - "multipart\/form-data": { + "application\/json": { "schema": { "type": "object", "properties": { - "fileId": { - "type": "string", - "description": "File 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.", - "x-example": "<FILE_ID>", - "x-upload-id": true - }, - "file": { + "name": { "type": "string", - "description": "Binary file. Appwrite SDKs provide helpers to handle file input. [Learn about file input](https:\/\/appwrite.io\/docs\/products\/storage\/upload-download#input-file).", - "x-example": null, - "format": "binary" + "description": "Table name. Max length: 128 chars.", + "x-example": "<NAME>" }, "permissions": { "type": "array", - "description": "An array of permission strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", "x-example": "[\"read(\"any\")\"]", "items": { "type": "string" }, "x-nullable": true + }, + "rowSecurity": { + "type": "boolean", + "description": "Enables configuring permissions for individual rows. A user needs one of row or table-level permissions to access a row. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": false + }, + "enabled": { + "type": "boolean", + "description": "Is table enabled? When set to 'disabled', users cannot access the table but Server SDKs with and API key can still read and write to the table. No data is lost when this is toggled.", + "x-example": false } - }, - "required": [ - "fileId", - "file" - ] + } } } } } - } - }, - "\/storage\/buckets\/{bucketId}\/files\/{fileId}": { - "get": { - "summary": "Get file", - "operationId": "storageGetFile", + }, + "delete": { + "summary": "Delete table", + "operationId": "tablesDBDeleteTable", "tags": [ - "storage" + "tablesDB" ], - "description": "Get a file by its unique ID. This endpoint response returns a JSON object with the file metadata.", + "description": "Delete a table by its unique ID. Only users with write permissions have access to delete this resource.", "responses": { - "200": { - "description": "File", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/file" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "getFile", - "group": "files", - "weight": 534, + "method": "deleteTable", + "group": "tables", + "weight": 328, "cookies": false, "type": "", - "demo": "storage\/get-file.md", + "demo": "tablesdb\/delete-table.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-table.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<BUCKET_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" }, { - "name": "fileId", - "description": "File ID.", + "name": "tableId", + "description": "Table ID.", "required": true, "schema": { "type": "string", - "x-example": "<FILE_ID>" + "x-example": "<TABLE_ID>" }, "in": "path" } ] - }, - "put": { - "summary": "Update file", - "operationId": "storageUpdateFile", + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns": { + "get": { + "summary": "List columns", + "operationId": "tablesDBListColumns", "tags": [ - "storage" + "tablesDB" ], - "description": "Update a file by its unique ID. Only users with write permissions have access to update this resource.", + "description": "List columns in the table.", "responses": { "200": { - "description": "File", + "description": "Columns List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/file" + "$ref": "#\/components\/schemas\/columnList" } } } @@ -27830,567 +32831,562 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateFile", - "group": "files", - "weight": 536, + "method": "listColumns", + "group": "columns", + "weight": 334, "cookies": false, "type": "", - "demo": "storage\/update-file.md", + "demo": "tablesdb\/list-columns.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "files.write", + "scope": [ + "tables.read", + "collections.read" + ], "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/update-file.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-columns.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "bucketId", - "description": "Bucket unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<BUCKET_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" }, { - "name": "fileId", - "description": "File ID.", + "name": "tableId", + "description": "Table ID.", "required": true, "schema": { "type": "string", - "x-example": "<FILE_ID>" + "x-example": "<TABLE_ID>" }, "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 columns: 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", + "x-example": false, + "default": true + }, + "in": "query" } + ] + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/boolean": { + "post": { + "summary": "Create boolean column", + "operationId": "tablesDBCreateBooleanColumn", + "tags": [ + "tablesDB" ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "File name.", - "x-example": "<NAME>" - }, - "permissions": { - "type": "array", - "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "x-example": "[\"read(\"any\")\"]", - "items": { - "type": "string" - }, - "x-nullable": true - } + "description": "Create a boolean column.\n", + "responses": { + "202": { + "description": "ColumnBoolean", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnBoolean" } } } } - } - }, - "delete": { - "summary": "Delete file", - "operationId": "storageDeleteFile", - "tags": [ - "storage" - ], - "description": "Delete a file by its unique ID. Only users with write permissions have access to delete this resource.", - "responses": { - "204": { - "description": "No content" - } }, "deprecated": false, "x-appwrite": { - "method": "deleteFile", - "group": "files", - "weight": 537, + "method": "createBooleanColumn", + "group": "columns", + "weight": 335, "cookies": false, "type": "", - "demo": "storage\/delete-file.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "files.write", + "demo": "tablesdb\/create-boolean-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/delete-file.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-boolean-column.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<BUCKET_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" }, { - "name": "fileId", - "description": "File ID.", + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "schema": { "type": "string", - "x-example": "<FILE_ID>" + "x-example": "<TABLE_ID>" }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "x-example": null + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false + }, + "default": { + "type": "boolean", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "x-example": false, + "x-nullable": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "x-example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } } }, - "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/download": { - "get": { - "summary": "Get file for download", - "operationId": "storageGetFileDownload", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/boolean\/{key}": { + "patch": { + "summary": "Update boolean column", + "operationId": "tablesDBUpdateBooleanColumn", "tags": [ - "storage" + "tablesDB" ], - "description": "Get a file 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.", + "description": "Update a boolean column. Changing the `default` value will not update already existing rows.", "responses": { "200": { - "description": "File" + "description": "ColumnBoolean", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnBoolean" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "getFileDownload", - "group": "files", - "weight": 539, + "method": "updateBooleanColumn", + "group": "columns", + "weight": 336, "cookies": false, - "type": "location", - "demo": "storage\/get-file-download.md", + "type": "", + "demo": "tablesdb\/update-boolean-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-download.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-boolean-column.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "bucketId", - "description": "Storage bucket ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<BUCKET_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" }, { - "name": "fileId", - "description": "File ID.", + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "schema": { "type": "string", - "x-example": "<FILE_ID>" + "x-example": "<TABLE_ID>" }, "in": "path" }, { - "name": "token", - "description": "File token for accessing this file.", - "required": false, + "name": "key", + "description": "Column Key.", + "required": true, "schema": { - "type": "string", - "x-example": "<TOKEN>", - "default": "" + "type": "string" }, - "in": "query" + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false + }, + "default": { + "type": "boolean", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "x-example": false, + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } } - ] + } } }, - "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/preview": { - "get": { - "summary": "Get file preview", - "operationId": "storageGetFilePreview", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/datetime": { + "post": { + "summary": "Create datetime column", + "operationId": "tablesDBCreateDatetimeColumn", "tags": [ - "storage" + "tablesDB" ], - "description": "Get a file preview image. Currently, this method supports preview for image files (jpg, png, and gif), other supported formats, like pdf, docs, slides, and spreadsheets, will return the file icon image. You can also pass query string arguments for cutting and resizing your preview image. Preview is supported only for image files smaller than 10MB.", + "description": "Create a date time column according to the ISO 8601 standard.", "responses": { - "200": { - "description": "Image" + "202": { + "description": "ColumnDatetime", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnDatetime" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "getFilePreview", - "group": "files", - "weight": 538, + "method": "createDatetimeColumn", + "group": "columns", + "weight": 337, "cookies": false, - "type": "location", - "demo": "storage\/get-file-preview.md", + "type": "", + "demo": "tablesdb\/create-datetime-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-preview.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-datetime-column.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<BUCKET_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" }, { - "name": "fileId", - "description": "File ID", + "name": "tableId", + "description": "Table ID.", "required": true, "schema": { "type": "string", - "x-example": "<FILE_ID>" + "x-example": "<TABLE_ID>" }, "in": "path" - }, - { - "name": "width", - "description": "Resize preview image width, Pass an integer between 0 to 4000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "x-example": 0, - "default": 0 - }, - "in": "query" - }, - { - "name": "height", - "description": "Resize preview image height, Pass an integer between 0 to 4000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "x-example": 0, - "default": 0 - }, - "in": "query" - }, - { - "name": "gravity", - "description": "Image crop gravity. Can be one of center,top-left,top,top-right,left,right,bottom-left,bottom,bottom-right", - "required": false, - "schema": { - "type": "string", - "x-example": "center", - "enum": [ - "center", - "top-left", - "top", - "top-right", - "left", - "right", - "bottom-left", - "bottom", - "bottom-right" - ], - "x-enum-name": "ImageGravity", - "x-enum-keys": [], - "default": "center" - }, - "in": "query" - }, - { - "name": "quality", - "description": "Preview image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "x-example": -1, - "default": -1 - }, - "in": "query" - }, - { - "name": "borderWidth", - "description": "Preview image border in pixels. Pass an integer between 0 to 100. Defaults to 0.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "x-example": 0, - "default": 0 - }, - "in": "query" - }, - { - "name": "borderColor", - "description": "Preview image border color. Use a valid HEX color, no # is needed for prefix.", - "required": false, - "schema": { - "type": "string", - "default": "" - }, - "in": "query" - }, - { - "name": "borderRadius", - "description": "Preview image border radius in pixels. Pass an integer between 0 to 4000.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "x-example": 0, - "default": 0 - }, - "in": "query" - }, - { - "name": "opacity", - "description": "Preview image opacity. Only works with images having an alpha channel (like png). Pass a number between 0 to 1.", - "required": false, - "schema": { - "type": "number", - "format": "float", - "x-example": 0, - "default": 1 - }, - "in": "query" - }, - { - "name": "rotation", - "description": "Preview image rotation in degrees. Pass an integer between -360 and 360.", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "x-example": -360, - "default": 0 - }, - "in": "query" - }, - { - "name": "background", - "description": "Preview image background color. Only works with transparent images (png). Use a valid HEX color, no # is needed for prefix.", - "required": false, - "schema": { - "type": "string", - "default": "" - }, - "in": "query" - }, - { - "name": "output", - "description": "Output format type (jpeg, jpg, png, gif and webp).", - "required": false, - "schema": { - "type": "string", - "x-example": "jpg", - "enum": [ - "jpg", - "jpeg", - "png", - "webp", - "heic", - "avif", - "gif" - ], - "x-enum-name": "ImageFormat", - "x-enum-keys": [], - "default": "" - }, - "in": "query" - }, - { - "name": "token", - "description": "File token for accessing this file.", - "required": false, - "schema": { - "type": "string", - "x-example": "<TOKEN>", - "default": "" - }, - "in": "query" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "x-example": null + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false + }, + "default": { + "type": "string", + "description": "Default value for the column in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Cannot be set when column is required.", + "x-example": null, + "x-nullable": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "x-example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } } }, - "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/view": { - "get": { - "summary": "Get file for view", - "operationId": "storageGetFileView", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/datetime\/{key}": { + "patch": { + "summary": "Update dateTime column", + "operationId": "tablesDBUpdateDatetimeColumn", "tags": [ - "storage" + "tablesDB" ], - "description": "Get a file content by its unique ID. This endpoint is similar to the download method but returns with no 'Content-Disposition: attachment' header.", + "description": "Update a date time column. Changing the `default` value will not update already existing rows.", "responses": { "200": { - "description": "File" + "description": "ColumnDatetime", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnDatetime" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "getFileView", - "group": "files", - "weight": 540, + "method": "updateDatetimeColumn", + "group": "columns", + "weight": 338, "cookies": false, - "type": "location", - "demo": "storage\/get-file-view.md", + "type": "", + "demo": "tablesdb\/update-datetime-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-view.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-datetime-column.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<BUCKET_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" }, { - "name": "fileId", - "description": "File ID.", + "name": "tableId", + "description": "Table ID.", "required": true, "schema": { "type": "string", - "x-example": "<FILE_ID>" + "x-example": "<TABLE_ID>" }, "in": "path" }, { - "name": "token", - "description": "File token for accessing this file.", - "required": false, + "name": "key", + "description": "Column Key.", + "required": true, "schema": { - "type": "string", - "x-example": "<TOKEN>", - "default": "" + "type": "string" }, - "in": "query" + "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "x-example": null, + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } } }, - "\/tablesdb": { - "get": { - "summary": "List databases", - "operationId": "tablesDBList", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/email": { + "post": { + "summary": "Create email column", + "operationId": "tablesDBCreateEmailColumn", "tags": [ "tablesDB" ], - "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.", + "description": "Create an email column.\n", "responses": { - "200": { - "description": "Databases List", + "202": { + "description": "ColumnEmail", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/databaseList" + "$ref": "#\/components\/schemas\/columnEmail" } } } @@ -28398,23 +33394,26 @@ }, "deprecated": false, "x-appwrite": { - "method": "list", - "group": "tablesdb", - "weight": 338, + "method": "createEmailColumn", + "group": "columns", + "weight": 339, "cookies": false, "type": "", - "demo": "tablesdb\/list.md", + "demo": "tablesdb\/create-email-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-email-column.md", "auth": { "Project": [], "Key": [] @@ -28428,56 +33427,80 @@ ], "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": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, + "name": "databaseId", + "description": "Database ID.", + "required": true, "schema": { "type": "string", - "x-example": "<SEARCH>", - "default": "" + "x-example": "<DATABASE_ID>" }, - "in": "query" + "in": "path" }, { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, + "name": "tableId", + "description": "Table ID.", + "required": true, "schema": { - "type": "boolean", - "x-example": false, - "default": true + "type": "string", + "x-example": "<TABLE_ID>" }, - "in": "query" + "in": "path" } - ] - }, - "post": { - "summary": "Create database", - "operationId": "tablesDBCreate", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "x-example": null + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "x-example": "email@example.com", + "format": "email", + "x-nullable": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "x-example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/email\/{key}": { + "patch": { + "summary": "Update email column", + "operationId": "tablesDBUpdateEmailColumn", "tags": [ "tablesDB" ], - "description": "Create a new Database.\n", + "description": "Update an email column. Changing the `default` value will not update already existing rows.\n", "responses": { - "201": { - "description": "Database", + "200": { + "description": "ColumnEmail", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/database" + "$ref": "#\/components\/schemas\/columnEmail" } } } @@ -28485,23 +33508,26 @@ }, "deprecated": false, "x-appwrite": { - "method": "create", - "group": "tablesdb", - "weight": 334, + "method": "updateEmailColumn", + "group": "columns", + "weight": 340, "cookies": false, "type": "", - "demo": "tablesdb\/create.md", + "demo": "tablesdb\/update-email-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-email-column.md", "auth": { "Project": [], "Key": [] @@ -28513,31 +33539,65 @@ "Key": [] } ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "databaseId": { - "type": "string", - "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.", - "x-example": "<DATABASE_ID>" + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false }, - "name": { + "default": { "type": "string", - "description": "Database name. Max length: 128 chars.", - "x-example": "<NAME>" + "description": "Default value for column when not provided. Cannot be set when column is required.", + "x-example": "email@example.com", + "format": "email", + "x-nullable": true }, - "enabled": { - "type": "boolean", - "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.", - "x-example": false + "newKey": { + "type": "string", + "description": "New Column Key.", + "x-example": null, + "x-nullable": true } }, "required": [ - "databaseId", - "name" + "required", + "default" ] } } @@ -28545,21 +33605,21 @@ } } }, - "\/tablesdb\/transactions": { - "get": { - "summary": "List transactions", - "operationId": "tablesDBListTransactions", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/enum": { + "post": { + "summary": "Create enum column", + "operationId": "tablesDBCreateEnumColumn", "tags": [ "tablesDB" ], - "description": "List transactions across all databases.", + "description": "Create an enumeration column. The `elements` param acts as a white-list of accepted values for this column.", "responses": { - "200": { - "description": "Transaction List", + "202": { + "description": "ColumnEnum", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/transactionList" + "$ref": "#\/components\/schemas\/columnEnum" } } } @@ -28567,28 +33627,26 @@ }, "deprecated": false, "x-appwrite": { - "method": "listTransactions", - "group": "transactions", - "weight": 405, + "method": "createEnumColumn", + "group": "columns", + "weight": 341, "cookies": false, "type": "", - "demo": "tablesdb\/list-transactions.md", + "demo": "tablesdb\/create-enum-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "documents.read", - "rows.read" + "tables.write", + "collections.write" ], "platforms": [ "console", - "server", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-transactions.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-enum-column.md", "auth": { "Project": [], "Key": [] @@ -28597,41 +33655,93 @@ "security": [ { "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "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).", - "required": false, + "name": "databaseId", + "description": "Database ID.", + "required": true, "schema": { - "type": "array", - "items": { - "type": "string" - }, - "default": [] + "type": "string", + "x-example": "<DATABASE_ID>" }, - "in": "query" + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TABLE_ID>" + }, + "in": "path" } - ] - }, - "post": { - "summary": "Create transaction", - "operationId": "tablesDBCreateTransaction", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "x-example": null + }, + "elements": { + "type": "array", + "description": "Array of enum values.", + "x-example": null, + "items": { + "type": "string" + } + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "x-example": "<DEFAULT>", + "x-nullable": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "x-example": false + } + }, + "required": [ + "key", + "elements", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/enum\/{key}": { + "patch": { + "summary": "Update enum column", + "operationId": "tablesDBUpdateEnumColumn", "tags": [ "tablesDB" ], - "description": "Create a new transaction.", + "description": "Update an enum column. Changing the `default` value will not update already existing rows.\n", "responses": { - "201": { - "description": "Transaction", + "200": { + "description": "ColumnEnum", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/transaction" + "$ref": "#\/components\/schemas\/columnEnum" } } } @@ -28639,28 +33749,26 @@ }, "deprecated": false, "x-appwrite": { - "method": "createTransaction", - "group": "transactions", - "weight": 401, + "method": "updateEnumColumn", + "group": "columns", + "weight": 342, "cookies": false, "type": "", - "demo": "tablesdb\/create-transaction.md", + "demo": "tablesdb\/update-enum-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "documents.write", - "rows.write" + "tables.write", + "collections.write" ], "platforms": [ "console", - "server", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-transaction.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-enum-column.md", "auth": { "Project": [], "Key": [] @@ -28669,9 +33777,38 @@ "security": [ { "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string" + }, + "in": "path" } ], "requestBody": { @@ -28680,34 +33817,58 @@ "schema": { "type": "object", "properties": { - "ttl": { - "type": "integer", - "description": "Seconds before the transaction expires.", - "x-example": 60, - "format": "int32" + "elements": { + "type": "array", + "description": "Updated list of enum values.", + "x-example": null, + "items": { + "type": "string" + } + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "x-example": "<DEFAULT>", + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "x-example": null, + "x-nullable": true } - } + }, + "required": [ + "elements", + "required", + "default" + ] } } } } } }, - "\/tablesdb\/transactions\/{transactionId}": { - "get": { - "summary": "Get transaction", - "operationId": "tablesDBGetTransaction", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/float": { + "post": { + "summary": "Create float column", + "operationId": "tablesDBCreateFloatColumn", "tags": [ "tablesDB" ], - "description": "Get a transaction by its unique ID.", + "description": "Create a float column. Optionally, minimum and maximum values can be provided.\n", "responses": { - "200": { - "description": "Transaction", + "202": { + "description": "ColumnFloat", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/transaction" + "$ref": "#\/components\/schemas\/columnFloat" } } } @@ -28715,28 +33876,26 @@ }, "deprecated": false, "x-appwrite": { - "method": "getTransaction", - "group": "transactions", - "weight": 402, + "method": "createFloatColumn", + "group": "columns", + "weight": 343, "cookies": false, "type": "", - "demo": "tablesdb\/get-transaction.md", + "demo": "tablesdb\/create-float-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "documents.read", - "rows.read" + "tables.write", + "collections.write" ], "platforms": [ "console", - "server", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-transaction.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-float-column.md", "auth": { "Project": [], "Key": [] @@ -28745,38 +33904,99 @@ "security": [ { "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "transactionId", - "description": "Transaction ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<TRANSACTION_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TABLE_ID>" }, "in": "path" } - ] - }, + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "x-example": null + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false + }, + "min": { + "type": "number", + "description": "Minimum value", + "x-example": null, + "format": "float", + "x-nullable": true + }, + "max": { + "type": "number", + "description": "Maximum value", + "x-example": null, + "format": "float", + "x-nullable": true + }, + "default": { + "type": "number", + "description": "Default value. Cannot be set when required.", + "x-example": null, + "format": "float", + "x-nullable": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "x-example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/float\/{key}": { "patch": { - "summary": "Update transaction", - "operationId": "tablesDBUpdateTransaction", + "summary": "Update float column", + "operationId": "tablesDBUpdateFloatColumn", "tags": [ "tablesDB" ], - "description": "Update a transaction, to either commit or roll back its operations.", + "description": "Update a float column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "Transaction", + "description": "ColumnFloat", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/transaction" + "$ref": "#\/components\/schemas\/columnFloat" } } } @@ -28784,28 +34004,26 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateTransaction", - "group": "transactions", - "weight": 403, + "method": "updateFloatColumn", + "group": "columns", + "weight": 344, "cookies": false, "type": "", - "demo": "tablesdb\/update-transaction.md", + "demo": "tablesdb\/update-float-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "documents.write", - "rows.write" + "tables.write", + "collections.write" ], "platforms": [ "console", - "server", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-transaction.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-float-column.md", "auth": { "Project": [], "Key": [] @@ -28814,19 +34032,36 @@ "security": [ { "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "transactionId", - "description": "Transaction ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<TRANSACTION_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string" }, "in": "path" } @@ -28837,58 +34072,91 @@ "schema": { "type": "object", "properties": { - "commit": { + "required": { "type": "boolean", - "description": "Commit transaction?", + "description": "Is column required?", "x-example": false }, - "rollback": { - "type": "boolean", - "description": "Rollback transaction?", - "x-example": false + "min": { + "type": "number", + "description": "Minimum value", + "x-example": null, + "format": "float", + "x-nullable": true + }, + "max": { + "type": "number", + "description": "Maximum value", + "x-example": null, + "format": "float", + "x-nullable": true + }, + "default": { + "type": "number", + "description": "Default value. Cannot be set when required.", + "x-example": null, + "format": "float", + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "x-example": null, + "x-nullable": true } - } + }, + "required": [ + "required", + "default" + ] } } } } - }, - "delete": { - "summary": "Delete transaction", - "operationId": "tablesDBDeleteTransaction", + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/integer": { + "post": { + "summary": "Create integer column", + "operationId": "tablesDBCreateIntegerColumn", "tags": [ "tablesDB" ], - "description": "Delete a transaction by its unique ID.", + "description": "Create an integer column. Optionally, minimum and maximum values can be provided.\n", "responses": { - "204": { - "description": "No content" + "202": { + "description": "ColumnInteger", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnInteger" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteTransaction", - "group": "transactions", - "weight": 404, + "method": "createIntegerColumn", + "group": "columns", + "weight": 345, "cookies": false, "type": "", - "demo": "tablesdb\/delete-transaction.md", + "demo": "tablesdb\/create-integer-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "documents.write", - "rows.write" + "tables.write", + "collections.write" ], "platforms": [ "console", - "server", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-transaction.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-integer-column.md", "auth": { "Project": [], "Key": [] @@ -28897,40 +34165,99 @@ "security": [ { "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "transactionId", - "description": "Transaction ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<TRANSACTION_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TABLE_ID>" }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "x-example": null + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false + }, + "min": { + "type": "integer", + "description": "Minimum value", + "x-example": null, + "format": "int64", + "x-nullable": true + }, + "max": { + "type": "integer", + "description": "Maximum value", + "x-example": null, + "format": "int64", + "x-nullable": true + }, + "default": { + "type": "integer", + "description": "Default value. Cannot be set when column is required.", + "x-example": null, + "format": "int64", + "x-nullable": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "x-example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } } }, - "\/tablesdb\/transactions\/{transactionId}\/operations": { - "post": { - "summary": "Create operations", - "operationId": "tablesDBCreateOperations", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/integer\/{key}": { + "patch": { + "summary": "Update integer column", + "operationId": "tablesDBUpdateIntegerColumn", "tags": [ "tablesDB" ], - "description": "Create multiple operations in a single transaction.", + "description": "Update an integer column. Changing the `default` value will not update already existing rows.\n", "responses": { - "201": { - "description": "Transaction", + "200": { + "description": "ColumnInteger", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/transaction" + "$ref": "#\/components\/schemas\/columnInteger" } } } @@ -28938,28 +34265,26 @@ }, "deprecated": false, "x-appwrite": { - "method": "createOperations", - "group": "transactions", - "weight": 406, + "method": "updateIntegerColumn", + "group": "columns", + "weight": 346, "cookies": false, "type": "", - "demo": "tablesdb\/create-operations.md", + "demo": "tablesdb\/update-integer-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "documents.write", - "rows.write" + "tables.write", + "collections.write" ], "platforms": [ "console", - "server", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-operations.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-integer-column.md", "auth": { "Project": [], "Key": [] @@ -28968,19 +34293,36 @@ "security": [ { "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "transactionId", - "description": "Transaction ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<TRANSACTION_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string" }, "in": "path" } @@ -28991,36 +34333,64 @@ "schema": { "type": "object", "properties": { - "operations": { - "type": "array", - "description": "Array of staged operations.", - "x-example": "[\n\t {\n\t \"action\": \"create\",\n\t \"databaseId\": \"<DATABASE_ID>\",\n\t \"tableId\": \"<TABLE_ID>\",\n\t \"rowId\": \"<ROW_ID>\",\n\t \"data\": {\n\t \"name\": \"Walter O'Brien\"\n\t }\n\t }\n\t]", - "items": { - "type": "object" - } + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false + }, + "min": { + "type": "integer", + "description": "Minimum value", + "x-example": null, + "format": "int64", + "x-nullable": true + }, + "max": { + "type": "integer", + "description": "Maximum value", + "x-example": null, + "format": "int64", + "x-nullable": true + }, + "default": { + "type": "integer", + "description": "Default value. Cannot be set when column is required.", + "x-example": null, + "format": "int64", + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "x-example": null, + "x-nullable": true } - } + }, + "required": [ + "required", + "default" + ] } } } } } }, - "\/tablesdb\/{databaseId}": { - "get": { - "summary": "Get database", - "operationId": "tablesDBGet", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/ip": { + "post": { + "summary": "Create IP address column", + "operationId": "tablesDBCreateIpColumn", "tags": [ "tablesDB" ], - "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", + "description": "Create IP address column.\n", "responses": { - "200": { - "description": "Database", + "202": { + "description": "ColumnIP", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/database" + "$ref": "#\/components\/schemas\/columnIp" } } } @@ -29028,23 +34398,26 @@ }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": "tablesdb", - "weight": 335, + "method": "createIpColumn", + "group": "columns", + "weight": 347, "cookies": false, "type": "", - "demo": "tablesdb\/get.md", + "demo": "tablesdb\/create-ip-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-ip-column.md", "auth": { "Project": [], "Key": [] @@ -29066,23 +34439,71 @@ "x-example": "<DATABASE_ID>" }, "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TABLE_ID>" + }, + "in": "path" } - ] - }, - "put": { - "summary": "Update database", - "operationId": "tablesDBUpdate", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "x-example": null + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false + }, + "default": { + "type": "string", + "description": "Default value. Cannot be set when column is required.", + "x-example": null, + "x-nullable": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "x-example": false + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/ip\/{key}": { + "patch": { + "summary": "Update IP address column", + "operationId": "tablesDBUpdateIpColumn", "tags": [ "tablesDB" ], - "description": "Update a database by its unique ID.", + "description": "Update an ip column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "Database", + "description": "ColumnIP", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/database" + "$ref": "#\/components\/schemas\/columnIp" } } } @@ -29090,23 +34511,26 @@ }, "deprecated": false, "x-appwrite": { - "method": "update", - "group": "tablesdb", - "weight": 336, + "method": "updateIpColumn", + "group": "columns", + "weight": 348, "cookies": false, "type": "", - "demo": "tablesdb\/update.md", + "demo": "tablesdb\/update-ip-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-ip-column.md", "auth": { "Project": [], "Key": [] @@ -29128,6 +34552,25 @@ "x-example": "<DATABASE_ID>" }, "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string" + }, + "in": "path" } ], "requestBody": { @@ -29136,53 +34579,76 @@ "schema": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "Database name. Max length: 128 chars.", - "x-example": "<NAME>" - }, - "enabled": { + "required": { "type": "boolean", - "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.", + "description": "Is column required?", "x-example": false + }, + "default": { + "type": "string", + "description": "Default value. Cannot be set when column is required.", + "x-example": null, + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "x-example": null, + "x-nullable": true } - } + }, + "required": [ + "required", + "default" + ] } } } } - }, - "delete": { - "summary": "Delete database", - "operationId": "tablesDBDelete", + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/line": { + "post": { + "summary": "Create line column", + "operationId": "tablesDBCreateLineColumn", "tags": [ "tablesDB" ], - "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", + "description": "Create a geometric line column.", "responses": { - "204": { - "description": "No content" + "202": { + "description": "ColumnLine", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnLine" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": "tablesdb", - "weight": 337, + "method": "createLineColumn", + "group": "columns", + "weight": 349, "cookies": false, "type": "", - "demo": "tablesdb\/delete.md", + "demo": "tablesdb\/create-line-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-line-column.md", "auth": { "Project": [], "Key": [] @@ -29204,25 +34670,73 @@ "x-example": "<DATABASE_ID>" }, "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "x-example": "<TABLE_ID>" + }, + "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "x-example": null + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false + }, + "default": { + "type": "array", + "description": "Default value for column 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 column is required.", + "x-example": "[[1, 2], [3, 4], [5, 6]]", + "items": { + "oneOf": [ + { + "type": "array" + } + ] + }, + "x-nullable": true + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } } }, - "\/tablesdb\/{databaseId}\/tables": { - "get": { - "summary": "List tables", - "operationId": "tablesDBListTables", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/line\/{key}": { + "patch": { + "summary": "Update line column", + "operationId": "tablesDBUpdateLineColumn", "tags": [ "tablesDB" ], - "description": "Get a list of all tables that belong to the provided databaseId. You can use the search parameter to filter your results.", + "description": "Update a line column. Changing the `default` value will not update already existing rows.", "responses": { "200": { - "description": "Tables List", + "description": "ColumnLine", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/tableList" + "$ref": "#\/components\/schemas\/columnLine" } } } @@ -29230,18 +34744,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "listTables", - "group": "tables", - "weight": 345, + "method": "updateLineColumn", + "group": "columns", + "weight": 350, "cookies": false, "type": "", - "demo": "tablesdb\/list-tables.md", + "demo": "tablesdb\/update-line-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.read", - "collections.read" + "tables.write", + "collections.write" ], "platforms": [ "console", @@ -29249,7 +34763,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-tables.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-line-column.md", "auth": { "Project": [], "Key": [] @@ -29273,56 +34787,80 @@ "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 columns: name, enabled, rowSecurity", - "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, + "name": "tableId", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, "schema": { "type": "string", - "x-example": "<SEARCH>", - "default": "" + "x-example": "<TABLE_ID>" }, - "in": "query" + "in": "path" }, { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, + "name": "key", + "description": "Column Key.", + "required": true, "schema": { - "type": "boolean", - "x-example": false, - "default": true + "type": "string" }, - "in": "query" + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false + }, + "default": { + "type": "array", + "description": "Default value for column 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 column is required.", + "x-example": "[[1, 2], [3, 4], [5, 6]]", + "items": { + "oneOf": [ + { + "type": "array" + } + ] + }, + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required" + ] + } + } } - ] - }, + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/longtext": { "post": { - "summary": "Create table", - "operationId": "tablesDBCreateTable", + "summary": "Create longtext column", + "operationId": "tablesDBCreateLongtextColumn", "tags": [ "tablesDB" ], - "description": "Create a new Table. Before using this route, you should create a new database resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "description": "Create a longtext column.\n", "responses": { - "201": { - "description": "Table", + "202": { + "description": "ColumnLongtext", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/table" + "$ref": "#\/components\/schemas\/columnLongtext" } } } @@ -29330,12 +34868,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "createTable", - "group": "tables", - "weight": 341, + "method": "createLongtextColumn", + "group": "columns", + "weight": 367, "cookies": false, "type": "", - "demo": "tablesdb\/create-table.md", + "demo": "tablesdb\/create-longtext-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -29349,7 +34887,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-table.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-longtext-column.md", "auth": { "Project": [], "Key": [] @@ -29371,6 +34909,16 @@ "x-example": "<DATABASE_ID>" }, "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "x-example": "<TABLE_ID>" + }, + "in": "path" } ], "requestBody": { @@ -29379,55 +34927,36 @@ "schema": { "type": "object", "properties": { - "tableId": { + "key": { "type": "string", - "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.", - "x-example": "<TABLE_ID>" + "description": "Column Key.", + "x-example": null }, - "name": { - "type": "string", - "description": "Table name. Max length: 128 chars.", - "x-example": "<NAME>" + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false }, - "permissions": { - "type": "array", - "description": "An array of permissions strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "x-example": "[\"read(\"any\")\"]", - "items": { - "type": "string" - }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "x-example": "<DEFAULT>", "x-nullable": true }, - "rowSecurity": { + "array": { "type": "boolean", - "description": "Enables configuring permissions for individual rows. A user needs one of row or table level permissions to access a row. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "description": "Is column an array?", "x-example": false }, - "enabled": { + "encrypt": { "type": "boolean", - "description": "Is table enabled? When set to 'disabled', users cannot access the table but Server SDKs with and API key can still read and write to the table. No data is lost when this is toggled.", + "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", "x-example": false - }, - "columns": { - "type": "array", - "description": "Array of column definitions to create. Each column should contain: key (string), type (string: string, integer, float, boolean, datetime, relationship), size (integer, required for string type), required (boolean, optional), default (mixed, optional), array (boolean, optional), and type-specific options.", - "x-example": null, - "items": { - "type": "object" - } - }, - "indexes": { - "type": "array", - "description": "Array of index definitions to create. Each index should contain: key (string), type (string: key, fulltext, unique, spatial), attributes (array of column keys), orders (array of ASC\/DESC, optional), and lengths (array of integers, optional).", - "x-example": null, - "items": { - "type": "object" - } } }, "required": [ - "tableId", - "name" + "key", + "required" ] } } @@ -29435,21 +34964,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}": { - "get": { - "summary": "Get table", - "operationId": "tablesDBGetTable", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/longtext\/{key}": { + "patch": { + "summary": "Update longtext column", + "operationId": "tablesDBUpdateLongtextColumn", "tags": [ "tablesDB" ], - "description": "Get a table by its unique ID. This endpoint response returns a JSON object with the table metadata.", + "description": "Update a longtext column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "Table", + "description": "ColumnLongtext", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/table" + "$ref": "#\/components\/schemas\/columnLongtext" } } } @@ -29457,18 +34986,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "getTable", - "group": "tables", - "weight": 342, + "method": "updateLongtextColumn", + "group": "columns", + "weight": 368, "cookies": false, "type": "", - "demo": "tablesdb\/get-table.md", + "demo": "tablesdb\/update-longtext-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.read", - "collections.read" + "tables.write", + "collections.write" ], "platforms": [ "console", @@ -29476,7 +35005,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-table.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-longtext-column.md", "auth": { "Project": [], "Key": [] @@ -29501,30 +35030,73 @@ }, { "name": "tableId", - "description": "Table ID.", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "schema": { "type": "string", "x-example": "<TABLE_ID>" }, "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string" + }, + "in": "path" } - ] - }, - "put": { - "summary": "Update table", - "operationId": "tablesDBUpdateTable", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "x-example": "<DEFAULT>", + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/mediumtext": { + "post": { + "summary": "Create mediumtext column", + "operationId": "tablesDBCreateMediumtextColumn", "tags": [ "tablesDB" ], - "description": "Update a table by its unique ID.", + "description": "Create a mediumtext column.\n", "responses": { - "200": { - "description": "Table", + "202": { + "description": "ColumnMediumtext", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/table" + "$ref": "#\/components\/schemas\/columnMediumtext" } } } @@ -29532,12 +35104,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateTable", - "group": "tables", - "weight": 343, + "method": "createMediumtextColumn", + "group": "columns", + "weight": 365, "cookies": false, "type": "", - "demo": "tablesdb\/update-table.md", + "demo": "tablesdb\/create-mediumtext-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -29551,7 +35123,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-table.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-mediumtext-column.md", "auth": { "Project": [], "Key": [] @@ -29576,7 +35148,7 @@ }, { "name": "tableId", - "description": "Table ID.", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "schema": { "type": "string", @@ -29591,56 +35163,71 @@ "schema": { "type": "object", "properties": { - "name": { + "key": { "type": "string", - "description": "Table name. Max length: 128 chars.", - "x-example": "<NAME>" + "description": "Column Key.", + "x-example": null }, - "permissions": { - "type": "array", - "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "x-example": "[\"read(\"any\")\"]", - "items": { - "type": "string" - }, + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "x-example": "<DEFAULT>", "x-nullable": true }, - "rowSecurity": { + "array": { "type": "boolean", - "description": "Enables configuring permissions for individual rows. A user needs one of row or table-level permissions to access a row. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "description": "Is column an array?", "x-example": false }, - "enabled": { + "encrypt": { "type": "boolean", - "description": "Is table enabled? When set to 'disabled', users cannot access the table but Server SDKs with and API key can still read and write to the table. No data is lost when this is toggled.", + "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", "x-example": false } - } + }, + "required": [ + "key", + "required" + ] } } } } - }, - "delete": { - "summary": "Delete table", - "operationId": "tablesDBDeleteTable", + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/mediumtext\/{key}": { + "patch": { + "summary": "Update mediumtext column", + "operationId": "tablesDBUpdateMediumtextColumn", "tags": [ "tablesDB" ], - "description": "Delete a table by its unique ID. Only users with write permissions have access to delete this resource.", + "description": "Update a mediumtext column. Changing the `default` value will not update already existing rows.\n", "responses": { - "204": { - "description": "No content" + "200": { + "description": "ColumnMediumtext", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/columnMediumtext" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteTable", - "group": "tables", - "weight": 344, + "method": "updateMediumtextColumn", + "group": "columns", + "weight": 366, "cookies": false, "type": "", - "demo": "tablesdb\/delete-table.md", + "demo": "tablesdb\/update-mediumtext-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -29654,7 +35241,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-table.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-mediumtext-column.md", "auth": { "Project": [], "Key": [] @@ -29679,32 +35266,73 @@ }, { "name": "tableId", - "description": "Table ID.", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "schema": { "type": "string", "x-example": "<TABLE_ID>" }, "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string" + }, + "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "x-example": "<DEFAULT>", + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + } + } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns": { - "get": { - "summary": "List columns", - "operationId": "tablesDBListColumns", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/point": { + "post": { + "summary": "Create point column", + "operationId": "tablesDBCreatePointColumn", "tags": [ "tablesDB" ], - "description": "List columns in the table.", + "description": "Create a geometric point column.", "responses": { - "200": { - "description": "Columns List", + "202": { + "description": "ColumnPoint", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnList" + "$ref": "#\/components\/schemas\/columnPoint" } } } @@ -29712,18 +35340,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "listColumns", + "method": "createPointColumn", "group": "columns", - "weight": 350, + "weight": 351, "cookies": false, "type": "", - "demo": "tablesdb\/list-columns.md", + "demo": "tablesdb\/create-point-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.read", - "collections.read" + "tables.write", + "collections.write" ], "platforms": [ "console", @@ -29731,7 +35359,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-columns.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-point-column.md", "auth": { "Project": [], "Key": [] @@ -29756,56 +35384,70 @@ }, { "name": "tableId", - "description": "Table ID.", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "schema": { "type": "string", "x-example": "<TABLE_ID>" }, "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 columns: 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", - "x-example": false, - "default": true - }, - "in": "query" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "x-example": null + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "x-example": false + }, + "default": { + "type": "array", + "description": "Default value for column when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when column is required.", + "x-example": "[1, 2]", + "items": { + "oneOf": [ + { + "type": "array" + } + ] + }, + "x-nullable": true + } + }, + "required": [ + "key", + "required" + ] + } + } + } + } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/boolean": { - "post": { - "summary": "Create boolean column", - "operationId": "tablesDBCreateBooleanColumn", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/point\/{key}": { + "patch": { + "summary": "Update point column", + "operationId": "tablesDBUpdatePointColumn", "tags": [ "tablesDB" ], - "description": "Create a boolean column.\n", + "description": "Update a point column. Changing the `default` value will not update already existing rows.", "responses": { - "202": { - "description": "ColumnBoolean", + "200": { + "description": "ColumnPoint", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnBoolean" + "$ref": "#\/components\/schemas\/columnPoint" } } } @@ -29813,12 +35455,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "createBooleanColumn", + "method": "updatePointColumn", "group": "columns", - "weight": 351, + "weight": 352, "cookies": false, "type": "", - "demo": "tablesdb\/create-boolean-column.md", + "demo": "tablesdb\/update-point-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -29832,7 +35474,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-boolean-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-point-column.md", "auth": { "Project": [], "Key": [] @@ -29857,13 +35499,22 @@ }, { "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "schema": { "type": "string", "x-example": "<TABLE_ID>" }, "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string" + }, + "in": "path" } ], "requestBody": { @@ -29872,30 +35523,32 @@ "schema": { "type": "object", "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "x-example": null - }, "required": { "type": "boolean", "description": "Is column required?", "x-example": false }, "default": { - "type": "boolean", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": false, + "type": "array", + "description": "Default value for column when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when column is required.", + "x-example": "[1, 2]", + "items": { + "oneOf": [ + { + "type": "array" + } + ] + }, "x-nullable": true }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "x-example": false + "newKey": { + "type": "string", + "description": "New Column Key.", + "x-example": null, + "x-nullable": true } }, "required": [ - "key", "required" ] } @@ -29904,21 +35557,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/boolean\/{key}": { - "patch": { - "summary": "Update boolean column", - "operationId": "tablesDBUpdateBooleanColumn", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/polygon": { + "post": { + "summary": "Create polygon column", + "operationId": "tablesDBCreatePolygonColumn", "tags": [ "tablesDB" ], - "description": "Update a boolean column. Changing the `default` value will not update already existing rows.", + "description": "Create a geometric polygon column.", "responses": { - "200": { - "description": "ColumnBoolean", + "202": { + "description": "ColumnPolygon", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnBoolean" + "$ref": "#\/components\/schemas\/columnPolygon" } } } @@ -29926,12 +35579,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateBooleanColumn", + "method": "createPolygonColumn", "group": "columns", - "weight": 352, + "weight": 353, "cookies": false, "type": "", - "demo": "tablesdb\/update-boolean-column.md", + "demo": "tablesdb\/create-polygon-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -29945,7 +35598,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-boolean-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-polygon-column.md", "auth": { "Project": [], "Key": [] @@ -29970,22 +35623,13 @@ }, { "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "schema": { "type": "string", "x-example": "<TABLE_ID>" }, "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string" - }, - "in": "path" } ], "requestBody": { @@ -29994,27 +35638,33 @@ "schema": { "type": "object", "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "x-example": null + }, "required": { "type": "boolean", "description": "Is column required?", "x-example": false }, "default": { - "type": "boolean", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": false, - "x-nullable": true - }, - "newKey": { - "type": "string", - "description": "New Column Key.", - "x-example": null, + "type": "array", + "description": "Default value for column 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 column is required.", + "x-example": "[[[1, 2], [3, 4], [5, 6], [1, 2]]]", + "items": { + "oneOf": [ + { + "type": "array" + } + ] + }, "x-nullable": true } }, "required": [ - "required", - "default" + "key", + "required" ] } } @@ -30022,21 +35672,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/datetime": { - "post": { - "summary": "Create datetime column", - "operationId": "tablesDBCreateDatetimeColumn", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/polygon\/{key}": { + "patch": { + "summary": "Update polygon column", + "operationId": "tablesDBUpdatePolygonColumn", "tags": [ "tablesDB" ], - "description": "Create a date time column according to the ISO 8601 standard.", + "description": "Update a polygon column. Changing the `default` value will not update already existing rows.", "responses": { - "202": { - "description": "ColumnDatetime", + "200": { + "description": "ColumnPolygon", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnDatetime" + "$ref": "#\/components\/schemas\/columnPolygon" } } } @@ -30044,12 +35694,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "createDatetimeColumn", + "method": "updatePolygonColumn", "group": "columns", - "weight": 353, + "weight": 354, "cookies": false, "type": "", - "demo": "tablesdb\/create-datetime-column.md", + "demo": "tablesdb\/update-polygon-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -30063,7 +35713,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-datetime-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-polygon-column.md", "auth": { "Project": [], "Key": [] @@ -30088,13 +35738,22 @@ }, { "name": "tableId", - "description": "Table ID.", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "schema": { "type": "string", "x-example": "<TABLE_ID>" }, "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string" + }, + "in": "path" } ], "requestBody": { @@ -30103,30 +35762,32 @@ "schema": { "type": "object", "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "x-example": null - }, "required": { "type": "boolean", "description": "Is column required?", "x-example": false }, "default": { + "type": "array", + "description": "Default value for column 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 column is required.", + "x-example": "[[[1, 2], [3, 4], [5, 6], [1, 2]]]", + "items": { + "oneOf": [ + { + "type": "array" + } + ] + }, + "x-nullable": true + }, + "newKey": { "type": "string", - "description": "Default value for the column in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Cannot be set when column is required.", + "description": "New Column Key.", "x-example": null, "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "x-example": false } }, "required": [ - "key", "required" ] } @@ -30135,21 +35796,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/datetime\/{key}": { - "patch": { - "summary": "Update dateTime column", - "operationId": "tablesDBUpdateDatetimeColumn", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/relationship": { + "post": { + "summary": "Create relationship column", + "operationId": "tablesDBCreateRelationshipColumn", "tags": [ "tablesDB" ], - "description": "Update a date time column. Changing the `default` value will not update already existing rows.", + "description": "Create relationship column. [Learn more about relationship columns](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-columns).\n", "responses": { - "200": { - "description": "ColumnDatetime", + "202": { + "description": "ColumnRelationship", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnDatetime" + "$ref": "#\/components\/schemas\/columnRelationship" } } } @@ -30157,12 +35818,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateDatetimeColumn", + "method": "createRelationshipColumn", "group": "columns", - "weight": 354, + "weight": 355, "cookies": false, "type": "", - "demo": "tablesdb\/update-datetime-column.md", + "demo": "tablesdb\/create-relationship-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -30176,7 +35837,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-datetime-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-relationship-column.md", "auth": { "Project": [], "Key": [] @@ -30208,15 +35869,6 @@ "x-example": "<TABLE_ID>" }, "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string" - }, - "in": "path" } ], "requestBody": { @@ -30225,27 +35877,57 @@ "schema": { "type": "object", "properties": { - "required": { + "relatedTableId": { + "type": "string", + "description": "Related Table ID.", + "x-example": "<RELATED_TABLE_ID>" + }, + "type": { + "type": "string", + "description": "Relation type", + "x-example": "oneToOne", + "enum": [ + "oneToOne", + "manyToOne", + "manyToMany", + "oneToMany" + ], + "x-enum-name": "RelationshipType", + "x-enum-keys": [] + }, + "twoWay": { "type": "boolean", - "description": "Is column required?", + "description": "Is Two Way?", "x-example": false }, - "default": { + "key": { "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", + "description": "Column Key.", "x-example": null, "x-nullable": true }, - "newKey": { + "twoWayKey": { "type": "string", - "description": "New Column Key.", + "description": "Two Way Column Key.", "x-example": null, "x-nullable": true + }, + "onDelete": { + "type": "string", + "description": "Constraints option", + "x-example": "cascade", + "enum": [ + "cascade", + "restrict", + "setNull" + ], + "x-enum-name": "RelationMutate", + "x-enum-keys": [] } }, "required": [ - "required", - "default" + "relatedTableId", + "type" ] } } @@ -30253,34 +35935,34 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/email": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/string": { "post": { - "summary": "Create email column", - "operationId": "tablesDBCreateEmailColumn", + "summary": "Create string column", + "operationId": "tablesDBCreateStringColumn", "tags": [ "tablesDB" ], - "description": "Create an email column.\n", + "description": "Create a string column.\n", "responses": { "202": { - "description": "ColumnEmail", + "description": "ColumnString", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnEmail" + "$ref": "#\/components\/schemas\/columnString" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "createEmailColumn", + "method": "createStringColumn", "group": "columns", - "weight": 355, + "weight": 357, "cookies": false, "type": "", - "demo": "tablesdb\/create-email-column.md", + "demo": "tablesdb\/create-string-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -30294,7 +35976,11 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-email-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-string-column.md", + "deprecated": { + "since": "1.9.0", + "replaceWith": "tablesDB.createTextColumn" + }, "auth": { "Project": [], "Key": [] @@ -30319,7 +36005,7 @@ }, { "name": "tableId", - "description": "Table ID.", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "schema": { "type": "string", @@ -30339,6 +36025,12 @@ "description": "Column Key.", "x-example": null }, + "size": { + "type": "integer", + "description": "Column size for text columns, in number of characters.", + "x-example": 1, + "format": "int32" + }, "required": { "type": "boolean", "description": "Is column required?", @@ -30347,18 +36039,23 @@ "default": { "type": "string", "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": "email@example.com", - "format": "email", + "x-example": "<DEFAULT>", "x-nullable": true }, "array": { "type": "boolean", "description": "Is column an array?", "x-example": false + }, + "encrypt": { + "type": "boolean", + "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", + "x-example": false } }, "required": [ "key", + "size", "required" ] } @@ -30367,34 +36064,34 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/email\/{key}": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/string\/{key}": { "patch": { - "summary": "Update email column", - "operationId": "tablesDBUpdateEmailColumn", + "summary": "Update string column", + "operationId": "tablesDBUpdateStringColumn", "tags": [ "tablesDB" ], - "description": "Update an email column. Changing the `default` value will not update already existing rows.\n", + "description": "Update a string column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "ColumnEmail", + "description": "ColumnString", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnEmail" + "$ref": "#\/components\/schemas\/columnString" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "updateEmailColumn", + "method": "updateStringColumn", "group": "columns", - "weight": 356, + "weight": 358, "cookies": false, "type": "", - "demo": "tablesdb\/update-email-column.md", + "demo": "tablesdb\/update-string-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -30408,7 +36105,11 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-email-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-string-column.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateTextColumn" + }, "auth": { "Project": [], "Key": [] @@ -30433,7 +36134,7 @@ }, { "name": "tableId", - "description": "Table ID.", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "schema": { "type": "string", @@ -30465,8 +36166,14 @@ "default": { "type": "string", "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": "email@example.com", - "format": "email", + "x-example": "<DEFAULT>", + "x-nullable": true + }, + "size": { + "type": "integer", + "description": "Maximum size of the string column.", + "x-example": 1, + "format": "int32", "x-nullable": true }, "newKey": { @@ -30486,21 +36193,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/enum": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/text": { "post": { - "summary": "Create enum column", - "operationId": "tablesDBCreateEnumColumn", + "summary": "Create text column", + "operationId": "tablesDBCreateTextColumn", "tags": [ "tablesDB" ], - "description": "Create an enumeration column. The `elements` param acts as a white-list of accepted values for this column.", + "description": "Create a text column.\n", "responses": { "202": { - "description": "ColumnEnum", + "description": "ColumnText", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnEnum" + "$ref": "#\/components\/schemas\/columnText" } } } @@ -30508,12 +36215,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "createEnumColumn", + "method": "createTextColumn", "group": "columns", - "weight": 357, + "weight": 363, "cookies": false, "type": "", - "demo": "tablesdb\/create-enum-column.md", + "demo": "tablesdb\/create-text-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -30527,7 +36234,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-enum-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-text-column.md", "auth": { "Project": [], "Key": [] @@ -30552,7 +36259,7 @@ }, { "name": "tableId", - "description": "Table ID.", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "schema": { "type": "string", @@ -30572,14 +36279,6 @@ "description": "Column Key.", "x-example": null }, - "elements": { - "type": "array", - "description": "Array of enum values.", - "x-example": null, - "items": { - "type": "string" - } - }, "required": { "type": "boolean", "description": "Is column required?", @@ -30595,11 +36294,15 @@ "type": "boolean", "description": "Is column an array?", "x-example": false + }, + "encrypt": { + "type": "boolean", + "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", + "x-example": false } }, "required": [ "key", - "elements", "required" ] } @@ -30608,21 +36311,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/enum\/{key}": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/text\/{key}": { "patch": { - "summary": "Update enum column", - "operationId": "tablesDBUpdateEnumColumn", + "summary": "Update text column", + "operationId": "tablesDBUpdateTextColumn", "tags": [ "tablesDB" ], - "description": "Update an enum column. Changing the `default` value will not update already existing rows.\n", + "description": "Update a text column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "ColumnEnum", + "description": "ColumnText", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnEnum" + "$ref": "#\/components\/schemas\/columnText" } } } @@ -30630,12 +36333,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateEnumColumn", + "method": "updateTextColumn", "group": "columns", - "weight": 358, + "weight": 364, "cookies": false, "type": "", - "demo": "tablesdb\/update-enum-column.md", + "demo": "tablesdb\/update-text-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -30649,7 +36352,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-enum-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-text-column.md", "auth": { "Project": [], "Key": [] @@ -30674,7 +36377,7 @@ }, { "name": "tableId", - "description": "Table ID.", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "schema": { "type": "string", @@ -30698,14 +36401,6 @@ "schema": { "type": "object", "properties": { - "elements": { - "type": "array", - "description": "Updated list of enum values.", - "x-example": null, - "items": { - "type": "string" - } - }, "required": { "type": "boolean", "description": "Is column required?", @@ -30725,7 +36420,6 @@ } }, "required": [ - "elements", "required", "default" ] @@ -30735,21 +36429,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/float": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/url": { "post": { - "summary": "Create float column", - "operationId": "tablesDBCreateFloatColumn", + "summary": "Create URL column", + "operationId": "tablesDBCreateUrlColumn", "tags": [ "tablesDB" ], - "description": "Create a float column. Optionally, minimum and maximum values can be provided.\n", + "description": "Create a URL column.\n", "responses": { "202": { - "description": "ColumnFloat", + "description": "ColumnURL", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnFloat" + "$ref": "#\/components\/schemas\/columnUrl" } } } @@ -30757,12 +36451,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "createFloatColumn", + "method": "createUrlColumn", "group": "columns", "weight": 359, "cookies": false, "type": "", - "demo": "tablesdb\/create-float-column.md", + "demo": "tablesdb\/create-url-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -30776,7 +36470,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-float-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-url-column.md", "auth": { "Project": [], "Key": [] @@ -30826,25 +36520,11 @@ "description": "Is column required?", "x-example": false }, - "min": { - "type": "number", - "description": "Minimum value", - "x-example": null, - "format": "float", - "x-nullable": true - }, - "max": { - "type": "number", - "description": "Maximum value", - "x-example": null, - "format": "float", - "x-nullable": true - }, "default": { - "type": "number", - "description": "Default value. Cannot be set when required.", - "x-example": null, - "format": "float", + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "x-example": "https:\/\/example.com", + "format": "url", "x-nullable": true }, "array": { @@ -30863,21 +36543,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/float\/{key}": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/url\/{key}": { "patch": { - "summary": "Update float column", - "operationId": "tablesDBUpdateFloatColumn", + "summary": "Update URL column", + "operationId": "tablesDBUpdateUrlColumn", "tags": [ "tablesDB" ], - "description": "Update a float column. Changing the `default` value will not update already existing rows.\n", + "description": "Update an url column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "ColumnFloat", + "description": "ColumnURL", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnFloat" + "$ref": "#\/components\/schemas\/columnUrl" } } } @@ -30885,12 +36565,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateFloatColumn", + "method": "updateUrlColumn", "group": "columns", "weight": 360, "cookies": false, "type": "", - "demo": "tablesdb\/update-float-column.md", + "demo": "tablesdb\/update-url-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -30904,7 +36584,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-float-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-url-column.md", "auth": { "Project": [], "Key": [] @@ -30958,25 +36638,11 @@ "description": "Is column required?", "x-example": false }, - "min": { - "type": "number", - "description": "Minimum value", - "x-example": null, - "format": "float", - "x-nullable": true - }, - "max": { - "type": "number", - "description": "Maximum value", - "x-example": null, - "format": "float", - "x-nullable": true - }, "default": { - "type": "number", - "description": "Default value. Cannot be set when required.", - "x-example": null, - "format": "float", + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "x-example": "https:\/\/example.com", + "format": "url", "x-nullable": true }, "newKey": { @@ -30996,21 +36662,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/integer": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/varchar": { "post": { - "summary": "Create integer column", - "operationId": "tablesDBCreateIntegerColumn", + "summary": "Create varchar column", + "operationId": "tablesDBCreateVarcharColumn", "tags": [ "tablesDB" ], - "description": "Create an integer column. Optionally, minimum and maximum values can be provided.\n", + "description": "Create a varchar column.\n", "responses": { "202": { - "description": "ColumnInteger", + "description": "ColumnVarchar", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnInteger" + "$ref": "#\/components\/schemas\/columnVarchar" } } } @@ -31018,12 +36684,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "createIntegerColumn", + "method": "createVarcharColumn", "group": "columns", "weight": 361, "cookies": false, "type": "", - "demo": "tablesdb\/create-integer-column.md", + "demo": "tablesdb\/create-varchar-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -31037,7 +36703,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-integer-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-varchar-column.md", "auth": { "Project": [], "Key": [] @@ -31062,7 +36728,7 @@ }, { "name": "tableId", - "description": "Table ID.", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "schema": { "type": "string", @@ -31082,40 +36748,37 @@ "description": "Column Key.", "x-example": null }, + "size": { + "type": "integer", + "description": "Column size for varchar columns, in number of characters. Maximum size is 16381.", + "x-example": 1, + "format": "int32" + }, "required": { "type": "boolean", "description": "Is column required?", "x-example": false }, - "min": { - "type": "integer", - "description": "Minimum value", - "x-example": null, - "format": "int64", - "x-nullable": true - }, - "max": { - "type": "integer", - "description": "Maximum value", - "x-example": null, - "format": "int64", - "x-nullable": true - }, "default": { - "type": "integer", - "description": "Default value. Cannot be set when column is required.", - "x-example": null, - "format": "int64", + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "x-example": "<DEFAULT>", "x-nullable": true }, "array": { "type": "boolean", "description": "Is column an array?", "x-example": false + }, + "encrypt": { + "type": "boolean", + "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", + "x-example": false } }, "required": [ "key", + "size", "required" ] } @@ -31124,21 +36787,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/integer\/{key}": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/varchar\/{key}": { "patch": { - "summary": "Update integer column", - "operationId": "tablesDBUpdateIntegerColumn", + "summary": "Update varchar column", + "operationId": "tablesDBUpdateVarcharColumn", "tags": [ "tablesDB" ], - "description": "Update an integer column. Changing the `default` value will not update already existing rows.\n", + "description": "Update a varchar column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "ColumnInteger", + "description": "ColumnVarchar", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnInteger" + "$ref": "#\/components\/schemas\/columnVarchar" } } } @@ -31146,12 +36809,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateIntegerColumn", + "method": "updateVarcharColumn", "group": "columns", "weight": 362, "cookies": false, "type": "", - "demo": "tablesdb\/update-integer-column.md", + "demo": "tablesdb\/update-varchar-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -31165,7 +36828,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-integer-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-varchar-column.md", "auth": { "Project": [], "Key": [] @@ -31190,7 +36853,7 @@ }, { "name": "tableId", - "description": "Table ID.", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "schema": { "type": "string", @@ -31219,25 +36882,17 @@ "description": "Is column required?", "x-example": false }, - "min": { - "type": "integer", - "description": "Minimum value", - "x-example": null, - "format": "int64", - "x-nullable": true - }, - "max": { - "type": "integer", - "description": "Maximum value", - "x-example": null, - "format": "int64", + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "x-example": "<DEFAULT>", "x-nullable": true }, - "default": { + "size": { "type": "integer", - "description": "Default value. Cannot be set when column is required.", - "x-example": null, - "format": "int64", + "description": "Maximum size of the varchar column.", + "x-example": 1, + "format": "int32", "x-nullable": true }, "newKey": { @@ -31257,21 +36912,52 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/ip": { - "post": { - "summary": "Create IP address column", - "operationId": "tablesDBCreateIpColumn", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/{key}": { + "get": { + "summary": "Get column", + "operationId": "tablesDBGetColumn", "tags": [ "tablesDB" ], - "description": "Create IP address column.\n", + "description": "Get column by ID.", "responses": { - "202": { - "description": "ColumnIP", + "200": { + "description": "ColumnBoolean, or ColumnInteger, or ColumnFloat, or ColumnEmail, or ColumnEnum, or ColumnURL, or ColumnIP, or ColumnDatetime, or ColumnRelationship, or ColumnString", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnIp" + "oneOf": [ + { + "$ref": "#\/components\/schemas\/columnBoolean" + }, + { + "$ref": "#\/components\/schemas\/columnInteger" + }, + { + "$ref": "#\/components\/schemas\/columnFloat" + }, + { + "$ref": "#\/components\/schemas\/columnEmail" + }, + { + "$ref": "#\/components\/schemas\/columnEnum" + }, + { + "$ref": "#\/components\/schemas\/columnUrl" + }, + { + "$ref": "#\/components\/schemas\/columnIp" + }, + { + "$ref": "#\/components\/schemas\/columnDatetime" + }, + { + "$ref": "#\/components\/schemas\/columnRelationship" + }, + { + "$ref": "#\/components\/schemas\/columnString" + } + ] } } } @@ -31279,18 +36965,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "createIpColumn", + "method": "getColumn", "group": "columns", - "weight": 363, + "weight": 332, "cookies": false, "type": "", - "demo": "tablesdb\/create-ip-column.md", + "demo": "tablesdb\/get-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.write", - "collections.write" + "tables.read", + "collections.read" ], "platforms": [ "console", @@ -31298,7 +36984,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-ip-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-column.md", "auth": { "Project": [], "Key": [] @@ -31330,74 +37016,38 @@ "x-example": "<TABLE_ID>" }, "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string" + }, + "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "x-example": null - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": false - }, - "default": { - "type": "string", - "description": "Default value. Cannot be set when column is required.", - "x-example": null, - "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "x-example": false - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/ip\/{key}": { - "patch": { - "summary": "Update IP address column", - "operationId": "tablesDBUpdateIpColumn", + ] + }, + "delete": { + "summary": "Delete column", + "operationId": "tablesDBDeleteColumn", "tags": [ "tablesDB" ], - "description": "Update an ip column. Changing the `default` value will not update already existing rows.\n", + "description": "Deletes a column.", "responses": { - "200": { - "description": "ColumnIP", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnIp" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateIpColumn", + "method": "deleteColumn", "group": "columns", - "weight": 364, + "weight": 333, "cookies": false, "type": "", - "demo": "tablesdb\/update-ip-column.md", + "demo": "tablesdb\/delete-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -31411,7 +37061,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-ip-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-column.md", "auth": { "Project": [], "Key": [] @@ -31453,56 +37103,24 @@ }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": false - }, - "default": { - "type": "string", - "description": "Default value. Cannot be set when column is required.", - "x-example": null, - "x-nullable": true - }, - "newKey": { - "type": "string", - "description": "New Column Key.", - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } - } - } + ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/line": { - "post": { - "summary": "Create line column", - "operationId": "tablesDBCreateLineColumn", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/{key}\/relationship": { + "patch": { + "summary": "Update relationship column", + "operationId": "tablesDBUpdateRelationshipColumn", "tags": [ "tablesDB" ], - "description": "Create a geometric line column.", + "description": "Update relationship column. [Learn more about relationship columns](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-columns).\n", "responses": { - "202": { - "description": "ColumnLine", + "200": { + "description": "ColumnRelationship", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnLine" + "$ref": "#\/components\/schemas\/columnRelationship" } } } @@ -31510,12 +37128,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "createLineColumn", + "method": "updateRelationshipColumn", "group": "columns", - "weight": 365, + "weight": 356, "cookies": false, "type": "", - "demo": "tablesdb\/create-line-column.md", + "demo": "tablesdb\/update-relationship-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -31529,7 +37147,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-line-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-relationship-column.md", "auth": { "Project": [], "Key": [] @@ -31554,13 +37172,22 @@ }, { "name": "tableId", - "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "description": "Table ID.", "required": true, "schema": { "type": "string", "x-example": "<TABLE_ID>" }, "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "schema": { + "type": "string" + }, + "in": "path" } ], "requestBody": { @@ -31569,55 +37196,47 @@ "schema": { "type": "object", "properties": { - "key": { + "onDelete": { "type": "string", - "description": "Column Key.", - "x-example": null - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": false + "description": "Constraints option", + "x-example": "cascade", + "enum": [ + "cascade", + "restrict", + "setNull" + ], + "x-enum-name": "RelationMutate", + "x-enum-keys": [], + "x-nullable": true }, - "default": { - "type": "array", - "description": "Default value for column 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 column is required.", - "x-example": "[[1, 2], [3, 4], [5, 6]]", - "items": { - "oneOf": [ - { - "type": "array" - } - ] - }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "x-example": null, "x-nullable": true } - }, - "required": [ - "key", - "required" - ] + } } } } } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/line\/{key}": { - "patch": { - "summary": "Update line column", - "operationId": "tablesDBUpdateLineColumn", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/indexes": { + "get": { + "summary": "List indexes", + "operationId": "tablesDBListIndexes", "tags": [ "tablesDB" ], - "description": "Update a line column. Changing the `default` value will not update already existing rows.", + "description": "List indexes on the table.", "responses": { "200": { - "description": "ColumnLine", + "description": "Column Indexes List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnLine" + "$ref": "#\/components\/schemas\/columnIndexList" } } } @@ -31625,18 +37244,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateLineColumn", - "group": "columns", - "weight": 366, + "method": "listIndexes", + "group": "indexes", + "weight": 372, "cookies": false, "type": "", - "demo": "tablesdb\/update-line-column.md", + "demo": "tablesdb\/list-indexes.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.write", - "collections.write" + "tables.read", + "collections.read" ], "platforms": [ "console", @@ -31644,7 +37263,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-line-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-indexes.md", "auth": { "Project": [], "Key": [] @@ -31669,7 +37288,7 @@ }, { "name": "tableId", - "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "schema": { "type": "string", @@ -31678,70 +37297,45 @@ "in": "path" }, { - "name": "key", - "description": "Column Key.", - "required": true, + "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: key, type, status, attributes, error", + "required": false, "schema": { - "type": "string" + "type": "array", + "items": { + "type": "string" + }, + "default": [] }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": false - }, - "default": { - "type": "array", - "description": "Default value for column 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 column is required.", - "x-example": "[[1, 2], [3, 4], [5, 6]]", - "items": { - "oneOf": [ - { - "type": "array" - } - ] - }, - "x-nullable": true - }, - "newKey": { - "type": "string", - "description": "New Column Key.", - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "required" - ] - } - } + "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", + "x-example": false, + "default": true + }, + "in": "query" } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/longtext": { + ] + }, "post": { - "summary": "Create longtext column", - "operationId": "tablesDBCreateLongtextColumn", + "summary": "Create index", + "operationId": "tablesDBCreateIndex", "tags": [ "tablesDB" ], - "description": "Create a longtext column.\n", + "description": "Creates an index on the columns listed. Your index should include all the columns you will query in a single request.\nType can be `key`, `fulltext`, or `unique`.", "responses": { "202": { - "description": "ColumnLongtext", + "description": "Index", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnLongtext" + "$ref": "#\/components\/schemas\/columnIndex" } } } @@ -31749,12 +37343,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "createLongtextColumn", - "group": "columns", - "weight": 383, + "method": "createIndex", + "group": "indexes", + "weight": 369, "cookies": false, "type": "", - "demo": "tablesdb\/create-longtext-column.md", + "demo": "tablesdb\/create-index.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -31768,7 +37362,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-longtext-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-index.md", "auth": { "Project": [], "Key": [] @@ -31810,34 +37404,57 @@ "properties": { "key": { "type": "string", - "description": "Column Key.", + "description": "Index Key.", "x-example": null }, - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": false - }, - "default": { + "type": { "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": "<DEFAULT>", - "x-nullable": true + "description": "Index type.", + "x-example": "key", + "enum": [ + "key", + "fulltext", + "unique", + "spatial" + ], + "x-enum-name": "IndexType", + "x-enum-keys": [] }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "x-example": false + "columns": { + "type": "array", + "description": "Array of columns to index. Maximum of 100 columns are allowed, each 32 characters long.", + "x-example": null, + "items": { + "type": "string" + } }, - "encrypt": { - "type": "boolean", - "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", - "x-example": false + "orders": { + "type": "array", + "description": "Array of index orders. Maximum of 100 orders are allowed.", + "x-example": null, + "items": { + "type": "string", + "enum": [ + "asc", + "desc" + ], + "x-enum-name": "OrderBy", + "x-enum-keys": [] + } + }, + "lengths": { + "type": "array", + "description": "Length of index. Maximum of 100", + "x-example": null, + "items": { + "type": "integer" + } } }, "required": [ "key", - "required" + "type", + "columns" ] } } @@ -31845,21 +37462,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/longtext\/{key}": { - "patch": { - "summary": "Update longtext column", - "operationId": "tablesDBUpdateLongtextColumn", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/indexes\/{key}": { + "get": { + "summary": "Get index", + "operationId": "tablesDBGetIndex", "tags": [ "tablesDB" ], - "description": "Update a longtext column. Changing the `default` value will not update already existing rows.\n", + "description": "Get index by ID.", "responses": { "200": { - "description": "ColumnLongtext", + "description": "Index", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnLongtext" + "$ref": "#\/components\/schemas\/columnIndex" } } } @@ -31867,18 +37484,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateLongtextColumn", - "group": "columns", - "weight": 384, + "method": "getIndex", + "group": "indexes", + "weight": 370, "cookies": false, "type": "", - "demo": "tablesdb\/update-longtext-column.md", + "demo": "tablesdb\/get-index.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.write", - "collections.write" + "tables.read", + "collections.read" ], "platforms": [ "console", @@ -31886,7 +37503,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-longtext-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-index.md", "auth": { "Project": [], "Key": [] @@ -31921,63 +37538,108 @@ }, { "name": "key", - "description": "Column Key.", + "description": "Index Key.", "required": true, "schema": { "type": "string" }, "in": "path" } + ] + }, + "delete": { + "summary": "Delete index", + "operationId": "tablesDBDeleteIndex", + "tags": [ + "tablesDB" ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": false - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": "<DEFAULT>", - "x-nullable": true - }, - "newKey": { - "type": "string", - "description": "New Column Key.", - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } + "description": "Delete an index.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteIndex", + "group": "indexes", + "weight": 371, + "cookies": false, + "type": "", + "demo": "tablesdb\/delete-index.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-index.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "schema": { + "type": "string", + "x-example": "<TABLE_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Index Key.", + "required": true, + "schema": { + "type": "string" + }, + "in": "path" } - } + ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/mediumtext": { - "post": { - "summary": "Create mediumtext column", - "operationId": "tablesDBCreateMediumtextColumn", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows": { + "get": { + "summary": "List rows", + "operationId": "tablesDBListRows", "tags": [ "tablesDB" ], - "description": "Create a mediumtext column.\n", + "description": "Get a list of all the user's rows in a given table. You can use the query params to filter your results.", "responses": { - "202": { - "description": "ColumnMediumtext", + "200": { + "description": "Rows List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnMediumtext" + "$ref": "#\/components\/schemas\/rowList" } } } @@ -31985,35 +37647,39 @@ }, "deprecated": false, "x-appwrite": { - "method": "createMediumtextColumn", - "group": "columns", + "method": "listRows", + "group": "rows", "weight": 381, "cookies": false, "type": "", - "demo": "tablesdb\/create-mediumtext-column.md", + "demo": "tablesdb\/list-rows.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.write", - "collections.write" + "rows.read", + "documents.read" ], "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-mediumtext-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-rows.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ @@ -32029,73 +37695,76 @@ }, { "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/products\/databases\/tables#create-table).", "required": true, "schema": { "type": "string", "x-example": "<TABLE_ID>" }, "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", + "x-example": "<TRANSACTION_ID>" + }, + "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", + "x-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", + "x-example": 0, + "default": 0 + }, + "in": "query" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "x-example": null - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": false - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": "<DEFAULT>", - "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "x-example": false - }, - "encrypt": { - "type": "boolean", - "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", - "x-example": false - } - }, - "required": [ - "key", - "required" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/mediumtext\/{key}": { - "patch": { - "summary": "Update mediumtext column", - "operationId": "tablesDBUpdateMediumtextColumn", + ] + }, + "post": { + "summary": "Create row", + "operationId": "tablesDBCreateRow", "tags": [ "tablesDB" ], - "description": "Update a mediumtext column. Changing the `default` value will not update already existing rows.\n", + "description": "Create a new Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", "responses": { - "200": { - "description": "ColumnMediumtext", + "201": { + "description": "Row", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnMediumtext" + "$ref": "#\/components\/schemas\/row" } } } @@ -32103,35 +37772,102 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateMediumtextColumn", - "group": "columns", - "weight": 382, + "method": "createRow", + "group": "rows", + "weight": 373, "cookies": false, "type": "", - "demo": "tablesdb\/update-mediumtext-column.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", + "demo": "tablesdb\/create-row.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", "scope": [ - "tables.write", - "collections.write" + "rows.write", + "documents.write" ], "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-mediumtext-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-row.md", + "methods": [ + { + "name": "createRow", + "namespace": "tablesDB", + "desc": "Create row", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "databaseId", + "tableId", + "rowId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "tableId", + "rowId", + "data" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/row" + } + ], + "description": "Create a new Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "demo": "tablesdb\/create-row.md", + "public": true + }, + { + "name": "createRows", + "namespace": "tablesDB", + "desc": "Create rows", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "databaseId", + "tableId", + "rows", + "transactionId" + ], + "required": [ + "databaseId", + "tableId", + "rows" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/rowList" + } + ], + "description": "Create new Rows. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "demo": "tablesdb\/create-rows.md", + "public": true + } + ], "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ @@ -32147,22 +37883,13 @@ }, { "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable). Make sure to define columns before creating rows.", "required": true, "schema": { "type": "string", "x-example": "<TABLE_ID>" }, "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string" - }, - "in": "path" } ], "requestBody": { @@ -32171,49 +37898,59 @@ "schema": { "type": "object", "properties": { - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": false - }, - "default": { + "rowId": { "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": "<DEFAULT>", + "description": "Row 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.", + "x-example": "<ROW_ID>" + }, + "data": { + "type": "object", + "description": "Row data as JSON object.", + "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":30,\"isAdmin\":false}" + }, + "permissions": { + "type": "array", + "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).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + }, "x-nullable": true }, - "newKey": { - "type": "string", - "description": "New Column Key.", + "rows": { + "type": "array", + "description": "Array of rows data as JSON objects.", "x-example": null, + "items": { + "type": "object" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>", "x-nullable": true } - }, - "required": [ - "required", - "default" - ] + } } } } } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/point": { - "post": { - "summary": "Create point column", - "operationId": "tablesDBCreatePointColumn", + }, + "put": { + "summary": "Upsert rows", + "operationId": "tablesDBUpsertRows", "tags": [ "tablesDB" ], - "description": "Create a geometric point column.", + "description": "Create or update Rows. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.\n", "responses": { - "202": { - "description": "ColumnPoint", + "201": { + "description": "Rows List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnPoint" + "$ref": "#\/components\/schemas\/rowList" } } } @@ -32221,18 +37958,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "createPointColumn", - "group": "columns", - "weight": 367, + "method": "upsertRows", + "group": "rows", + "weight": 378, "cookies": false, "type": "", - "demo": "tablesdb\/create-point-column.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", + "demo": "tablesdb\/upsert-rows.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", "scope": [ - "tables.write", - "collections.write" + "rows.write", + "documents.write" ], "platforms": [ "console", @@ -32240,7 +37977,38 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-point-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/upsert-rows.md", + "methods": [ + { + "name": "upsertRows", + "namespace": "tablesDB", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "databaseId", + "tableId", + "rows", + "transactionId" + ], + "required": [ + "databaseId", + "tableId", + "rows" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/rowList" + } + ], + "description": "Create or update Rows. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.\n", + "demo": "tablesdb\/upsert-rows.md", + "public": true + } + ], "auth": { "Project": [], "Key": [] @@ -32265,7 +38033,7 @@ }, { "name": "tableId", - "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "description": "Table ID.", "required": true, "schema": { "type": "string", @@ -32280,55 +38048,43 @@ "schema": { "type": "object", "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "x-example": null - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": false - }, - "default": { + "rows": { "type": "array", - "description": "Default value for column when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when column is required.", - "x-example": "[1, 2]", + "description": "Array of row data as JSON objects. May contain partial rows.", + "x-example": null, "items": { - "oneOf": [ - { - "type": "array" - } - ] - }, + "type": "object" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>", "x-nullable": true } }, "required": [ - "key", - "required" + "rows" ] } } } } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/point\/{key}": { + }, "patch": { - "summary": "Update point column", - "operationId": "tablesDBUpdatePointColumn", + "summary": "Update rows", + "operationId": "tablesDBUpdateRows", "tags": [ "tablesDB" ], - "description": "Update a point column. Changing the `default` value will not update already existing rows.", + "description": "Update all rows that match your queries, if no queries are submitted then all rows are updated. You can pass only specific fields to be updated.", "responses": { "200": { - "description": "ColumnPoint", + "description": "Rows List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnPoint" + "$ref": "#\/components\/schemas\/rowList" } } } @@ -32336,18 +38092,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "updatePointColumn", - "group": "columns", - "weight": 368, + "method": "updateRows", + "group": "rows", + "weight": 376, "cookies": false, "type": "", - "demo": "tablesdb\/update-point-column.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", + "demo": "tablesdb\/update-rows.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", "scope": [ - "tables.write", - "collections.write" + "rows.write", + "documents.write" ], "platforms": [ "console", @@ -32355,7 +38111,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-point-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-rows.md", "auth": { "Project": [], "Key": [] @@ -32380,22 +38136,13 @@ }, { "name": "tableId", - "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "description": "Table ID.", "required": true, "schema": { "type": "string", "x-example": "<TABLE_ID>" }, "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string" - }, - "in": "path" } ], "requestBody": { @@ -32404,55 +38151,45 @@ "schema": { "type": "object", "properties": { - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": false + "data": { + "type": "object", + "description": "Row data as JSON object. Include only column and value pairs to be updated.", + "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":33,\"isAdmin\":false}" }, - "default": { + "queries": { "type": "array", - "description": "Default value for column when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when column is required.", - "x-example": "[1, 2]", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "x-example": null, "items": { - "oneOf": [ - { - "type": "array" - } - ] - }, - "x-nullable": true + "type": "string" + } }, - "newKey": { + "transactionId": { "type": "string", - "description": "New Column Key.", - "x-example": null, + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>", "x-nullable": true } - }, - "required": [ - "required" - ] + } } } } } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/polygon": { - "post": { - "summary": "Create polygon column", - "operationId": "tablesDBCreatePolygonColumn", + }, + "delete": { + "summary": "Delete rows", + "operationId": "tablesDBDeleteRows", "tags": [ "tablesDB" ], - "description": "Create a geometric polygon column.", + "description": "Bulk delete rows using queries, if no queries are passed then all rows are deleted.", "responses": { - "202": { - "description": "ColumnPolygon", + "200": { + "description": "Rows List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnPolygon" + "$ref": "#\/components\/schemas\/rowList" } } } @@ -32460,18 +38197,18 @@ }, "deprecated": false, "x-appwrite": { - "method": "createPolygonColumn", - "group": "columns", - "weight": 369, + "method": "deleteRows", + "group": "rows", + "weight": 380, "cookies": false, "type": "", - "demo": "tablesdb\/create-polygon-column.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", + "demo": "tablesdb\/delete-rows.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", "scope": [ - "tables.write", - "collections.write" + "rows.write", + "documents.write" ], "platforms": [ "console", @@ -32479,7 +38216,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-polygon-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-rows.md", "auth": { "Project": [], "Key": [] @@ -32504,7 +38241,7 @@ }, { "name": "tableId", - "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "schema": { "type": "string", @@ -32519,55 +38256,42 @@ "schema": { "type": "object", "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "x-example": null - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": false - }, - "default": { + "queries": { "type": "array", - "description": "Default value for column 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 column is required.", - "x-example": "[[[1, 2], [3, 4], [5, 6], [1, 2]]]", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "x-example": null, "items": { - "oneOf": [ - { - "type": "array" - } - ] - }, + "type": "string" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>", "x-nullable": true } - }, - "required": [ - "key", - "required" - ] + } } } } } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/polygon\/{key}": { - "patch": { - "summary": "Update polygon column", - "operationId": "tablesDBUpdatePolygonColumn", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}": { + "get": { + "summary": "Get row", + "operationId": "tablesDBGetRow", "tags": [ "tablesDB" ], - "description": "Update a polygon column. Changing the `default` value will not update already existing rows.", + "description": "Get a row by its unique ID. This endpoint response returns a JSON object with the row data.", "responses": { "200": { - "description": "ColumnPolygon", + "description": "Row", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnPolygon" + "$ref": "#\/components\/schemas\/row" } } } @@ -32575,35 +38299,39 @@ }, "deprecated": false, "x-appwrite": { - "method": "updatePolygonColumn", - "group": "columns", - "weight": 370, + "method": "getRow", + "group": "rows", + "weight": 374, "cookies": false, "type": "", - "demo": "tablesdb\/update-polygon-column.md", + "demo": "tablesdb\/get-row.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.write", - "collections.write" + "rows.read", + "documents.read" ], "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-polygon-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-row.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ @@ -32619,7 +38347,7 @@ }, { "name": "tableId", - "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "schema": { "type": "string", @@ -32628,70 +38356,54 @@ "in": "path" }, { - "name": "key", - "description": "Column Key.", + "name": "rowId", + "description": "Row ID.", "required": true, "schema": { - "type": "string" + "type": "string", + "x-example": "<ROW_ID>" }, "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", + "x-example": "<TRANSACTION_ID>" + }, + "in": "query" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": false - }, - "default": { - "type": "array", - "description": "Default value for column 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 column is required.", - "x-example": "[[[1, 2], [3, 4], [5, 6], [1, 2]]]", - "items": { - "oneOf": [ - { - "type": "array" - } - ] - }, - "x-nullable": true - }, - "newKey": { - "type": "string", - "description": "New Column Key.", - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "required" - ] - } - } - } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/relationship": { - "post": { - "summary": "Create relationship column", - "operationId": "tablesDBCreateRelationshipColumn", + ] + }, + "put": { + "summary": "Upsert a row", + "operationId": "tablesDBUpsertRow", "tags": [ "tablesDB" ], - "description": "Create relationship column. [Learn more about relationship columns](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-columns).\n", + "description": "Create or update a Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", "responses": { - "202": { - "description": "ColumnRelationship", + "201": { + "description": "Row", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnRelationship" + "$ref": "#\/components\/schemas\/row" } } } @@ -32699,35 +38411,72 @@ }, "deprecated": false, "x-appwrite": { - "method": "createRelationshipColumn", - "group": "columns", - "weight": 371, + "method": "upsertRow", + "group": "rows", + "weight": 377, "cookies": false, "type": "", - "demo": "tablesdb\/create-relationship-column.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", + "demo": "tablesdb\/upsert-row.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", "scope": [ - "tables.write", - "collections.write" + "rows.write", + "documents.write" ], "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-relationship-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/upsert-row.md", + "methods": [ + { + "name": "upsertRow", + "namespace": "tablesDB", + "desc": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "databaseId", + "tableId", + "rowId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "tableId", + "rowId" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/row" + } + ], + "description": "Create or update a Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "demo": "tablesdb\/upsert-row.md", + "public": true + } + ], "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ @@ -32750,6 +38499,16 @@ "x-example": "<TABLE_ID>" }, "in": "path" + }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<ROW_ID>" + }, + "in": "path" } ], "requestBody": { @@ -32758,119 +38517,86 @@ "schema": { "type": "object", "properties": { - "relatedTableId": { - "type": "string", - "description": "Related Table ID.", - "x-example": "<RELATED_TABLE_ID>" - }, - "type": { - "type": "string", - "description": "Relation type", - "x-example": "oneToOne", - "enum": [ - "oneToOne", - "manyToOne", - "manyToMany", - "oneToMany" - ], - "x-enum-name": "RelationshipType", - "x-enum-keys": [] - }, - "twoWay": { - "type": "boolean", - "description": "Is Two Way?", - "x-example": false + "data": { + "type": "object", + "description": "Row data as JSON object. Include all required columns of the row to be created or updated.", + "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":33,\"isAdmin\":false}" }, - "key": { - "type": "string", - "description": "Column Key.", - "x-example": null, + "permissions": { + "type": "array", + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + }, "x-nullable": true }, - "twoWayKey": { + "transactionId": { "type": "string", - "description": "Two Way Column Key.", - "x-example": null, + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>", "x-nullable": true - }, - "onDelete": { - "type": "string", - "description": "Constraints option", - "x-example": "cascade", - "enum": [ - "cascade", - "restrict", - "setNull" - ], - "x-enum-name": "RelationMutate", - "x-enum-keys": [] } - }, - "required": [ - "relatedTableId", - "type" - ] + } } } } } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/string": { - "post": { - "summary": "Create string column", - "operationId": "tablesDBCreateStringColumn", + }, + "patch": { + "summary": "Update row", + "operationId": "tablesDBUpdateRow", "tags": [ "tablesDB" ], - "description": "Create a string column.\n", + "description": "Update a row by its unique ID. Using the patch method you can pass only specific fields that will get updated.", "responses": { - "202": { - "description": "ColumnString", + "200": { + "description": "Row", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnString" + "$ref": "#\/components\/schemas\/row" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createStringColumn", - "group": "columns", - "weight": 373, + "method": "updateRow", + "group": "rows", + "weight": 375, "cookies": false, "type": "", - "demo": "tablesdb\/create-string-column.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", + "demo": "tablesdb\/update-row.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", "scope": [ - "tables.write", - "collections.write" + "rows.write", + "documents.write" ], "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-string-column.md", - "deprecated": { - "since": "1.9.0", - "replaceWith": "tablesDB.createTextColumn" - }, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-row.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ @@ -32886,13 +38612,23 @@ }, { "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "description": "Table ID.", "required": true, "schema": { "type": "string", "x-example": "<TABLE_ID>" }, "in": "path" + }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<ROW_ID>" + }, + "in": "path" } ], "requestBody": { @@ -32901,105 +38637,79 @@ "schema": { "type": "object", "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "x-example": null - }, - "size": { - "type": "integer", - "description": "Column size for text columns, in number of characters.", - "x-example": 1, - "format": "int32" + "data": { + "type": "object", + "description": "Row data as JSON object. Include only columns and value pairs to be updated.", + "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":33,\"isAdmin\":false}" }, - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": false + "permissions": { + "type": "array", + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + }, + "x-nullable": true }, - "default": { + "transactionId": { "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": "<DEFAULT>", + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>", "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "x-example": false - }, - "encrypt": { - "type": "boolean", - "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", - "x-example": false } - }, - "required": [ - "key", - "size", - "required" - ] + } } } } } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/string\/{key}": { - "patch": { - "summary": "Update string column", - "operationId": "tablesDBUpdateStringColumn", + }, + "delete": { + "summary": "Delete row", + "operationId": "tablesDBDeleteRow", "tags": [ "tablesDB" ], - "description": "Update a string column. Changing the `default` value will not update already existing rows.\n", + "description": "Delete a row by its unique ID.", "responses": { - "200": { - "description": "ColumnString", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnString" - } - } - } + "204": { + "description": "No content" } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateStringColumn", - "group": "columns", - "weight": 374, + "method": "deleteRow", + "group": "rows", + "weight": 379, "cookies": false, "type": "", - "demo": "tablesdb\/update-string-column.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", + "demo": "tablesdb\/delete-row.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", "scope": [ - "tables.write", - "collections.write" + "rows.write", + "documents.write" ], "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-string-column.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateTextColumn" - }, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-row.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ @@ -33024,11 +38734,12 @@ "in": "path" }, { - "name": "key", - "description": "Column Key.", + "name": "rowId", + "description": "Row ID.", "required": true, "schema": { - "type": "string" + "type": "string", + "x-example": "<ROW_ID>" }, "in": "path" } @@ -33039,56 +38750,34 @@ "schema": { "type": "object", "properties": { - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": false - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": "<DEFAULT>", - "x-nullable": true - }, - "size": { - "type": "integer", - "description": "Maximum size of the string column.", - "x-example": 1, - "format": "int32", - "x-nullable": true - }, - "newKey": { + "transactionId": { "type": "string", - "description": "New Column Key.", - "x-example": null, + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>", "x-nullable": true } - }, - "required": [ - "required", - "default" - ] + } } } } } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/text": { - "post": { - "summary": "Create text column", - "operationId": "tablesDBCreateTextColumn", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}\/{column}\/decrement": { + "patch": { + "summary": "Decrement row column", + "operationId": "tablesDBDecrementRowColumn", "tags": [ "tablesDB" ], - "description": "Create a text column.\n", + "description": "Decrement a specific column of a row by a given value.", "responses": { - "202": { - "description": "ColumnText", + "200": { + "description": "Row", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnText" + "$ref": "#\/components\/schemas\/row" } } } @@ -33096,34 +38785,38 @@ }, "deprecated": false, "x-appwrite": { - "method": "createTextColumn", - "group": "columns", - "weight": 379, + "method": "decrementRowColumn", + "group": "rows", + "weight": 384, "cookies": false, "type": "", - "demo": "tablesdb\/create-text-column.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", + "demo": "tablesdb\/decrement-row-column.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", "scope": [ - "tables.write", - "collections.write" + "rows.write", + "documents.write" ], "platforms": [ + "client", + "server", "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-text-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/decrement-row-column.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], + "Session": [], + "JWT": [], "Key": [] } ], @@ -33140,13 +38833,32 @@ }, { "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "description": "Table ID.", "required": true, "schema": { "type": "string", "x-example": "<TABLE_ID>" }, "in": "path" + }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<ROW_ID>" + }, + "in": "path" + }, + { + "name": "column", + "description": "Column key.", + "required": true, + "schema": { + "type": "string" + }, + "in": "path" } ], "requestBody": { @@ -33155,58 +38867,47 @@ "schema": { "type": "object", "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "x-example": null + "value": { + "type": "number", + "description": "Value to increment the column by. The value must be a number.", + "x-example": null, + "format": "float" }, - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": false + "min": { + "type": "number", + "description": "Minimum value for the column. If the current value is lesser than this value, an exception will be thrown.", + "x-example": null, + "format": "float", + "x-nullable": true }, - "default": { + "transactionId": { "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": "<DEFAULT>", + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>", "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "x-example": false - }, - "encrypt": { - "type": "boolean", - "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", - "x-example": false } - }, - "required": [ - "key", - "required" - ] + } } } } } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/text\/{key}": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}\/{column}\/increment": { "patch": { - "summary": "Update text column", - "operationId": "tablesDBUpdateTextColumn", + "summary": "Increment row column", + "operationId": "tablesDBIncrementRowColumn", "tags": [ "tablesDB" ], - "description": "Update a text column. Changing the `default` value will not update already existing rows.\n", + "description": "Increment a specific column of a row by a given value.", "responses": { "200": { - "description": "ColumnText", + "description": "Row", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnText" + "$ref": "#\/components\/schemas\/row" } } } @@ -33214,34 +38915,38 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateTextColumn", - "group": "columns", - "weight": 380, + "method": "incrementRowColumn", + "group": "rows", + "weight": 383, "cookies": false, "type": "", - "demo": "tablesdb\/update-text-column.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", + "demo": "tablesdb\/increment-row-column.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", "scope": [ - "tables.write", - "collections.write" + "rows.write", + "documents.write" ], "platforms": [ + "client", + "server", "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-text-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/increment-row-column.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], + "Session": [], + "JWT": [], "Key": [] } ], @@ -33258,7 +38963,7 @@ }, { "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "description": "Table ID.", "required": true, "schema": { "type": "string", @@ -33267,8 +38972,18 @@ "in": "path" }, { - "name": "key", - "description": "Column Key.", + "name": "rowId", + "description": "Row ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<ROW_ID>" + }, + "in": "path" + }, + { + "name": "column", + "description": "Column key.", "required": true, "schema": { "type": "string" @@ -33282,49 +38997,47 @@ "schema": { "type": "object", "properties": { - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": false + "value": { + "type": "number", + "description": "Value to increment the column by. The value must be a number.", + "x-example": null, + "format": "float" }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": "<DEFAULT>", + "max": { + "type": "number", + "description": "Maximum value for the column. If the current value is greater than this value, an error will be thrown.", + "x-example": null, + "format": "float", "x-nullable": true }, - "newKey": { + "transactionId": { "type": "string", - "description": "New Column Key.", - "x-example": null, + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>", "x-nullable": true } - }, - "required": [ - "required", - "default" - ] + } } } } } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/url": { - "post": { - "summary": "Create URL column", - "operationId": "tablesDBCreateUrlColumn", + "\/teams": { + "get": { + "summary": "List teams", + "operationId": "teamsList", "tags": [ - "tablesDB" + "teams" ], - "description": "Create a URL column.\n", + "description": "Get a list of all the teams in which the current user is a member. You can use the parameters to filter your results.", "responses": { - "202": { - "description": "ColumnURL", + "200": { + "description": "Teams List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnUrl" + "$ref": "#\/components\/schemas\/teamList" } } } @@ -33332,57 +39045,127 @@ }, "deprecated": false, "x-appwrite": { - "method": "createUrlColumn", - "group": "columns", - "weight": 375, + "method": "list", + "group": "teams", + "weight": 579, "cookies": false, "type": "", - "demo": "tablesdb\/create-url-column.md", + "demo": "teams\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write" - ], + "scope": "teams.read", "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-url-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/list-teams.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, + "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, total, billingPlan", + "required": false, "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" + "type": "array", + "items": { + "type": "string" + }, + "default": [] }, - "in": "path" + "in": "query" }, { - "name": "tableId", - "description": "Table ID.", - "required": true, + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, "schema": { "type": "string", - "x-example": "<TABLE_ID>" + "x-example": "<SEARCH>", + "default": "" }, - "in": "path" + "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", + "x-example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create team", + "operationId": "teamsCreate", + "tags": [ + "teams" + ], + "description": "Create a new team. The user who creates the team will automatically be assigned as the owner of the team. Only the users with the owner role can invite new members, add new owners and delete or update the team.", + "responses": { + "201": { + "description": "Team", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/team" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "create", + "group": "teams", + "weight": 577, + "cookies": false, + "type": "", + "demo": "teams\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team.md", + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] } ], "requestBody": { @@ -33391,32 +39174,28 @@ "schema": { "type": "object", "properties": { - "key": { + "teamId": { "type": "string", - "description": "Column Key.", - "x-example": null - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": false + "description": "Team 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.", + "x-example": "<TEAM_ID>" }, - "default": { + "name": { "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": "https:\/\/example.com", - "format": "url", - "x-nullable": true + "description": "Team name. Max length: 128 chars.", + "x-example": "<NAME>" }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "x-example": false + "roles": { + "type": "array", + "description": "Array of strings. Use this param to set the roles in the team for the user who created it. The default role is **owner**. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 32 characters long.", + "x-example": null, + "items": { + "type": "string" + } } }, "required": [ - "key", - "required" + "teamId", + "name" ] } } @@ -33424,21 +39203,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/url\/{key}": { - "patch": { - "summary": "Update URL column", - "operationId": "tablesDBUpdateUrlColumn", + "\/teams\/{teamId}": { + "get": { + "summary": "Get team", + "operationId": "teamsGet", "tags": [ - "tablesDB" + "teams" ], - "description": "Update an url column. Changing the `default` value will not update already existing rows.\n", + "description": "Get a team by its ID. All team members have read access for this resource.", "responses": { "200": { - "description": "ColumnURL", + "description": "Team", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnUrl" + "$ref": "#\/components\/schemas\/team" } } } @@ -33446,64 +39225,112 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateUrlColumn", - "group": "columns", - "weight": 376, + "method": "get", + "group": "teams", + "weight": 578, "cookies": false, "type": "", - "demo": "tablesdb\/update-url-column.md", + "demo": "teams\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write" - ], + "scope": "teams.read", "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-url-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<TEAM_ID>" }, "in": "path" - }, + } + ] + }, + "put": { + "summary": "Update name", + "operationId": "teamsUpdateName", + "tags": [ + "teams" + ], + "description": "Update the team's name by its unique ID.", + "responses": { + "200": { + "description": "Team", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/team" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateName", + "group": "teams", + "weight": 581, + "cookies": false, + "type": "", + "demo": "teams\/update-name.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-name.md", + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<TABLE_ID>" - }, - "in": "path" - }, + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ { - "name": "key", - "description": "Column Key.", + "name": "teamId", + "description": "Team ID.", "required": true, "schema": { - "type": "string" + "type": "string", + "x-example": "<TEAM_ID>" }, "in": "path" } @@ -33514,175 +39341,95 @@ "schema": { "type": "object", "properties": { - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": false - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": "https:\/\/example.com", - "format": "url", - "x-nullable": true - }, - "newKey": { + "name": { "type": "string", - "description": "New Column Key.", - "x-example": null, - "x-nullable": true + "description": "New team name. Max length: 128 chars.", + "x-example": "<NAME>" } }, "required": [ - "required", - "default" + "name" ] } } } } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/varchar": { - "post": { - "summary": "Create varchar column", - "operationId": "tablesDBCreateVarcharColumn", + }, + "delete": { + "summary": "Delete team", + "operationId": "teamsDelete", "tags": [ - "tablesDB" + "teams" ], - "description": "Create a varchar column.\n", + "description": "Delete a team using its ID. Only team members with the owner role can delete the team.", "responses": { - "202": { - "description": "ColumnVarchar", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnVarchar" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "createVarcharColumn", - "group": "columns", - "weight": 377, + "method": "delete", + "group": "teams", + "weight": 580, "cookies": false, "type": "", - "demo": "tablesdb\/create-varchar-column.md", + "demo": "teams\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write" - ], + "scope": "teams.write", "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-varchar-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "name": "teamId", + "description": "Team ID.", "required": true, "schema": { "type": "string", - "x-example": "<TABLE_ID>" + "x-example": "<TEAM_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "x-example": null - }, - "size": { - "type": "integer", - "description": "Column size for varchar columns, in number of characters. Maximum size is 16381.", - "x-example": 1, - "format": "int32" - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": false - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": "<DEFAULT>", - "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "x-example": false - }, - "encrypt": { - "type": "boolean", - "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", - "x-example": false - } - }, - "required": [ - "key", - "size", - "required" - ] - } - } - } - } + ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/varchar\/{key}": { - "patch": { - "summary": "Update varchar column", - "operationId": "tablesDBUpdateVarcharColumn", + "\/teams\/{teamId}\/memberships": { + "get": { + "summary": "List team memberships", + "operationId": "teamsListMemberships", "tags": [ - "tablesDB" + "teams" ], - "description": "Update a varchar column. Changing the `default` value will not update already existing rows.\n", + "description": "Use this endpoint to list a team's members using the team's ID. All team members have read access to this endpoint. Hide sensitive attributes from the response by toggling membership privacy in the Console.", "responses": { "200": { - "description": "ColumnVarchar", + "description": "Memberships List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnVarchar" + "$ref": "#\/components\/schemas\/membershipList" } } } @@ -33690,155 +39437,100 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateVarcharColumn", - "group": "columns", - "weight": 378, + "method": "listMemberships", + "group": "memberships", + "weight": 586, "cookies": false, "type": "", - "demo": "tablesdb\/update-varchar-column.md", + "demo": "teams\/list-memberships.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write" - ], + "scope": "teams.read", "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-varchar-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/list-team-members.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<TEAM_ID>" }, "in": "path" }, { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", - "required": true, + "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, teamId, invited, joined, confirm, roles", + "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", - "x-example": "<TABLE_ID>" + "x-example": "<SEARCH>", + "default": "" }, - "in": "path" + "in": "query" }, { - "name": "key", - "description": "Column Key.", - "required": true, + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, "schema": { - "type": "string" + "type": "boolean", + "x-example": false, + "default": true }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "required": { - "type": "boolean", - "description": "Is column required?", - "x-example": false - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "x-example": "<DEFAULT>", - "x-nullable": true - }, - "size": { - "type": "integer", - "description": "Maximum size of the varchar column.", - "x-example": 1, - "format": "int32", - "x-nullable": true - }, - "newKey": { - "type": "string", - "description": "New Column Key.", - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "required", - "default" - ] - } - } + "in": "query" } - } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/{key}": { - "get": { - "summary": "Get column", - "operationId": "tablesDBGetColumn", + ] + }, + "post": { + "summary": "Create team membership", + "operationId": "teamsCreateMembership", "tags": [ - "tablesDB" + "teams" ], - "description": "Get column by ID.", + "description": "Invite a new member to join your team. Provide an ID for existing users, or invite unregistered users using an email or phone number. If initiated from a Client SDK, Appwrite will send an email or sms with a link to join the team to the invited user, and an account will be created for them if one doesn't exist. If initiated from a Server SDK, the new member will be added automatically to the team.\n\nYou only need to provide one of a user ID, email, or phone number. Appwrite will prioritize accepting the user ID > email > phone number if you provide more than one of these parameters.\n\nUse the `url` parameter to redirect the user from the invitation email to your app. After the user is redirected, use the [Update Team Membership Status](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/teams#updateMembershipStatus) endpoint to allow the user to accept the invitation to the team. \n\nPlease note that to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) Appwrite will accept the only redirect URLs under the domains you have added as a platform on the Appwrite Console.\n", "responses": { - "200": { - "description": "ColumnBoolean, or ColumnInteger, or ColumnFloat, or ColumnEmail, or ColumnEnum, or ColumnURL, or ColumnIP, or ColumnDatetime, or ColumnRelationship, or ColumnString", + "201": { + "description": "Membership", "content": { "application\/json": { "schema": { - "oneOf": [ - { - "$ref": "#\/components\/schemas\/columnBoolean" - }, - { - "$ref": "#\/components\/schemas\/columnInteger" - }, - { - "$ref": "#\/components\/schemas\/columnFloat" - }, - { - "$ref": "#\/components\/schemas\/columnEmail" - }, - { - "$ref": "#\/components\/schemas\/columnEnum" - }, - { - "$ref": "#\/components\/schemas\/columnUrl" - }, - { - "$ref": "#\/components\/schemas\/columnIp" - }, - { - "$ref": "#\/components\/schemas\/columnDatetime" - }, - { - "$ref": "#\/components\/schemas\/columnRelationship" - }, - { - "$ref": "#\/components\/schemas\/columnString" - } - ] + "$ref": "#\/components\/schemas\/membership" } } } @@ -33846,162 +39538,193 @@ }, "deprecated": false, "x-appwrite": { - "method": "getColumn", - "group": "columns", - "weight": 348, + "method": "createMembership", + "group": "memberships", + "weight": 584, "cookies": false, "type": "", - "demo": "tablesdb\/get-column.md", - "rate-limit": 0, + "demo": "teams\/create-membership.md", + "rate-limit": 10, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.read", - "collections.read" - ], + "scope": "teams.write", "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team-membership.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "schema": { "type": "string", - "x-example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string" + "x-example": "<TEAM_ID>" }, "in": "path" } - ] - }, - "delete": { - "summary": "Delete column", - "operationId": "tablesDBDeleteColumn", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "type": "string", + "description": "Email of the new team member.", + "x-example": "email@example.com", + "format": "email" + }, + "userId": { + "type": "string", + "description": "ID of the user to be added to a team.", + "x-example": "<USER_ID>" + }, + "phone": { + "type": "string", + "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "x-example": "+12065550100", + "format": "phone" + }, + "roles": { + "type": "array", + "description": "Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 81 characters long.", + "x-example": null, + "items": { + "type": "string" + } + }, + "url": { + "type": "string", + "description": "URL to redirect the user back to your app from the invitation email. This parameter is not required when an API key is supplied. 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.", + "x-example": "https:\/\/example.com", + "format": "url" + }, + "name": { + "type": "string", + "description": "Name of the new team member. Max length: 128 chars.", + "x-example": "<NAME>" + } + }, + "required": [ + "roles" + ] + } + } + } + } + } + }, + "\/teams\/{teamId}\/memberships\/{membershipId}": { + "get": { + "summary": "Get team membership", + "operationId": "teamsGetMembership", "tags": [ - "tablesDB" + "teams" ], - "description": "Deletes a column.", + "description": "Get a team member by the membership unique id. All team members have read access for this resource. Hide sensitive attributes from the response by toggling membership privacy in the Console.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Membership", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membership" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteColumn", - "group": "columns", - "weight": 349, + "method": "getMembership", + "group": "memberships", + "weight": 585, "cookies": false, "type": "", - "demo": "tablesdb\/delete-column.md", + "demo": "teams\/get-membership.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write" - ], + "scope": "teams.read", "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-member.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<TEAM_ID>" }, "in": "path" }, { - "name": "tableId", - "description": "Table ID.", + "name": "membershipId", + "description": "Membership ID.", "required": true, "schema": { "type": "string", - "x-example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string" + "x-example": "<MEMBERSHIP_ID>" }, "in": "path" } ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/{key}\/relationship": { + }, "patch": { - "summary": "Update relationship column", - "operationId": "tablesDBUpdateRelationshipColumn", + "summary": "Update team membership", + "operationId": "teamsUpdateMembership", "tags": [ - "tablesDB" + "teams" ], - "description": "Update relationship column. [Learn more about relationship columns](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-columns).\n", + "description": "Modify the roles of a team member. Only team members with the owner role have access to this endpoint. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions).\n", "responses": { "200": { - "description": "ColumnRelationship", + "description": "Membership", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnRelationship" + "$ref": "#\/components\/schemas\/membership" } } } @@ -34009,64 +39732,56 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateRelationshipColumn", - "group": "columns", - "weight": 372, + "method": "updateMembership", + "group": "memberships", + "weight": 587, "cookies": false, "type": "", - "demo": "tablesdb\/update-relationship-column.md", + "demo": "teams\/update-membership.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write" - ], + "scope": "teams.write", "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-relationship-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<TEAM_ID>" }, "in": "path" }, { - "name": "tableId", - "description": "Table ID.", + "name": "membershipId", + "description": "Membership ID.", "required": true, "schema": { "type": "string", - "x-example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "schema": { - "type": "string" + "x-example": "<MEMBERSHIP_ID>" }, "in": "path" } @@ -34077,146 +39792,108 @@ "schema": { "type": "object", "properties": { - "onDelete": { - "type": "string", - "description": "Constraints option", - "x-example": "cascade", - "enum": [ - "cascade", - "restrict", - "setNull" - ], - "x-enum-name": "RelationMutate", - "x-enum-keys": [], - "x-nullable": true - }, - "newKey": { - "type": "string", - "description": "New Column Key.", + "roles": { + "type": "array", + "description": "An array of strings. Use this param to set the user's roles in the team. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 81 characters long.", "x-example": null, - "x-nullable": true + "items": { + "type": "string" + } } - } + }, + "required": [ + "roles" + ] } } } } - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/indexes": { - "get": { - "summary": "List indexes", - "operationId": "tablesDBListIndexes", + }, + "delete": { + "summary": "Delete team membership", + "operationId": "teamsDeleteMembership", "tags": [ - "tablesDB" + "teams" ], - "description": "List indexes on the table.", + "description": "This endpoint allows a user to leave a team or for a team owner to delete the membership of any other team member. You can also use this endpoint to delete a user membership even if it is not accepted.", "responses": { - "200": { - "description": "Column Indexes List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/columnIndexList" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "listIndexes", - "group": "indexes", - "weight": 388, + "method": "deleteMembership", + "group": "memberships", + "weight": 803, "cookies": false, "type": "", - "demo": "tablesdb\/list-indexes.md", + "demo": "teams\/delete-membership.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.read", - "collections.read" - ], + "scope": "teams.write", "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-indexes.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team-membership.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<TEAM_ID>" }, "in": "path" }, { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "name": "membershipId", + "description": "Membership ID.", "required": true, "schema": { "type": "string", - "x-example": "<TABLE_ID>" + "x-example": "<MEMBERSHIP_ID>" }, "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 columns: 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", - "x-example": false, - "default": true - }, - "in": "query" } ] - }, - "post": { - "summary": "Create index", - "operationId": "tablesDBCreateIndex", + } + }, + "\/teams\/{teamId}\/memberships\/{membershipId}\/status": { + "patch": { + "summary": "Update team membership status", + "operationId": "teamsUpdateMembershipStatus", "tags": [ - "tablesDB" + "teams" ], - "description": "Creates an index on the columns listed. Your index should include all the columns you will query in a single request.\nType can be `key`, `fulltext`, or `unique`.", + "description": "Use this endpoint to allow a user to accept an invitation to join a team after being redirected back to your app from the invitation email received by the user.\n\nIf the request is successful, a session for the user is automatically created.\n", "responses": { - "202": { - "description": "Index", + "200": { + "description": "Membership", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnIndex" + "$ref": "#\/components\/schemas\/membership" } } } @@ -34224,55 +39901,54 @@ }, "deprecated": false, "x-appwrite": { - "method": "createIndex", - "group": "indexes", - "weight": 385, + "method": "updateMembershipStatus", + "group": "memberships", + "weight": 589, "cookies": false, "type": "", - "demo": "tablesdb\/create-index.md", + "demo": "teams\/update-membership-status.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write" - ], + "scope": "public", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-index.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership-status.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<TEAM_ID>" }, "in": "path" }, { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "name": "membershipId", + "description": "Membership ID.", "required": true, "schema": { "type": "string", - "x-example": "<TABLE_ID>" + "x-example": "<MEMBERSHIP_ID>" }, "in": "path" } @@ -34283,59 +39959,20 @@ "schema": { "type": "object", "properties": { - "key": { + "userId": { "type": "string", - "description": "Index Key.", - "x-example": null + "description": "User ID.", + "x-example": "<USER_ID>" }, - "type": { + "secret": { "type": "string", - "description": "Index type.", - "x-example": "key", - "enum": [ - "key", - "fulltext", - "unique", - "spatial" - ], - "x-enum-name": "IndexType", - "x-enum-keys": [] - }, - "columns": { - "type": "array", - "description": "Array of columns to index. Maximum of 100 columns are allowed, each 32 characters long.", - "x-example": null, - "items": { - "type": "string" - } - }, - "orders": { - "type": "array", - "description": "Array of index orders. Maximum of 100 orders are allowed.", - "x-example": null, - "items": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "x-enum-name": "OrderBy", - "x-enum-keys": [] - } - }, - "lengths": { - "type": "array", - "description": "Length of index. Maximum of 100", - "x-example": null, - "items": { - "type": "integer" - } + "description": "Secret key.", + "x-example": "<SECRET>" } }, "required": [ - "key", - "type", - "columns" + "userId", + "secret" ] } } @@ -34343,21 +39980,21 @@ } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/indexes\/{key}": { + "\/teams\/{teamId}\/prefs": { "get": { - "summary": "Get index", - "operationId": "tablesDBGetIndex", + "summary": "Get team preferences", + "operationId": "teamsGetPrefs", "tags": [ - "tablesDB" + "teams" ], - "description": "Get index by ID.", + "description": "Get the team's shared preferences by its unique ID. If a preference doesn't need to be shared by all team members, prefer storing them in [user preferences](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#getPrefs).", "responses": { "200": { - "description": "Index", + "description": "Preferences", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/columnIndex" + "$ref": "#\/components\/schemas\/preferences" } } } @@ -34365,162 +40002,148 @@ }, "deprecated": false, "x-appwrite": { - "method": "getIndex", - "group": "indexes", - "weight": 386, + "method": "getPrefs", + "group": "teams", + "weight": 582, "cookies": false, "type": "", - "demo": "tablesdb\/get-index.md", + "demo": "teams\/get-prefs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.read", - "collections.read" - ], + "scope": "teams.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-index.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-prefs.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "name": "teamId", + "description": "Team ID.", "required": true, "schema": { "type": "string", - "x-example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Index Key.", - "required": true, - "schema": { - "type": "string" + "x-example": "<TEAM_ID>" }, "in": "path" } ] }, - "delete": { - "summary": "Delete index", - "operationId": "tablesDBDeleteIndex", + "put": { + "summary": "Update team preferences", + "operationId": "teamsUpdatePrefs", "tags": [ - "tablesDB" + "teams" ], - "description": "Delete an index.", + "description": "Update the team's preferences by its unique ID. The object you pass is stored as is and replaces any previous value. The maximum allowed prefs size is 64kB and throws an error if exceeded.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Preferences", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/preferences" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteIndex", - "group": "indexes", - "weight": 387, + "method": "updatePrefs", + "group": "teams", + "weight": 583, "cookies": false, "type": "", - "demo": "tablesdb\/delete-index.md", + "demo": "teams\/update-prefs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write" - ], + "scope": "teams.write", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-index.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-prefs.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "name": "teamId", + "description": "Team ID.", "required": true, "schema": { "type": "string", - "x-example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "key", - "description": "Index Key.", - "required": true, - "schema": { - "type": "string" + "x-example": "<TEAM_ID>" }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "prefs": { + "type": "object", + "description": "Prefs key-value JSON object.", + "x-example": "{}" + } + }, + "required": [ + "prefs" + ] + } + } + } + } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows": { + "\/tokens\/buckets\/{bucketId}\/files\/{fileId}": { "get": { - "summary": "List rows", - "operationId": "tablesDBListRows", + "summary": "List tokens", + "operationId": "tokensList", "tags": [ - "tablesDB" + "tokens" ], - "description": "Get a list of all the user's rows in a given table. You can use the query params to filter your results.", + "description": "List all the tokens created for a specific file or bucket. You can use the query params to filter your results.", "responses": { "200": { - "description": "Rows List", + "description": "Resource Tokens List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/rowList" + "$ref": "#\/components\/schemas\/resourceTokenList" } } } @@ -34528,65 +40151,57 @@ }, "deprecated": false, "x-appwrite": { - "method": "listRows", - "group": "rows", - "weight": 397, + "method": "list", + "group": "files", + "weight": 593, "cookies": false, "type": "", - "demo": "tablesdb\/list-rows.md", + "demo": "tokens\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "rows.read", - "documents.read" - ], + "scope": "tokens.read", "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-rows.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<BUCKET_ID>" }, "in": "path" }, { - "name": "tableId", - "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/products\/databases\/tables#create-table).", + "name": "fileId", + "description": "File unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<TABLE_ID>" + "x-example": "<FILE_ID>" }, "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.", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: expire", "required": false, "schema": { "type": "array", @@ -34597,166 +40212,85 @@ }, "in": "query" }, - { - "name": "transactionId", - "description": "Transaction ID to read uncommitted changes within the transaction.", - "required": false, - "schema": { - "type": "string", - "x-example": "<TRANSACTION_ID>" - }, - "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", - "x-example": false, - "default": true - }, - "in": "query" - } - ] - }, - "post": { - "summary": "Create row", - "operationId": "tablesDBCreateRow", - "tags": [ - "tablesDB" - ], - "description": "Create a new Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", - "responses": { - "201": { - "description": "Row", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/row" - } - } - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "createRow", - "group": "rows", - "weight": 389, - "cookies": false, - "type": "", - "demo": "tablesdb\/create-row.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": [ - "rows.write", - "documents.write" - ], - "platforms": [ - "console", - "client", - "server", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-row.md", - "methods": [ - { - "name": "createRow", - "namespace": "tablesDB", - "desc": "Create row", - "auth": { - "Project": [], - "Session": [] - }, - "parameters": [ - "databaseId", - "tableId", - "rowId", - "data", - "permissions", - "transactionId" - ], - "required": [ - "databaseId", - "tableId", - "rowId", - "data" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/row" - } - ], - "description": "Create a new Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", - "demo": "tablesdb\/create-row.md", - "public": true - }, - { - "name": "createRows", - "namespace": "tablesDB", - "desc": "Create rows", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "databaseId", - "tableId", - "rows", - "transactionId" - ], - "required": [ - "databaseId", - "tableId", - "rows" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/rowList" + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "schema": { + "type": "boolean", + "x-example": false, + "default": true + }, + "in": "query" + } + ] + }, + "post": { + "summary": "Create file token", + "operationId": "tokensCreateFileToken", + "tags": [ + "tokens" + ], + "description": "Create a new token. A token is linked to a file. Token can be passed as a request URL search parameter.", + "responses": { + "201": { + "description": "ResourceToken", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/resourceToken" } - ], - "description": "Create new Rows. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", - "demo": "tablesdb\/create-rows.md", - "public": true + } } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createFileToken", + "group": "files", + "weight": 591, + "cookies": false, + "type": "", + "demo": "tokens\/create-file-token.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "tokens.write", + "platforms": [ + "console", + "server" ], + "packaging": false, + "public": true, "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", "required": true, "schema": { "type": "string", - "x-example": "<DATABASE_ID>" + "x-example": "<BUCKET_ID>" }, "in": "path" }, { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable). Make sure to define columns before creating rows.", + "name": "fileId", + "description": "File unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<TABLE_ID>" + "x-example": "<FILE_ID>" }, "in": "path" } @@ -34767,37 +40301,10 @@ "schema": { "type": "object", "properties": { - "rowId": { + "expire": { "type": "string", - "description": "Row 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.", - "x-example": "<ROW_ID>" - }, - "data": { - "type": "object", - "description": "Row data as JSON object.", - "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":30,\"isAdmin\":false}" - }, - "permissions": { - "type": "array", - "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).", - "x-example": "[\"read(\"any\")\"]", - "items": { - "type": "string" - }, - "x-nullable": true - }, - "rows": { - "type": "array", - "description": "Array of rows data as JSON objects.", + "description": "Token expiry date", "x-example": null, - "items": { - "type": "object" - } - }, - "transactionId": { - "type": "string", - "description": "Transaction ID for staging the operation.", - "x-example": "<TRANSACTION_ID>", "x-nullable": true } } @@ -34805,21 +40312,23 @@ } } } - }, - "put": { - "summary": "Upsert rows", - "operationId": "tablesDBUpsertRows", + } + }, + "\/tokens\/{tokenId}": { + "get": { + "summary": "Get token", + "operationId": "tokensGet", "tags": [ - "tablesDB" + "tokens" ], - "description": "Create or update Rows. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.\n", + "description": "Get a token by its unique ID.", "responses": { - "201": { - "description": "Rows List", + "200": { + "description": "ResourceToken", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/rowList" + "$ref": "#\/components\/schemas\/resourceToken" } } } @@ -34827,57 +40336,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "upsertRows", - "group": "rows", - "weight": 394, + "method": "get", + "group": "tokens", + "weight": 592, "cookies": false, "type": "", - "demo": "tablesdb\/upsert-rows.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": [ - "rows.write", - "documents.write" - ], + "demo": "tokens\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "tokens.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/upsert-rows.md", - "methods": [ - { - "name": "upsertRows", - "namespace": "tablesDB", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "databaseId", - "tableId", - "rows", - "transactionId" - ], - "required": [ - "databaseId", - "tableId", - "rows" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/rowList" - } - ], - "description": "Create or update Rows. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.\n", - "demo": "tablesdb\/upsert-rows.md", - "public": true - } - ], "auth": { "Project": [], "Key": [] @@ -34891,69 +40365,31 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", + "name": "tokenId", + "description": "Token ID.", "required": true, "schema": { "type": "string", - "x-example": "<TABLE_ID>" + "x-example": "<TOKEN_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "rows": { - "type": "array", - "description": "Array of row data as JSON objects. May contain partial rows.", - "x-example": null, - "items": { - "type": "object" - } - }, - "transactionId": { - "type": "string", - "description": "Transaction ID for staging the operation.", - "x-example": "<TRANSACTION_ID>", - "x-nullable": true - } - }, - "required": [ - "rows" - ] - } - } - } - } + ] }, "patch": { - "summary": "Update rows", - "operationId": "tablesDBUpdateRows", + "summary": "Update token", + "operationId": "tokensUpdate", "tags": [ - "tablesDB" + "tokens" ], - "description": "Update all rows that match your queries, if no queries are submitted then all rows are updated. You can pass only specific fields to be updated.", + "description": "Update a token by its unique ID. Use this endpoint to update a token's expiry date.", "responses": { "200": { - "description": "Rows List", + "description": "ResourceToken", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/rowList" + "$ref": "#\/components\/schemas\/resourceToken" } } } @@ -34961,26 +40397,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateRows", - "group": "rows", - "weight": 392, + "method": "update", + "group": "tokens", + "weight": 594, "cookies": false, "type": "", - "demo": "tablesdb\/update-rows.md", - "rate-limit": 120, + "demo": "tokens\/update.md", + "rate-limit": 60, "rate-time": 60, "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": [ - "rows.write", - "documents.write" - ], + "scope": "tokens.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-rows.md", "auth": { "Project": [], "Key": [] @@ -34994,22 +40426,12 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", + "name": "tokenId", + "description": "Token unique ID.", "required": true, "schema": { "type": "string", - "x-example": "<TABLE_ID>" + "x-example": "<TOKEN_ID>" }, "in": "path" } @@ -35020,23 +40442,10 @@ "schema": { "type": "object", "properties": { - "data": { - "type": "object", - "description": "Row data as JSON object. Include only column and value pairs to be updated.", - "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":33,\"isAdmin\":false}" - }, - "queries": { - "type": "array", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", - "x-example": null, - "items": { - "type": "string" - } - }, - "transactionId": { + "expire": { "type": "string", - "description": "Transaction ID for staging the operation.", - "x-example": "<TRANSACTION_ID>", + "description": "File token expiry date", + "x-example": null, "x-nullable": true } } @@ -35046,46 +40455,35 @@ } }, "delete": { - "summary": "Delete rows", - "operationId": "tablesDBDeleteRows", + "summary": "Delete token", + "operationId": "tokensDelete", "tags": [ - "tablesDB" + "tokens" ], - "description": "Bulk delete rows using queries, if no queries are passed then all rows are deleted.", + "description": "Delete a token by its unique ID.", "responses": { - "200": { - "description": "Rows List", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/rowList" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "deleteRows", - "group": "rows", - "weight": 396, + "method": "delete", + "group": "tokens", + "weight": 595, "cookies": false, "type": "", - "demo": "tablesdb\/delete-rows.md", + "demo": "tokens\/delete.md", "rate-limit": 60, "rate-time": 60, "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": [ - "rows.write", - "documents.write" - ], + "scope": "tokens.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-rows.md", "auth": { "Project": [], "Key": [] @@ -35099,68 +40497,33 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "name": "tokenId", + "description": "Token ID.", "required": true, "schema": { "type": "string", - "x-example": "<TABLE_ID>" + "x-example": "<TOKEN_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "queries": { - "type": "array", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", - "x-example": null, - "items": { - "type": "string" - } - }, - "transactionId": { - "type": "string", - "description": "Transaction ID for staging the operation.", - "x-example": "<TRANSACTION_ID>", - "x-nullable": true - } - } - } - } - } - } + ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}": { + "\/users": { "get": { - "summary": "Get row", - "operationId": "tablesDBGetRow", + "summary": "List users", + "operationId": "usersList", "tags": [ - "tablesDB" + "users" ], - "description": "Get a row by its unique ID. This endpoint response returns a JSON object with the row data.", + "description": "Get a list of all the project's users. You can use the query params to filter your results.", "responses": { "200": { - "description": "Row", + "description": "Users List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/row" + "$ref": "#\/components\/schemas\/userList" } } } @@ -35168,75 +40531,38 @@ }, "deprecated": false, "x-appwrite": { - "method": "getRow", - "group": "rows", - "weight": 390, + "method": "list", + "group": "users", + "weight": 115, "cookies": false, "type": "", - "demo": "tablesdb\/get-row.md", + "demo": "users\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "rows.read", - "documents.read" - ], + "scope": "users.read", "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-row.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-users.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", - "required": true, - "schema": { - "type": "string", - "x-example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "rowId", - "description": "Row ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<ROW_ID>" - }, - "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.", + "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, email, phone, status, passwordUpdate, registration, emailVerification, phoneVerification, labels", "required": false, "schema": { "type": "array", @@ -35248,31 +40574,138 @@ "in": "query" }, { - "name": "transactionId", - "description": "Transaction ID to read uncommitted changes within the transaction.", + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", "required": false, "schema": { "type": "string", - "x-example": "<TRANSACTION_ID>" + "x-example": "<SEARCH>", + "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", + "x-example": false, + "default": true }, "in": "query" } - ] - }, - "put": { - "summary": "Upsert a row", - "operationId": "tablesDBUpsertRow", + ] + }, + "post": { + "summary": "Create user", + "operationId": "usersCreate", + "tags": [ + "users" + ], + "description": "Create a new user.", + "responses": { + "201": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "create", + "group": "users", + "weight": 106, + "cookies": false, + "type": "", + "demo": "users\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-user.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "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.", + "x-example": "<USER_ID>" + }, + "email": { + "type": "string", + "description": "User email.", + "x-example": "email@example.com", + "format": "email", + "x-nullable": true + }, + "phone": { + "type": "string", + "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "x-example": "+12065550100", + "format": "phone", + "x-nullable": true + }, + "password": { + "type": "string", + "description": "Plain text user password. Must be at least 8 chars.", + "x-example": null + }, + "name": { + "type": "string", + "description": "User name. Max length: 128 chars.", + "x-example": "<NAME>" + } + }, + "required": [ + "userId" + ] + } + } + } + } + } + }, + "\/users\/argon2": { + "post": { + "summary": "Create user with Argon2 password", + "operationId": "usersCreateArgon2User", "tags": [ - "tablesDB" + "users" ], - "description": "Create or update a Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "description": "Create a new user. Password provided must be hashed with the [Argon2](https:\/\/en.wikipedia.org\/wiki\/Argon2) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", "responses": { "201": { - "description": "Row", + "description": "User", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/row" + "$ref": "#\/components\/schemas\/user" } } } @@ -35280,104 +40713,32 @@ }, "deprecated": false, "x-appwrite": { - "method": "upsertRow", - "group": "rows", - "weight": 393, + "method": "createArgon2User", + "group": "users", + "weight": 109, "cookies": false, "type": "", - "demo": "tablesdb\/upsert-row.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": [ - "rows.write", - "documents.write" - ], + "demo": "users\/create-argon-2-user.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/upsert-row.md", - "methods": [ - { - "name": "upsertRow", - "namespace": "tablesDB", - "desc": "", - "auth": { - "Project": [], - "Session": [] - }, - "parameters": [ - "databaseId", - "tableId", - "rowId", - "data", - "permissions", - "transactionId" - ], - "required": [ - "databaseId", - "tableId", - "rowId" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/row" - } - ], - "description": "Create or update a Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", - "demo": "tablesdb\/upsert-row.md", - "public": true - } - ], + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-argon2-user.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "rowId", - "description": "Row ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<ROW_ID>" - }, - "in": "path" + "Key": [] } ], "requestBody": { @@ -35386,46 +40747,55 @@ "schema": { "type": "object", "properties": { - "data": { - "type": "object", - "description": "Row data as JSON object. Include all required columns of the row to be created or updated.", - "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":33,\"isAdmin\":false}" + "userId": { + "type": "string", + "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.", + "x-example": "<USER_ID>" }, - "permissions": { - "type": "array", - "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "x-example": "[\"read(\"any\")\"]", - "items": { - "type": "string" - }, - "x-nullable": true + "email": { + "type": "string", + "description": "User email.", + "x-example": "email@example.com", + "format": "email" }, - "transactionId": { + "password": { "type": "string", - "description": "Transaction ID for staging the operation.", - "x-example": "<TRANSACTION_ID>", - "x-nullable": true + "description": "User password hashed using Argon2.", + "x-example": "password", + "format": "password" + }, + "name": { + "type": "string", + "description": "User name. Max length: 128 chars.", + "x-example": "<NAME>" } - } + }, + "required": [ + "userId", + "email", + "password" + ] } } } } - }, - "patch": { - "summary": "Update row", - "operationId": "tablesDBUpdateRow", + } + }, + "\/users\/bcrypt": { + "post": { + "summary": "Create user with bcrypt password", + "operationId": "usersCreateBcryptUser", "tags": [ - "tablesDB" + "users" ], - "description": "Update a row by its unique ID. Using the patch method you can pass only specific fields that will get updated.", + "description": "Create a new user. Password provided must be hashed with the [Bcrypt](https:\/\/en.wikipedia.org\/wiki\/Bcrypt) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", "responses": { - "200": { - "description": "Row", + "201": { + "description": "User", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/row" + "$ref": "#\/components\/schemas\/user" } } } @@ -35433,71 +40803,32 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateRow", - "group": "rows", - "weight": 391, + "method": "createBcryptUser", + "group": "users", + "weight": 107, "cookies": false, "type": "", - "demo": "tablesdb\/update-row.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": [ - "rows.write", - "documents.write" - ], + "demo": "users\/create-bcrypt-user.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-row.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-bcrypt-user.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "rowId", - "description": "Row ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<ROW_ID>" - }, - "in": "path" + "Key": [] } ], "requestBody": { @@ -35506,228 +40837,234 @@ "schema": { "type": "object", "properties": { - "data": { - "type": "object", - "description": "Row data as JSON object. Include only columns and value pairs to be updated.", - "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":33,\"isAdmin\":false}" + "userId": { + "type": "string", + "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.", + "x-example": "<USER_ID>" }, - "permissions": { - "type": "array", - "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "x-example": "[\"read(\"any\")\"]", - "items": { - "type": "string" - }, - "x-nullable": true + "email": { + "type": "string", + "description": "User email.", + "x-example": "email@example.com", + "format": "email" }, - "transactionId": { + "password": { "type": "string", - "description": "Transaction ID for staging the operation.", - "x-example": "<TRANSACTION_ID>", - "x-nullable": true + "description": "User password hashed using Bcrypt.", + "x-example": "password", + "format": "password" + }, + "name": { + "type": "string", + "description": "User name. Max length: 128 chars.", + "x-example": "<NAME>" } - } + }, + "required": [ + "userId", + "email", + "password" + ] } } } } - }, - "delete": { - "summary": "Delete row", - "operationId": "tablesDBDeleteRow", + } + }, + "\/users\/identities": { + "get": { + "summary": "List identities", + "operationId": "usersListIdentities", "tags": [ - "tablesDB" + "users" ], - "description": "Delete a row by its unique ID.", + "description": "Get identities for all users.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Identities List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/identityList" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteRow", - "group": "rows", - "weight": 395, + "method": "listIdentities", + "group": "identities", + "weight": 123, "cookies": false, "type": "", - "demo": "tablesdb\/delete-row.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": [ - "rows.write", - "documents.write" - ], + "demo": "users\/list-identities.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-row.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-identities.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, + "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": "string", - "x-example": "<DATABASE_ID>" + "type": "array", + "items": { + "type": "string" + }, + "default": [] }, - "in": "path" + "in": "query" }, { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", - "required": true, + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, "schema": { "type": "string", - "x-example": "<TABLE_ID>" + "x-example": "<SEARCH>", + "default": "" }, - "in": "path" + "in": "query" }, { - "name": "rowId", - "description": "Row ID.", - "required": true, + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, "schema": { - "type": "string", - "x-example": "<ROW_ID>" + "type": "boolean", + "x-example": false, + "default": true }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "transactionId": { - "type": "string", - "description": "Transaction ID for staging the operation.", - "x-example": "<TRANSACTION_ID>", - "x-nullable": true - } - } - } - } + "in": "query" } - } + ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}\/{column}\/decrement": { - "patch": { - "summary": "Decrement row column", - "operationId": "tablesDBDecrementRowColumn", + "\/users\/identities\/{identityId}": { + "delete": { + "summary": "Delete identity", + "operationId": "usersDeleteIdentity", "tags": [ - "tablesDB" + "users" ], - "description": "Decrement a specific column of a row by a given value.", + "description": "Delete an identity by its unique ID.", "responses": { - "200": { - "description": "Row", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/row" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "decrementRowColumn", - "group": "rows", - "weight": 400, + "method": "deleteIdentity", + "group": "identities", + "weight": 146, "cookies": false, "type": "", - "demo": "tablesdb\/decrement-row-column.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": [ - "rows.write", - "documents.write" - ], + "demo": "users\/delete-identity.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", "platforms": [ - "client", - "server", "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/decrement-row-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-identity.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "JWT": [], "Key": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "rowId", - "description": "Row ID.", + "name": "identityId", + "description": "Identity ID.", "required": true, "schema": { "type": "string", - "x-example": "<ROW_ID>" + "x-example": "<IDENTITY_ID>" }, "in": "path" - }, + } + ] + } + }, + "\/users\/md5": { + "post": { + "summary": "Create user with MD5 password", + "operationId": "usersCreateMD5User", + "tags": [ + "users" + ], + "description": "Create a new user. Password provided must be hashed with the [MD5](https:\/\/en.wikipedia.org\/wiki\/MD5) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "responses": { + "201": { + "description": "User", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/user" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createMD5User", + "group": "users", + "weight": 108, + "cookies": false, + "type": "", + "demo": "users\/create-md-5-user.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-md5-user.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ { - "name": "column", - "description": "Column key.", - "required": true, - "schema": { - "type": "string" - }, - "in": "path" + "Project": [], + "Key": [] } ], "requestBody": { @@ -35736,47 +41073,55 @@ "schema": { "type": "object", "properties": { - "value": { - "type": "number", - "description": "Value to increment the column by. The value must be a number.", - "x-example": null, - "format": "float" + "userId": { + "type": "string", + "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.", + "x-example": "<USER_ID>" }, - "min": { - "type": "number", - "description": "Minimum value for the column. If the current value is lesser than this value, an exception will be thrown.", - "x-example": null, - "format": "float", - "x-nullable": true + "email": { + "type": "string", + "description": "User email.", + "x-example": "email@example.com", + "format": "email" }, - "transactionId": { + "password": { "type": "string", - "description": "Transaction ID for staging the operation.", - "x-example": "<TRANSACTION_ID>", - "x-nullable": true + "description": "User password hashed using MD5.", + "x-example": "password", + "format": "password" + }, + "name": { + "type": "string", + "description": "User name. Max length: 128 chars.", + "x-example": "<NAME>" } - } + }, + "required": [ + "userId", + "email", + "password" + ] } } } } } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}\/{column}\/increment": { - "patch": { - "summary": "Increment row column", - "operationId": "tablesDBIncrementRowColumn", + "\/users\/phpass": { + "post": { + "summary": "Create user with PHPass password", + "operationId": "usersCreatePHPassUser", "tags": [ - "tablesDB" + "users" ], - "description": "Increment a specific column of a row by a given value.", + "description": "Create a new user. Password provided must be hashed with the [PHPass](https:\/\/www.openwall.com\/phpass\/) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", "responses": { - "200": { - "description": "Row", + "201": { + "description": "User", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/row" + "$ref": "#\/components\/schemas\/user" } } } @@ -35784,129 +41129,89 @@ }, "deprecated": false, "x-appwrite": { - "method": "incrementRowColumn", - "group": "rows", - "weight": 399, + "method": "createPHPassUser", + "group": "users", + "weight": 111, "cookies": false, "type": "", - "demo": "tablesdb\/increment-row-column.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": [ - "rows.write", - "documents.write" - ], + "demo": "users\/create-ph-pass-user.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", "platforms": [ - "client", - "server", "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/increment-row-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-phpass-user.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "JWT": [], "Key": [] } ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<DATABASE_ID>" - }, - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<TABLE_ID>" - }, - "in": "path" - }, - { - "name": "rowId", - "description": "Row ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<ROW_ID>" - }, - "in": "path" - }, - { - "name": "column", - "description": "Column key.", - "required": true, - "schema": { - "type": "string" - }, - "in": "path" - } - ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "value": { - "type": "number", - "description": "Value to increment the column by. The value must be a number.", - "x-example": null, - "format": "float" + "userId": { + "type": "string", + "description": "User ID. Choose a custom ID or pass the string `ID.unique()`to auto generate it. 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.", + "x-example": "<USER_ID>" }, - "max": { - "type": "number", - "description": "Maximum value for the column. If the current value is greater than this value, an error will be thrown.", - "x-example": null, - "format": "float", - "x-nullable": true + "email": { + "type": "string", + "description": "User email.", + "x-example": "email@example.com", + "format": "email" }, - "transactionId": { + "password": { "type": "string", - "description": "Transaction ID for staging the operation.", - "x-example": "<TRANSACTION_ID>", - "x-nullable": true + "description": "User password hashed using PHPass.", + "x-example": "password", + "format": "password" + }, + "name": { + "type": "string", + "description": "User name. Max length: 128 chars.", + "x-example": "<NAME>" } - } + }, + "required": [ + "userId", + "email", + "password" + ] } } } } } }, - "\/teams": { - "get": { - "summary": "List teams", - "operationId": "teamsList", + "\/users\/scrypt": { + "post": { + "summary": "Create user with Scrypt password", + "operationId": "usersCreateScryptUser", "tags": [ - "teams" + "users" ], - "description": "Get a list of all the teams in which the current user is a member. You can use the parameters to filter your results.", + "description": "Create a new user. Password provided must be hashed with the [Scrypt](https:\/\/github.com\/Tarsnap\/scrypt) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", "responses": { - "200": { - "description": "Teams List", + "201": { + "description": "User", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/teamList" + "$ref": "#\/components\/schemas\/user" } } } @@ -35914,90 +41219,123 @@ }, "deprecated": false, "x-appwrite": { - "method": "list", - "group": "teams", - "weight": 107, + "method": "createScryptUser", + "group": "users", + "weight": 112, "cookies": false, "type": "", - "demo": "teams\/list.md", + "demo": "users\/create-scrypt-user.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "users.write", "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/list-teams.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-scrypt-user.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "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, total, billingPlan", - "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", - "x-example": "<SEARCH>", - "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", - "x-example": false, - "default": true - }, - "in": "query" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "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.", + "x-example": "<USER_ID>" + }, + "email": { + "type": "string", + "description": "User email.", + "x-example": "email@example.com", + "format": "email" + }, + "password": { + "type": "string", + "description": "User password hashed using Scrypt.", + "x-example": "password", + "format": "password" + }, + "passwordSalt": { + "type": "string", + "description": "Optional salt used to hash password.", + "x-example": "<PASSWORD_SALT>" + }, + "passwordCpu": { + "type": "integer", + "description": "Optional CPU cost used to hash password.", + "x-example": null, + "format": "int32" + }, + "passwordMemory": { + "type": "integer", + "description": "Optional memory cost used to hash password.", + "x-example": null, + "format": "int32" + }, + "passwordParallel": { + "type": "integer", + "description": "Optional parallelization cost used to hash password.", + "x-example": null, + "format": "int32" + }, + "passwordLength": { + "type": "integer", + "description": "Optional hash length used to hash password.", + "x-example": null, + "format": "int32" + }, + "name": { + "type": "string", + "description": "User name. Max length: 128 chars.", + "x-example": "<NAME>" + } + }, + "required": [ + "userId", + "email", + "password", + "passwordSalt", + "passwordCpu", + "passwordMemory", + "passwordParallel", + "passwordLength" + ] + } + } } - ] - }, + } + } + }, + "\/users\/scrypt-modified": { "post": { - "summary": "Create team", - "operationId": "teamsCreate", + "summary": "Create user with Scrypt modified password", + "operationId": "usersCreateScryptModifiedUser", "tags": [ - "teams" + "users" ], - "description": "Create a new team. The user who creates the team will automatically be assigned as the owner of the team. Only the users with the owner role can invite new members, add new owners and delete or update the team.", + "description": "Create a new user. Password provided must be hashed with the [Scrypt Modified](https:\/\/gist.github.com\/Meldiron\/eecf84a0225eccb5a378d45bb27462cc) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", "responses": { "201": { - "description": "Team", + "description": "User", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/team" + "$ref": "#\/components\/schemas\/user" } } } @@ -36005,36 +41343,32 @@ }, "deprecated": false, "x-appwrite": { - "method": "create", - "group": "teams", - "weight": 106, + "method": "createScryptModifiedUser", + "group": "users", + "weight": 113, "cookies": false, "type": "", - "demo": "teams\/create.md", + "demo": "users\/create-scrypt-modified-user.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": "users.write", "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-scrypt-modified-user.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "requestBody": { @@ -36043,28 +41377,51 @@ "schema": { "type": "object", "properties": { - "teamId": { + "userId": { "type": "string", - "description": "Team 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.", - "x-example": "<TEAM_ID>" + "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.", + "x-example": "<USER_ID>" + }, + "email": { + "type": "string", + "description": "User email.", + "x-example": "email@example.com", + "format": "email" + }, + "password": { + "type": "string", + "description": "User password hashed using Scrypt Modified.", + "x-example": "password", + "format": "password" + }, + "passwordSalt": { + "type": "string", + "description": "Salt used to hash password.", + "x-example": "<PASSWORD_SALT>" + }, + "passwordSaltSeparator": { + "type": "string", + "description": "Salt separator used to hash password.", + "x-example": "<PASSWORD_SALT_SEPARATOR>" + }, + "passwordSignerKey": { + "type": "string", + "description": "Signer key used to hash password.", + "x-example": "<PASSWORD_SIGNER_KEY>" }, "name": { "type": "string", - "description": "Team name. Max length: 128 chars.", + "description": "User name. Max length: 128 chars.", "x-example": "<NAME>" - }, - "roles": { - "type": "array", - "description": "Array of strings. Use this param to set the roles in the team for the user who created it. The default role is **owner**. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 32 characters long.", - "x-example": null, - "items": { - "type": "string" - } } }, "required": [ - "teamId", - "name" + "userId", + "email", + "password", + "passwordSalt", + "passwordSaltSeparator", + "passwordSignerKey" ] } } @@ -36072,21 +41429,21 @@ } } }, - "\/teams\/{teamId}": { - "get": { - "summary": "Get team", - "operationId": "teamsGet", + "\/users\/sha": { + "post": { + "summary": "Create user with SHA password", + "operationId": "usersCreateSHAUser", "tags": [ - "teams" + "users" ], - "description": "Get a team by its ID. All team members have read access for this resource.", + "description": "Create a new user. Password provided must be hashed with the [SHA](https:\/\/en.wikipedia.org\/wiki\/Secure_Hash_Algorithm) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", "responses": { - "200": { - "description": "Team", + "201": { + "description": "User", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/team" + "$ref": "#\/components\/schemas\/user" } } } @@ -36094,65 +41451,109 @@ }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": "teams", - "weight": 108, + "method": "createSHAUser", + "group": "users", + "weight": 110, "cookies": false, "type": "", - "demo": "teams\/get.md", + "demo": "users\/create-sha-user.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "users.write", "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-sha-user.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<TEAM_ID>" - }, - "in": "path" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "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.", + "x-example": "<USER_ID>" + }, + "email": { + "type": "string", + "description": "User email.", + "x-example": "email@example.com", + "format": "email" + }, + "password": { + "type": "string", + "description": "User password hashed using SHA.", + "x-example": "password", + "format": "password" + }, + "passwordVersion": { + "type": "string", + "description": "Optional SHA version used to hash password. Allowed values are: 'sha1', 'sha224', 'sha256', 'sha384', 'sha512\/224', 'sha512\/256', 'sha512', 'sha3-224', 'sha3-256', 'sha3-384', 'sha3-512'", + "x-example": "sha1", + "enum": [ + "sha1", + "sha224", + "sha256", + "sha384", + "sha512\/224", + "sha512\/256", + "sha512", + "sha3-224", + "sha3-256", + "sha3-384", + "sha3-512" + ], + "x-enum-name": "PasswordHash", + "x-enum-keys": [] + }, + "name": { + "type": "string", + "description": "User name. Max length: 128 chars.", + "x-example": "<NAME>" + } + }, + "required": [ + "userId", + "email", + "password" + ] + } + } } - ] - }, - "put": { - "summary": "Update name", - "operationId": "teamsUpdateName", + } + } + }, + "\/users\/{userId}": { + "get": { + "summary": "Get user", + "operationId": "usersGet", "tags": [ - "teams" + "users" ], - "description": "Update the team's name by its unique ID.", + "description": "Get a user by its unique ID.", "responses": { "200": { - "description": "Team", + "description": "User", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/team" + "$ref": "#\/components\/schemas\/user" } } } @@ -36160,77 +41561,54 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateName", - "group": "teams", - "weight": 110, + "method": "get", + "group": "users", + "weight": 116, "cookies": false, "type": "", - "demo": "teams\/update-name.md", + "demo": "users\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": "users.read", "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-name.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<TEAM_ID>" + "x-example": "<USER_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "New team name. Max length: 128 chars.", - "x-example": "<NAME>" - } - }, - "required": [ - "name" - ] - } - } - } - } + ] }, "delete": { - "summary": "Delete team", - "operationId": "teamsDelete", + "summary": "Delete user", + "operationId": "usersDelete", "tags": [ - "teams" + "users" ], - "description": "Delete a team using its ID. Only team members with the owner role can delete the team.", + "description": "Delete a user by its unique ID, thereby releasing it's ID. Since ID is released and can be reused, all user-related resources like documents or storage files should be deleted before user deletion. If you want to keep ID reserved, use the [updateStatus](https:\/\/appwrite.io\/docs\/server\/users#usersUpdateStatus) endpoint instead.", "responses": { "204": { "description": "No content" @@ -36239,66 +41617,62 @@ "deprecated": false, "x-appwrite": { "method": "delete", - "group": "teams", - "weight": 112, + "group": "users", + "weight": 144, "cookies": false, "type": "", - "demo": "teams\/delete.md", + "demo": "users\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": "users.write", "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<TEAM_ID>" + "x-example": "<USER_ID>" }, "in": "path" } ] } }, - "\/teams\/{teamId}\/memberships": { - "get": { - "summary": "List team memberships", - "operationId": "teamsListMemberships", + "\/users\/{userId}\/email": { + "patch": { + "summary": "Update email", + "operationId": "usersUpdateEmail", "tags": [ - "teams" + "users" ], - "description": "Use this endpoint to list a team's members using the team's ID. All team members have read access to this endpoint. Hide sensitive attributes from the response by toggling membership privacy in the Console.", + "description": "Update the user email by its unique ID.", "responses": { "200": { - "description": "Memberships List", + "description": "User", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/membershipList" + "$ref": "#\/components\/schemas\/user" } } } @@ -36306,100 +41680,83 @@ }, "deprecated": false, "x-appwrite": { - "method": "listMemberships", - "group": "memberships", - "weight": 114, + "method": "updateEmail", + "group": "users", + "weight": 129, "cookies": false, "type": "", - "demo": "teams\/list-memberships.md", + "demo": "users\/update-email.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "users.write", "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/list-team-members.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-email.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<TEAM_ID>" + "x-example": "<USER_ID>" }, "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: userId, teamId, invited, joined, confirm, roles", - "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", - "x-example": "<SEARCH>", - "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", - "x-example": false, - "default": true - }, - "in": "query" } - ] - }, + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "email": { + "type": "string", + "description": "User email.", + "x-example": "email@example.com", + "format": "email" + } + }, + "required": [ + "email" + ] + } + } + } + } + } + }, + "\/users\/{userId}\/jwts": { "post": { - "summary": "Create team membership", - "operationId": "teamsCreateMembership", + "summary": "Create user JWT", + "operationId": "usersCreateJWT", "tags": [ - "teams" + "users" ], - "description": "Invite a new member to join your team. Provide an ID for existing users, or invite unregistered users using an email or phone number. If initiated from a Client SDK, Appwrite will send an email or sms with a link to join the team to the invited user, and an account will be created for them if one doesn't exist. If initiated from a Server SDK, the new member will be added automatically to the team.\n\nYou only need to provide one of a user ID, email, or phone number. Appwrite will prioritize accepting the user ID > email > phone number if you provide more than one of these parameters.\n\nUse the `url` parameter to redirect the user from the invitation email to your app. After the user is redirected, use the [Update Team Membership Status](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/teams#updateMembershipStatus) endpoint to allow the user to accept the invitation to the team. \n\nPlease note that to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) Appwrite will accept the only redirect URLs under the domains you have added as a platform on the Appwrite Console.\n", + "description": "Use this endpoint to create a JSON Web Token for user by its unique ID. You can use the resulting JWT to authenticate on behalf of the user. The JWT secret will become invalid if the session it uses gets deleted.", "responses": { "201": { - "description": "Membership", + "description": "JWT", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/membership" + "$ref": "#\/components\/schemas\/jwt" } } } @@ -36407,46 +41764,42 @@ }, "deprecated": false, "x-appwrite": { - "method": "createMembership", - "group": "memberships", - "weight": 113, + "method": "createJWT", + "group": "sessions", + "weight": 147, "cookies": false, "type": "", - "demo": "teams\/create-membership.md", - "rate-limit": 10, + "demo": "users\/create-jwt.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": "users.write", "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team-membership.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-user-jwt.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<TEAM_ID>" + "x-example": "<USER_ID>" }, "in": "path" } @@ -36457,67 +41810,39 @@ "schema": { "type": "object", "properties": { - "email": { - "type": "string", - "description": "Email of the new team member.", - "x-example": "email@example.com", - "format": "email" - }, - "userId": { - "type": "string", - "description": "ID of the user to be added to a team.", - "x-example": "<USER_ID>" - }, - "phone": { - "type": "string", - "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "x-example": "+12065550100", - "format": "phone" - }, - "roles": { - "type": "array", - "description": "Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 32 characters long.", - "x-example": null, - "items": { - "type": "string" - } - }, - "url": { + "sessionId": { "type": "string", - "description": "URL to redirect the user back to your app from the invitation email. This parameter is not required when an API key is supplied. 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.", - "x-example": "https:\/\/example.com", - "format": "url" + "description": "Session ID. Use the string 'recent' to use the most recent session. Defaults to the most recent session.", + "x-example": "<SESSION_ID>" }, - "name": { - "type": "string", - "description": "Name of the new team member. Max length: 128 chars.", - "x-example": "<NAME>" + "duration": { + "type": "integer", + "description": "Time in seconds before JWT expires. Default duration is 900 seconds, and maximum is 3600 seconds.", + "x-example": 0, + "format": "int32" } - }, - "required": [ - "roles" - ] + } } } } } } }, - "\/teams\/{teamId}\/memberships\/{membershipId}": { - "get": { - "summary": "Get team membership", - "operationId": "teamsGetMembership", + "\/users\/{userId}\/labels": { + "put": { + "summary": "Update user labels", + "operationId": "usersUpdateLabels", "tags": [ - "teams" + "users" ], - "description": "Get a team member by the membership unique id. All team members have read access for this resource. Hide sensitive attributes from the response by toggling membership privacy in the Console.", + "description": "Update the user labels by its unique ID. \n\nLabels can be used to grant access to resources. While teams are a way for user's to share access to a resource, labels can be defined by the developer to grant access without an invitation. See the [Permissions docs](https:\/\/appwrite.io\/docs\/permissions) for more info.", "responses": { "200": { - "description": "Membership", + "description": "User", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/membership" + "$ref": "#\/components\/schemas\/user" } } } @@ -36525,75 +41850,85 @@ }, "deprecated": false, "x-appwrite": { - "method": "getMembership", - "group": "memberships", - "weight": 115, + "method": "updateLabels", + "group": "users", + "weight": 125, "cookies": false, "type": "", - "demo": "teams\/get-membership.md", + "demo": "users\/update-labels.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "users.write", "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-member.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-labels.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<TEAM_ID>" - }, - "in": "path" - }, - { - "name": "membershipId", - "description": "Membership ID.", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<MEMBERSHIP_ID>" + "x-example": "<USER_ID>" }, "in": "path" } - ] - }, - "patch": { - "summary": "Update membership", - "operationId": "teamsUpdateMembership", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "labels": { + "type": "array", + "description": "Array of user labels. Replaces the previous labels. Maximum of 1000 labels are allowed, each up to 36 alphanumeric characters long.", + "x-example": null, + "items": { + "type": "string" + } + } + }, + "required": [ + "labels" + ] + } + } + } + } + } + }, + "\/users\/{userId}\/logs": { + "get": { + "summary": "List user logs", + "operationId": "usersListLogs", "tags": [ - "teams" + "users" ], - "description": "Modify the roles of a team member. Only team members with the owner role have access to this endpoint. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions).\n", + "description": "Get the user activity logs list by its unique ID.", "responses": { "200": { - "description": "Membership", + "description": "Logs List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/membership" + "$ref": "#\/components\/schemas\/logList" } } } @@ -36601,223 +41936,291 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateMembership", - "group": "memberships", - "weight": 116, + "method": "listLogs", + "group": "logs", + "weight": 121, "cookies": false, "type": "", - "demo": "teams\/update-membership.md", + "demo": "users\/list-logs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": "users.read", "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-user-logs.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<TEAM_ID>" + "x-example": "<USER_ID>" }, "in": "path" }, { - "name": "membershipId", - "description": "Membership ID.", - "required": true, + "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": "string", - "x-example": "<MEMBERSHIP_ID>" + "type": "array", + "items": { + "type": "string" + }, + "default": [] }, - "in": "path" - } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "roles": { - "type": "array", - "description": "An array of strings. Use this param to set the user's roles in the team. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 32 characters long.", - "x-example": null, - "items": { - "type": "string" - } - } - }, - "required": [ - "roles" - ] - } - } + "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", + "x-example": false, + "default": true + }, + "in": "query" } - } - }, - "delete": { - "summary": "Delete team membership", - "operationId": "teamsDeleteMembership", + ] + } + }, + "\/users\/{userId}\/memberships": { + "get": { + "summary": "List user memberships", + "operationId": "usersListMemberships", "tags": [ - "teams" + "users" ], - "description": "This endpoint allows a user to leave a team or for a team owner to delete the membership of any other team member. You can also use this endpoint to delete a user membership even if it is not accepted.", + "description": "Get the user membership list by its unique ID.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Memberships List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/membershipList" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteMembership", - "group": null, - "weight": 555, + "method": "listMemberships", + "group": "memberships", + "weight": 120, "cookies": false, "type": "", - "demo": "teams\/delete-membership.md", + "demo": "users\/list-memberships.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": "users.read", "platforms": [ "console", - "client", - "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team-membership.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-user-memberships.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<TEAM_ID>" + "x-example": "<USER_ID>" }, "in": "path" }, { - "name": "membershipId", - "description": "Membership ID.", - "required": true, + "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, teamId, invited, joined, confirm, roles", + "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", - "x-example": "<MEMBERSHIP_ID>" + "x-example": "<SEARCH>", + "default": "" }, - "in": "path" + "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", + "x-example": false, + "default": true + }, + "in": "query" } ] } }, - "\/teams\/{teamId}\/memberships\/{membershipId}\/status": { + "\/users\/{userId}\/mfa": { "patch": { - "summary": "Update team membership status", - "operationId": "teamsUpdateMembershipStatus", + "summary": "Update MFA", + "operationId": "usersUpdateMfa", "tags": [ - "teams" + "users" ], - "description": "Use this endpoint to allow a user to accept an invitation to join a team after being redirected back to your app from the invitation email received by the user.\n\nIf the request is successful, a session for the user is automatically created.\n", + "description": "Enable or disable MFA on a user account.", "responses": { "200": { - "description": "Membership", + "description": "User", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/membership" + "$ref": "#\/components\/schemas\/user" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "updateMembershipStatus", - "group": "memberships", - "weight": 117, + "method": "updateMfa", + "group": "users", + "weight": 134, "cookies": false, "type": "", - "demo": "teams\/update-membership-status.md", + "demo": "users\/update-mfa.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "users.write", "platforms": [ "console", - "client", "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership-status.md", + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-mfa.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.updateMFA" + }, + "methods": [ + { + "name": "updateMfa", + "namespace": "users", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId", + "mfa" + ], + "required": [ + "userId", + "mfa" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/user" + } + ], + "description": "Enable or disable MFA on a user account.", + "demo": "users\/update-mfa.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.updateMFA" + } + }, + { + "name": "updateMFA", + "namespace": "users", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId", + "mfa" + ], + "required": [ + "userId", + "mfa" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/user" + } + ], + "description": "Enable or disable MFA on a user account.", + "demo": "users\/update-mfa.md", + "public": true + } + ], "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<TEAM_ID>" - }, - "in": "path" - }, - { - "name": "membershipId", - "description": "Membership ID.", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<MEMBERSHIP_ID>" + "x-example": "<USER_ID>" }, "in": "path" } @@ -36828,20 +42231,14 @@ "schema": { "type": "object", "properties": { - "userId": { - "type": "string", - "description": "User ID.", - "x-example": "<USER_ID>" - }, - "secret": { - "type": "string", - "description": "Secret key.", - "x-example": "<SECRET>" + "mfa": { + "type": "boolean", + "description": "Enable or disable MFA.", + "x-example": false } }, "required": [ - "userId", - "secret" + "mfa" ] } } @@ -36849,193 +42246,357 @@ } } }, - "\/teams\/{teamId}\/prefs": { - "get": { - "summary": "Get team preferences", - "operationId": "teamsGetPrefs", + "\/users\/{userId}\/mfa\/authenticators\/{type}": { + "delete": { + "summary": "Delete authenticator", + "operationId": "usersDeleteMfaAuthenticator", "tags": [ - "teams" + "users" ], - "description": "Get the team's shared preferences by its unique ID. If a preference doesn't need to be shared by all team members, prefer storing them in [user preferences](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#getPrefs).", + "description": "Delete an authenticator app.", "responses": { - "200": { - "description": "Preferences", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/preferences" - } - } - } + "204": { + "description": "No content" } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "getPrefs", - "group": "teams", - "weight": 109, + "method": "deleteMfaAuthenticator", + "group": "mfa", + "weight": 139, "cookies": false, "type": "", - "demo": "teams\/get-prefs.md", + "demo": "users\/delete-mfa-authenticator.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "users.write", "platforms": [ "console", - "client", "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-prefs.md", + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-mfa-authenticator.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.deleteMFAAuthenticator" + }, + "methods": [ + { + "name": "deleteMfaAuthenticator", + "namespace": "users", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId", + "type" + ], + "required": [ + "userId", + "type" + ], + "responses": [ + { + "code": 204 + } + ], + "description": "Delete an authenticator app.", + "demo": "users\/delete-mfa-authenticator.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.deleteMFAAuthenticator" + } + }, + { + "name": "deleteMFAAuthenticator", + "namespace": "users", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId", + "type" + ], + "required": [ + "userId", + "type" + ], + "responses": [ + { + "code": 204 + } + ], + "description": "Delete an authenticator app.", + "demo": "users\/delete-mfa-authenticator.md", + "public": true + } + ], "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<TEAM_ID>" + "x-example": "<USER_ID>" + }, + "in": "path" + }, + { + "name": "type", + "description": "Type of authenticator.", + "required": true, + "schema": { + "type": "string", + "x-example": "totp", + "enum": [ + "totp" + ], + "x-enum-name": "AuthenticatorType", + "x-enum-keys": [] }, "in": "path" } ] - }, - "put": { - "summary": "Update preferences", - "operationId": "teamsUpdatePrefs", + } + }, + "\/users\/{userId}\/mfa\/factors": { + "get": { + "summary": "List factors", + "operationId": "usersListMfaFactors", "tags": [ - "teams" + "users" ], - "description": "Update the team's preferences by its unique ID. The object you pass is stored as is and replaces any previous value. The maximum allowed prefs size is 64kB and throws an error if exceeded.", + "description": "List the factors available on the account to be used as a MFA challange.", "responses": { "200": { - "description": "Preferences", + "description": "MFAFactors", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/preferences" + "$ref": "#\/components\/schemas\/mfaFactors" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "updatePrefs", - "group": "teams", - "weight": 111, + "method": "listMfaFactors", + "group": "mfa", + "weight": 135, "cookies": false, "type": "", - "demo": "teams\/update-prefs.md", + "demo": "users\/list-mfa-factors.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": "users.read", "platforms": [ "console", - "client", "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-prefs.md", + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-mfa-factors.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.listMFAFactors" + }, + "methods": [ + { + "name": "listMfaFactors", + "namespace": "users", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaFactors" + } + ], + "description": "List the factors available on the account to be used as a MFA challange.", + "demo": "users\/list-mfa-factors.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.listMFAFactors" + } + }, + { + "name": "listMFAFactors", + "namespace": "users", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaFactors" + } + ], + "description": "List the factors available on the account to be used as a MFA challange.", + "demo": "users\/list-mfa-factors.md", + "public": true + } + ], "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<TEAM_ID>" + "x-example": "<USER_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "prefs": { - "type": "object", - "description": "Prefs key-value JSON object.", - "x-example": "{}" - } - }, - "required": [ - "prefs" - ] - } - } - } - } + ] } }, - "\/tokens\/buckets\/{bucketId}\/files\/{fileId}": { + "\/users\/{userId}\/mfa\/recovery-codes": { "get": { - "summary": "List tokens", - "operationId": "tokensList", + "summary": "Get MFA recovery codes", + "operationId": "usersGetMfaRecoveryCodes", "tags": [ - "tokens" + "users" ], - "description": "List all the tokens created for a specific file or bucket. You can use the query params to filter your results.", + "description": "Get recovery codes that can be used as backup for MFA flow by User ID. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", "responses": { "200": { - "description": "Resource Tokens List", + "description": "MFA Recovery Codes", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/resourceTokenList" + "$ref": "#\/components\/schemas\/mfaRecoveryCodes" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "list", - "group": "files", - "weight": 525, + "method": "getMfaRecoveryCodes", + "group": "mfa", + "weight": 136, "cookies": false, "type": "", - "demo": "tokens\/list.md", + "demo": "users\/get-mfa-recovery-codes.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "tokens.read", + "scope": "users.read", "platforms": [ "console", "server" ], - "packaging": false, - "public": true, + "packaging": false, + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-mfa-recovery-codes.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.getMFARecoveryCodes" + }, + "methods": [ + { + "name": "getMfaRecoveryCodes", + "namespace": "users", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Get recovery codes that can be used as backup for MFA flow by User ID. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", + "demo": "users\/get-mfa-recovery-codes.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.getMFARecoveryCodes" + } + }, + { + "name": "getMFARecoveryCodes", + "namespace": "users", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Get recovery codes that can be used as backup for MFA flow by User ID. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", + "demo": "users\/get-mfa-recovery-codes.md", + "public": true + } + ], "auth": { "Project": [], "Key": [] @@ -37049,88 +42610,113 @@ ], "parameters": [ { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", - "required": true, - "schema": { - "type": "string", - "x-example": "<BUCKET_ID>" - }, - "in": "path" - }, - { - "name": "fileId", - "description": "File unique ID.", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<FILE_ID>" + "x-example": "<USER_ID>" }, "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: expire", - "required": false, - "schema": { - "type": "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", - "x-example": false, - "default": true - }, - "in": "query" } ] }, - "post": { - "summary": "Create file token", - "operationId": "tokensCreateFileToken", + "put": { + "summary": "Update MFA recovery codes (regenerate)", + "operationId": "usersUpdateMfaRecoveryCodes", "tags": [ - "tokens" + "users" ], - "description": "Create a new token. A token is linked to a file. Token can be passed as a request URL search parameter.", + "description": "Regenerate recovery codes that can be used as backup for MFA flow by User ID. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", "responses": { - "201": { - "description": "ResourceToken", + "200": { + "description": "MFA Recovery Codes", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/resourceToken" + "$ref": "#\/components\/schemas\/mfaRecoveryCodes" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "createFileToken", - "group": "files", - "weight": 523, + "method": "updateMfaRecoveryCodes", + "group": "mfa", + "weight": 138, "cookies": false, "type": "", - "demo": "tokens\/create-file-token.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "tokens.write", + "demo": "users\/update-mfa-recovery-codes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", "platforms": [ "console", "server" ], "packaging": false, - "public": true, + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-mfa-recovery-codes.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.updateMFARecoveryCodes" + }, + "methods": [ + { + "name": "updateMfaRecoveryCodes", + "namespace": "users", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Regenerate recovery codes that can be used as backup for MFA flow by User ID. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", + "demo": "users\/update-mfa-recovery-codes.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.updateMFARecoveryCodes" + } + }, + { + "name": "updateMFARecoveryCodes", + "namespace": "users", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Regenerate recovery codes that can be used as backup for MFA flow by User ID. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", + "demo": "users\/update-mfa-recovery-codes.md", + "public": false + } + ], "auth": { "Project": [], "Key": [] @@ -37144,83 +42730,113 @@ ], "parameters": [ { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", - "required": true, - "schema": { - "type": "string", - "x-example": "<BUCKET_ID>" - }, - "in": "path" - }, - { - "name": "fileId", - "description": "File unique ID.", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<FILE_ID>" + "x-example": "<USER_ID>" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "expire": { - "type": "string", - "description": "Token expiry date", - "x-example": null, - "x-nullable": true - } - } - } - } - } - } - } - }, - "\/tokens\/{tokenId}": { - "get": { - "summary": "Get token", - "operationId": "tokensGet", + ] + }, + "patch": { + "summary": "Create MFA recovery codes", + "operationId": "usersCreateMfaRecoveryCodes", "tags": [ - "tokens" + "users" ], - "description": "Get a token by its unique ID.", + "description": "Generate recovery codes used as backup for MFA flow for User ID. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method by client SDK.", "responses": { - "200": { - "description": "ResourceToken", + "201": { + "description": "MFA Recovery Codes", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/resourceToken" + "$ref": "#\/components\/schemas\/mfaRecoveryCodes" } } } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "get", - "group": "tokens", - "weight": 524, + "method": "createMfaRecoveryCodes", + "group": "mfa", + "weight": 137, "cookies": false, "type": "", - "demo": "tokens\/get.md", + "demo": "users\/create-mfa-recovery-codes.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "tokens.read", + "scope": "users.write", "platforms": [ "console", "server" ], "packaging": false, - "public": true, + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-mfa-recovery-codes.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.createMFARecoveryCodes" + }, + "methods": [ + { + "name": "createMfaRecoveryCodes", + "namespace": "users", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Generate recovery codes used as backup for MFA flow for User ID. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method by client SDK.", + "demo": "users\/create-mfa-recovery-codes.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.createMFARecoveryCodes" + } + }, + { + "name": "createMFARecoveryCodes", + "namespace": "users", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/mfaRecoveryCodes" + } + ], + "description": "Generate recovery codes used as backup for MFA flow for User ID. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method by client SDK.", + "demo": "users\/create-mfa-recovery-codes.md", + "public": true + } + ], "auth": { "Project": [], "Key": [] @@ -37234,31 +42850,33 @@ ], "parameters": [ { - "name": "tokenId", - "description": "Token ID.", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<TOKEN_ID>" + "x-example": "<USER_ID>" }, "in": "path" } ] - }, + } + }, + "\/users\/{userId}\/name": { "patch": { - "summary": "Update token", - "operationId": "tokensUpdate", + "summary": "Update name", + "operationId": "usersUpdateName", "tags": [ - "tokens" + "users" ], - "description": "Update a token by its unique ID. Use this endpoint to update a token's expiry date.", + "description": "Update the user name by its unique ID.", "responses": { "200": { - "description": "ResourceToken", + "description": "User", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/resourceToken" + "$ref": "#\/components\/schemas\/user" } } } @@ -37266,22 +42884,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "update", - "group": "tokens", - "weight": 526, + "method": "updateName", + "group": "users", + "weight": 127, "cookies": false, "type": "", - "demo": "tokens\/update.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "tokens.write", + "demo": "users\/update-name.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-name.md", "auth": { "Project": [], "Key": [] @@ -37295,12 +42914,12 @@ ], "parameters": [ { - "name": "tokenId", - "description": "Token unique ID.", + "name": "userId", + "description": "User ID.", "required": true, "schema": { "type": "string", - "x-example": "<TOKEN_ID>" + "x-example": "<USER_ID>" }, "in": "path" } @@ -37311,88 +42930,36 @@ "schema": { "type": "object", "properties": { - "expire": { + "name": { "type": "string", - "description": "File token expiry date", - "x-example": null, - "x-nullable": true + "description": "User name. Max length: 128 chars.", + "x-example": "<NAME>" } - } + }, + "required": [ + "name" + ] } } } } - }, - "delete": { - "summary": "Delete token", - "operationId": "tokensDelete", - "tags": [ - "tokens" - ], - "description": "Delete a token by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "method": "delete", - "group": "tokens", - "weight": 527, - "cookies": false, - "type": "", - "demo": "tokens\/delete.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "tokens.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "tokenId", - "description": "Token ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<TOKEN_ID>" - }, - "in": "path" - } - ] } }, - "\/users": { - "get": { - "summary": "List users", - "operationId": "usersList", + "\/users\/{userId}\/password": { + "patch": { + "summary": "Update password", + "operationId": "usersUpdatePassword", "tags": [ "users" ], - "description": "Get a list of all the project's users. You can use the query params to filter your results.", + "description": "Update the user password by its unique ID.", "responses": { "200": { - "description": "Users List", + "description": "User", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/userList" + "$ref": "#\/components\/schemas\/user" } } } @@ -37400,23 +42967,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "list", + "method": "updatePassword", "group": "users", - "weight": 129, + "weight": 128, "cookies": false, "type": "", - "demo": "users\/list.md", + "demo": "users\/update-password.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": "users.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-users.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-password.md", "auth": { "Project": [], "Key": [] @@ -37430,51 +42997,47 @@ ], "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, email, phone, status, passwordUpdate, registration, emailVerification, phoneVerification, labels", - "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, + "name": "userId", + "description": "User ID.", + "required": true, "schema": { "type": "string", - "x-example": "<SEARCH>", - "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", - "x-example": false, - "default": true + "x-example": "<USER_ID>" }, - "in": "query" + "in": "path" } - ] - }, - "post": { - "summary": "Create user", - "operationId": "usersCreate", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "password": { + "type": "string", + "description": "New user password. Must be at least 8 chars.", + "x-example": null + } + }, + "required": [ + "password" + ] + } + } + } + } + } + }, + "\/users\/{userId}\/phone": { + "patch": { + "summary": "Update phone", + "operationId": "usersUpdatePhone", "tags": [ "users" ], - "description": "Create a new user.", + "description": "Update the user phone by its unique ID.", "responses": { - "201": { + "200": { "description": "User", "content": { "application\/json": { @@ -37487,12 +43050,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "create", + "method": "updatePhone", "group": "users", - "weight": 120, + "weight": 130, "cookies": false, "type": "", - "demo": "users\/create.md", + "demo": "users\/update-phone.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -37503,7 +43066,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-user.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-phone.md", "auth": { "Project": [], "Key": [] @@ -37515,44 +43078,33 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "type": "string", - "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.", - "x-example": "<USER_ID>" - }, - "email": { - "type": "string", - "description": "User email.", - "x-example": "email@example.com", - "format": "email", - "x-nullable": true - }, - "phone": { + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "number": { "type": "string", - "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "description": "User phone number.", "x-example": "+12065550100", - "format": "phone", - "x-nullable": true - }, - "password": { - "type": "string", - "description": "Plain text user password. Must be at least 8 chars.", - "x-example": null - }, - "name": { - "type": "string", - "description": "User name. Max length: 128 chars.", - "x-example": "<NAME>" + "format": "phone" } }, "required": [ - "userId" + "number" ] } } @@ -37560,21 +43112,21 @@ } } }, - "\/users\/argon2": { - "post": { - "summary": "Create user with Argon2 password", - "operationId": "usersCreateArgon2User", + "\/users\/{userId}\/prefs": { + "get": { + "summary": "Get user preferences", + "operationId": "usersGetPrefs", "tags": [ "users" ], - "description": "Create a new user. Password provided must be hashed with the [Argon2](https:\/\/en.wikipedia.org\/wiki\/Argon2) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "description": "Get the user preferences by its unique ID.", "responses": { - "201": { - "description": "User", + "200": { + "description": "Preferences", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/user" + "$ref": "#\/components\/schemas\/preferences" } } } @@ -37582,23 +43134,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "createArgon2User", + "method": "getPrefs", "group": "users", - "weight": 123, + "weight": 117, "cookies": false, "type": "", - "demo": "users\/create-argon-2-user.md", + "demo": "users\/get-prefs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "users.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-argon2-user.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user-prefs.md", "auth": { "Project": [], "Key": [] @@ -37610,61 +43162,33 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "type": "string", - "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.", - "x-example": "<USER_ID>" - }, - "email": { - "type": "string", - "description": "User email.", - "x-example": "email@example.com", - "format": "email" - }, - "password": { - "type": "string", - "description": "User password hashed using Argon2.", - "x-example": "password", - "format": "password" - }, - "name": { - "type": "string", - "description": "User name. Max length: 128 chars.", - "x-example": "<NAME>" - } - }, - "required": [ - "userId", - "email", - "password" - ] - } - } + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<USER_ID>" + }, + "in": "path" } - } - } - }, - "\/users\/bcrypt": { - "post": { - "summary": "Create user with bcrypt password", - "operationId": "usersCreateBcryptUser", + ] + }, + "patch": { + "summary": "Update user preferences", + "operationId": "usersUpdatePrefs", "tags": [ "users" ], - "description": "Create a new user. Password provided must be hashed with the [Bcrypt](https:\/\/en.wikipedia.org\/wiki\/Bcrypt) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "description": "Update the user preferences by its unique ID. 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": { - "201": { - "description": "User", + "200": { + "description": "Preferences", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/user" + "$ref": "#\/components\/schemas\/preferences" } } } @@ -37672,12 +43196,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "createBcryptUser", + "method": "updatePrefs", "group": "users", - "weight": 121, + "weight": 132, "cookies": false, "type": "", - "demo": "users\/create-bcrypt-user.md", + "demo": "users\/update-prefs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -37688,7 +43212,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-bcrypt-user.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-prefs.md", "auth": { "Project": [], "Key": [] @@ -37700,39 +43224,32 @@ "Key": [] } ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<USER_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "userId": { - "type": "string", - "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.", - "x-example": "<USER_ID>" - }, - "email": { - "type": "string", - "description": "User email.", - "x-example": "email@example.com", - "format": "email" - }, - "password": { - "type": "string", - "description": "User password hashed using Bcrypt.", - "x-example": "password", - "format": "password" - }, - "name": { - "type": "string", - "description": "User name. Max length: 128 chars.", - "x-example": "<NAME>" + "prefs": { + "type": "object", + "description": "Prefs key-value JSON object.", + "x-example": "{}" } }, "required": [ - "userId", - "email", - "password" + "prefs" ] } } @@ -37740,21 +43257,21 @@ } } }, - "\/users\/identities": { + "\/users\/{userId}\/sessions": { "get": { - "summary": "List identities", - "operationId": "usersListIdentities", + "summary": "List user sessions", + "operationId": "usersListSessions", "tags": [ "users" ], - "description": "Get identities for all users.", + "description": "Get the user sessions list by its unique ID.", "responses": { "200": { - "description": "Identities List", + "description": "Sessions List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/identityList" + "$ref": "#\/components\/schemas\/sessionList" } } } @@ -37762,12 +43279,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "listIdentities", - "group": "identities", - "weight": 137, + "method": "listSessions", + "group": "sessions", + "weight": 119, "cookies": false, "type": "", - "demo": "users\/list-identities.md", + "demo": "users\/list-sessions.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -37778,7 +43295,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-identities.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-user-sessions.md", "auth": { "Project": [], "Key": [] @@ -37792,28 +43309,14 @@ ], "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": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, + "name": "userId", + "description": "User ID.", + "required": true, "schema": { "type": "string", - "x-example": "<SEARCH>", - "default": "" + "x-example": "<USER_ID>" }, - "in": "query" + "in": "path" }, { "name": "total", @@ -37827,29 +43330,34 @@ "in": "query" } ] - } - }, - "\/users\/identities\/{identityId}": { - "delete": { - "summary": "Delete identity", - "operationId": "usersDeleteIdentity", + }, + "post": { + "summary": "Create session", + "operationId": "usersCreateSession", "tags": [ "users" ], - "description": "Delete an identity by its unique ID.", + "description": "Creates a session for a user. Returns an immediately usable session object.\n\nIf you want to generate a token for a custom authentication flow, use the [POST \/users\/{userId}\/tokens](https:\/\/appwrite.io\/docs\/server\/users#createToken) endpoint.", "responses": { - "204": { - "description": "No content" + "201": { + "description": "Session", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/session" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteIdentity", - "group": "identities", - "weight": 160, + "method": "createSession", + "group": "sessions", + "weight": 140, "cookies": false, "type": "", - "demo": "users\/delete-identity.md", + "demo": "users\/create-session.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -37860,7 +43368,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-identity.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-session.md", "auth": { "Project": [], "Key": [] @@ -37874,46 +43382,37 @@ ], "parameters": [ { - "name": "identityId", - "description": "Identity ID.", + "name": "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.", "required": true, "schema": { "type": "string", - "x-example": "<IDENTITY_ID>" + "x-example": "<USER_ID>" }, "in": "path" } ] - } - }, - "\/users\/md5": { - "post": { - "summary": "Create user with MD5 password", - "operationId": "usersCreateMD5User", + }, + "delete": { + "summary": "Delete user sessions", + "operationId": "usersDeleteSessions", "tags": [ "users" ], - "description": "Create a new user. Password provided must be hashed with the [MD5](https:\/\/en.wikipedia.org\/wiki\/MD5) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "description": "Delete all user's sessions by using the user's unique ID.", "responses": { - "201": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "createMD5User", - "group": "users", - "weight": 122, + "method": "deleteSessions", + "group": "sessions", + "weight": 143, "cookies": false, "type": "", - "demo": "users\/create-md-5-user.md", + "demo": "users\/delete-sessions.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -37924,7 +43423,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-md5-user.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-user-sessions.md", "auth": { "Project": [], "Key": [] @@ -37936,74 +43435,41 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "type": "string", - "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.", - "x-example": "<USER_ID>" - }, - "email": { - "type": "string", - "description": "User email.", - "x-example": "email@example.com", - "format": "email" - }, - "password": { - "type": "string", - "description": "User password hashed using MD5.", - "x-example": "password", - "format": "password" - }, - "name": { - "type": "string", - "description": "User name. Max length: 128 chars.", - "x-example": "<NAME>" - } - }, - "required": [ - "userId", - "email", - "password" - ] - } - } + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<USER_ID>" + }, + "in": "path" } - } + ] } }, - "\/users\/phpass": { - "post": { - "summary": "Create user with PHPass password", - "operationId": "usersCreatePHPassUser", + "\/users\/{userId}\/sessions\/{sessionId}": { + "delete": { + "summary": "Delete user session", + "operationId": "usersDeleteSession", "tags": [ "users" ], - "description": "Create a new user. Password provided must be hashed with the [PHPass](https:\/\/www.openwall.com\/phpass\/) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "description": "Delete a user sessions by its unique ID.", "responses": { - "201": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "createPHPassUser", - "group": "users", - "weight": 125, + "method": "deleteSession", + "group": "sessions", + "weight": 142, "cookies": false, "type": "", - "demo": "users\/create-ph-pass-user.md", + "demo": "users\/delete-session.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -38014,7 +43480,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-phpass-user.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-user-session.md", "auth": { "Project": [], "Key": [] @@ -38026,56 +43492,40 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "type": "string", - "description": "User ID. Choose a custom ID or pass the string `ID.unique()`to auto generate it. 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.", - "x-example": "<USER_ID>" - }, - "email": { - "type": "string", - "description": "User email.", - "x-example": "email@example.com", - "format": "email" - }, - "password": { - "type": "string", - "description": "User password hashed using PHPass.", - "x-example": "password", - "format": "password" - }, - "name": { - "type": "string", - "description": "User name. Max length: 128 chars.", - "x-example": "<NAME>" - } - }, - "required": [ - "userId", - "email", - "password" - ] - } - } + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<USER_ID>" + }, + "in": "path" + }, + { + "name": "sessionId", + "description": "Session ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<SESSION_ID>" + }, + "in": "path" } - } + ] } }, - "\/users\/scrypt": { - "post": { - "summary": "Create user with Scrypt password", - "operationId": "usersCreateScryptUser", + "\/users\/{userId}\/status": { + "patch": { + "summary": "Update user status", + "operationId": "usersUpdateStatus", "tags": [ "users" ], - "description": "Create a new user. Password provided must be hashed with the [Scrypt](https:\/\/github.com\/Tarsnap\/scrypt) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "description": "Update the user status by its unique ID. Use this endpoint as an alternative to deleting a user if you want to keep user's ID reserved.", "responses": { - "201": { + "200": { "description": "User", "content": { "application\/json": { @@ -38088,12 +43538,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "createScryptUser", + "method": "updateStatus", "group": "users", - "weight": 126, + "weight": 124, "cookies": false, "type": "", - "demo": "users\/create-scrypt-user.md", + "demo": "users\/update-status.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -38104,7 +43554,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-scrypt-user.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-status.md", "auth": { "Project": [], "Key": [] @@ -38116,73 +43566,32 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "type": "string", - "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.", - "x-example": "<USER_ID>" - }, - "email": { - "type": "string", - "description": "User email.", - "x-example": "email@example.com", - "format": "email" - }, - "password": { - "type": "string", - "description": "User password hashed using Scrypt.", - "x-example": "password", - "format": "password" - }, - "passwordSalt": { - "type": "string", - "description": "Optional salt used to hash password.", - "x-example": "<PASSWORD_SALT>" - }, - "passwordCpu": { - "type": "integer", - "description": "Optional CPU cost used to hash password.", - "x-example": null, - "format": "int32" - }, - "passwordMemory": { - "type": "integer", - "description": "Optional memory cost used to hash password.", - "x-example": null, - "format": "int32" - }, - "passwordParallel": { - "type": "integer", - "description": "Optional parallelization cost used to hash password.", - "x-example": null, - "format": "int32" - }, - "passwordLength": { - "type": "integer", - "description": "Optional hash length used to hash password.", - "x-example": null, - "format": "int32" - }, - "name": { - "type": "string", - "description": "User name. Max length: 128 chars.", - "x-example": "<NAME>" + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<USER_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "status": { + "type": "boolean", + "description": "User Status. To activate the user pass `true` and to block the user pass `false`.", + "x-example": false } }, "required": [ - "userId", - "email", - "password", - "passwordSalt", - "passwordCpu", - "passwordMemory", - "passwordParallel", - "passwordLength" + "status" ] } } @@ -38190,21 +43599,21 @@ } } }, - "\/users\/scrypt-modified": { - "post": { - "summary": "Create user with Scrypt modified password", - "operationId": "usersCreateScryptModifiedUser", + "\/users\/{userId}\/targets": { + "get": { + "summary": "List user targets", + "operationId": "usersListTargets", "tags": [ "users" ], - "description": "Create a new user. Password provided must be hashed with the [Scrypt Modified](https:\/\/gist.github.com\/Meldiron\/eecf84a0225eccb5a378d45bb27462cc) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "description": "List the messaging targets that are associated with a user.", "responses": { - "201": { - "description": "User", + "200": { + "description": "Target list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/user" + "$ref": "#\/components\/schemas\/targetList" } } } @@ -38212,23 +43621,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "createScryptModifiedUser", - "group": "users", - "weight": 127, + "method": "listTargets", + "group": "targets", + "weight": 122, "cookies": false, "type": "", - "demo": "users\/create-scrypt-modified-user.md", + "demo": "users\/list-targets.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "targets.read", "platforms": [ - "console", - "server" + "server", + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-scrypt-modified-user.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-user-targets.md", "auth": { "Project": [], "Key": [] @@ -38240,79 +43649,57 @@ "Key": [] } ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "userId": { - "type": "string", - "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.", - "x-example": "<USER_ID>" - }, - "email": { - "type": "string", - "description": "User email.", - "x-example": "email@example.com", - "format": "email" - }, - "password": { - "type": "string", - "description": "User password hashed using Scrypt Modified.", - "x-example": "password", - "format": "password" - }, - "passwordSalt": { - "type": "string", - "description": "Salt used to hash password.", - "x-example": "<PASSWORD_SALT>" - }, - "passwordSaltSeparator": { - "type": "string", - "description": "Salt separator used to hash password.", - "x-example": "<PASSWORD_SALT_SEPARATOR>" - }, - "passwordSignerKey": { - "type": "string", - "description": "Signer key used to hash password.", - "x-example": "<PASSWORD_SIGNER_KEY>" - }, - "name": { - "type": "string", - "description": "User name. Max length: 128 chars.", - "x-example": "<NAME>" - } - }, - "required": [ - "userId", - "email", - "password", - "passwordSalt", - "passwordSaltSeparator", - "passwordSignerKey" - ] - } - } + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<USER_ID>" + }, + "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: userId, providerId, identifier, providerType", + "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", + "x-example": false, + "default": true + }, + "in": "query" } - } - } - }, - "\/users\/sha": { + ] + }, "post": { - "summary": "Create user with SHA password", - "operationId": "usersCreateSHAUser", + "summary": "Create user target", + "operationId": "usersCreateTarget", "tags": [ "users" ], - "description": "Create a new user. Password provided must be hashed with the [SHA](https:\/\/en.wikipedia.org\/wiki\/Secure_Hash_Algorithm) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "description": "Create a messaging target.", "responses": { "201": { - "description": "User", + "description": "Target", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/user" + "$ref": "#\/components\/schemas\/target" } } } @@ -38320,23 +43707,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "createSHAUser", - "group": "users", - "weight": 124, + "method": "createTarget", + "group": "targets", + "weight": 114, "cookies": false, "type": "", - "demo": "users\/create-sha-user.md", + "demo": "users\/create-target.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "targets.write", "platforms": [ - "console", - "server" + "server", + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-sha-user.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-target.md", "auth": { "Project": [], "Key": [] @@ -38348,59 +43735,61 @@ "Key": [] } ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<USER_ID>" + }, + "in": "path" + } + ], "requestBody": { "content": { "application\/json": { "schema": { "type": "object", "properties": { - "userId": { + "targetId": { "type": "string", - "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.", - "x-example": "<USER_ID>" + "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.", + "x-example": "<TARGET_ID>" }, - "email": { + "providerType": { "type": "string", - "description": "User email.", - "x-example": "email@example.com", - "format": "email" + "description": "The target provider type. Can be one of the following: `email`, `sms` or `push`.", + "x-example": "email", + "enum": [ + "email", + "sms", + "push" + ], + "x-enum-name": "MessagingProviderType", + "x-enum-keys": [] }, - "password": { + "identifier": { "type": "string", - "description": "User password hashed using SHA.", - "x-example": "password", - "format": "password" + "description": "The target identifier (token, email, phone etc.)", + "x-example": "<IDENTIFIER>" }, - "passwordVersion": { + "providerId": { "type": "string", - "description": "Optional SHA version used to hash password. Allowed values are: 'sha1', 'sha224', 'sha256', 'sha384', 'sha512\/224', 'sha512\/256', 'sha512', 'sha3-224', 'sha3-256', 'sha3-384', 'sha3-512'", - "x-example": "sha1", - "enum": [ - "sha1", - "sha224", - "sha256", - "sha384", - "sha512\/224", - "sha512\/256", - "sha512", - "sha3-224", - "sha3-256", - "sha3-384", - "sha3-512" - ], - "x-enum-name": "PasswordHash", - "x-enum-keys": [] + "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.", + "x-example": "<PROVIDER_ID>" }, "name": { "type": "string", - "description": "User name. Max length: 128 chars.", + "description": "Target name. Max length: 128 chars. For example: My Awesome App Galaxy S23.", "x-example": "<NAME>" } }, "required": [ - "userId", - "email", - "password" + "targetId", + "providerType", + "identifier" ] } } @@ -38408,21 +43797,21 @@ } } }, - "\/users\/{userId}": { + "\/users\/{userId}\/targets\/{targetId}": { "get": { - "summary": "Get user", - "operationId": "usersGet", + "summary": "Get user target", + "operationId": "usersGetTarget", "tags": [ "users" ], - "description": "Get a user by its unique ID.", + "description": "Get a user's push notification target by ID.", "responses": { "200": { - "description": "User", + "description": "Target", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/user" + "$ref": "#\/components\/schemas\/target" } } } @@ -38430,23 +43819,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": "users", - "weight": 130, + "method": "getTarget", + "group": "targets", + "weight": 118, "cookies": false, "type": "", - "demo": "users\/get.md", + "demo": "users\/get-target.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": "targets.read", "platforms": [ - "console", - "server" + "server", + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user-target.md", "auth": { "Project": [], "Key": [] @@ -38468,16 +43857,124 @@ "x-example": "<USER_ID>" }, "in": "path" + }, + { + "name": "targetId", + "description": "Target ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TARGET_ID>" + }, + "in": "path" } ] }, + "patch": { + "summary": "Update user target", + "operationId": "usersUpdateTarget", + "tags": [ + "users" + ], + "description": "Update a messaging target.", + "responses": { + "200": { + "description": "Target", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/target" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateTarget", + "group": "targets", + "weight": 133, + "cookies": false, + "type": "", + "demo": "users\/update-target.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "targets.write", + "platforms": [ + "server", + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-target.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<USER_ID>" + }, + "in": "path" + }, + { + "name": "targetId", + "description": "Target ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TARGET_ID>" + }, + "in": "path" + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "description": "The target identifier (token, email, phone etc.)", + "x-example": "<IDENTIFIER>" + }, + "providerId": { + "type": "string", + "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.", + "x-example": "<PROVIDER_ID>" + }, + "name": { + "type": "string", + "description": "Target name. Max length: 128 chars. For example: My Awesome App Galaxy S23.", + "x-example": "<NAME>" + } + } + } + } + } + } + }, "delete": { - "summary": "Delete user", - "operationId": "usersDelete", + "summary": "Delete user target", + "operationId": "usersDeleteTarget", "tags": [ "users" ], - "description": "Delete a user by its unique ID, thereby releasing it's ID. Since ID is released and can be reused, all user-related resources like documents or storage files should be deleted before user deletion. If you want to keep ID reserved, use the [updateStatus](https:\/\/appwrite.io\/docs\/server\/users#usersUpdateStatus) endpoint instead.", + "description": "Delete a messaging target.", "responses": { "204": { "description": "No content" @@ -38485,23 +43982,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": "users", - "weight": 158, + "method": "deleteTarget", + "group": "targets", + "weight": 145, "cookies": false, "type": "", - "demo": "users\/delete.md", + "demo": "users\/delete-target.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "targets.write", "platforms": [ - "console", - "server" + "server", + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-target.md", "auth": { "Project": [], "Key": [] @@ -38523,25 +44020,35 @@ "x-example": "<USER_ID>" }, "in": "path" + }, + { + "name": "targetId", + "description": "Target ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<TARGET_ID>" + }, + "in": "path" } ] } }, - "\/users\/{userId}\/email": { - "patch": { - "summary": "Update email", - "operationId": "usersUpdateEmail", + "\/users\/{userId}\/tokens": { + "post": { + "summary": "Create token", + "operationId": "usersCreateToken", "tags": [ "users" ], - "description": "Update the user email by its unique ID.", + "description": "Returns a token with a secret key for creating a session. Use the user ID and secret and submit a request to the [PUT \/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process.\n", "responses": { - "200": { - "description": "User", + "201": { + "description": "Token", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/user" + "$ref": "#\/components\/schemas\/token" } } } @@ -38549,12 +44056,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateEmail", - "group": "users", - "weight": 143, + "method": "createToken", + "group": "sessions", + "weight": 141, "cookies": false, "type": "", - "demo": "users\/update-email.md", + "demo": "users\/create-token.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -38565,7 +44072,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-email.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-token.md", "auth": { "Project": [], "Key": [] @@ -38595,37 +44102,40 @@ "schema": { "type": "object", "properties": { - "email": { - "type": "string", - "description": "User email.", - "x-example": "email@example.com", - "format": "email" + "length": { + "type": "integer", + "description": "Token length in characters. The default length is 6 characters", + "x-example": 4, + "format": "int32" + }, + "expire": { + "type": "integer", + "description": "Token expiration period in seconds. The default expiration is 15 minutes.", + "x-example": 60, + "format": "int32" } - }, - "required": [ - "email" - ] + } } } } } } }, - "\/users\/{userId}\/jwts": { - "post": { - "summary": "Create user JWT", - "operationId": "usersCreateJWT", + "\/users\/{userId}\/verification": { + "patch": { + "summary": "Update email verification", + "operationId": "usersUpdateEmailVerification", "tags": [ "users" ], - "description": "Use this endpoint to create a JSON Web Token for user by its unique ID. You can use the resulting JWT to authenticate on behalf of the user. The JWT secret will become invalid if the session it uses gets deleted.", + "description": "Update the user email verification status by its unique ID.", "responses": { - "201": { - "description": "JWT", + "200": { + "description": "User", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/jwt" + "$ref": "#\/components\/schemas\/user" } } } @@ -38633,12 +44143,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "createJWT", - "group": "sessions", - "weight": 161, + "method": "updateEmailVerification", + "group": "users", + "weight": 131, "cookies": false, "type": "", - "demo": "users\/create-jwt.md", + "demo": "users\/update-email-verification.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -38649,7 +44159,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-user-jwt.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-email-verification.md", "auth": { "Project": [], "Key": [] @@ -38679,32 +44189,29 @@ "schema": { "type": "object", "properties": { - "sessionId": { - "type": "string", - "description": "Session ID. Use the string 'recent' to use the most recent session. Defaults to the most recent session.", - "x-example": "<SESSION_ID>" - }, - "duration": { - "type": "integer", - "description": "Time in seconds before JWT expires. Default duration is 900 seconds, and maximum is 3600 seconds.", - "x-example": 0, - "format": "int32" + "emailVerification": { + "type": "boolean", + "description": "User email verification status.", + "x-example": false } - } + }, + "required": [ + "emailVerification" + ] } } } } } }, - "\/users\/{userId}\/labels": { - "put": { - "summary": "Update user labels", - "operationId": "usersUpdateLabels", + "\/users\/{userId}\/verification\/phone": { + "patch": { + "summary": "Update phone verification", + "operationId": "usersUpdatePhoneVerification", "tags": [ "users" ], - "description": "Update the user labels by its unique ID. \n\nLabels can be used to grant access to resources. While teams are a way for user's to share access to a resource, labels can be defined by the developer to grant access without an invitation. See the [Permissions docs](https:\/\/appwrite.io\/docs\/permissions) for more info.", + "description": "Update the user phone verification status by its unique ID.", "responses": { "200": { "description": "User", @@ -38719,12 +44226,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateLabels", + "method": "updatePhoneVerification", "group": "users", - "weight": 139, + "weight": 126, "cookies": false, "type": "", - "demo": "users\/update-labels.md", + "demo": "users\/update-phone-verification.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -38735,7 +44242,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-labels.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-phone-verification.md", "auth": { "Project": [], "Key": [] @@ -38765,17 +44272,14 @@ "schema": { "type": "object", "properties": { - "labels": { - "type": "array", - "description": "Array of user labels. Replaces the previous labels. Maximum of 1000 labels are allowed, each up to 36 alphanumeric characters long.", - "x-example": null, - "items": { - "type": "string" - } + "phoneVerification": { + "type": "boolean", + "description": "User phone verification status.", + "x-example": false } }, "required": [ - "labels" + "phoneVerification" ] } } @@ -38783,21 +44287,21 @@ } } }, - "\/users\/{userId}\/logs": { + "\/vectordb": { "get": { - "summary": "List user logs", - "operationId": "usersListLogs", + "summary": "List databases", + "operationId": "vectorDBList", "tags": [ - "users" + "vectorDB" ], - "description": "Get the user activity logs list by its unique ID.", + "description": false, "responses": { "200": { - "description": "Logs List", + "description": "Databases List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/logList" + "$ref": "#\/components\/schemas\/databaseList" } } } @@ -38805,23 +44309,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "listLogs", - "group": "logs", - "weight": 135, + "method": "list", + "group": "vectordb", + "weight": 431, "cookies": false, "type": "", - "demo": "users\/list-logs.md", + "demo": "vectordb\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": "databases.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-user-logs.md", "auth": { "Project": [], "Key": [] @@ -38834,19 +44337,9 @@ } ], "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<USER_ID>" - }, - "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). Only supported methods are limit and offset", + "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", @@ -38857,6 +44350,17 @@ }, "in": "query" }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "schema": { + "type": "string", + "x-example": "<SEARCH>", + "default": "" + }, + "in": "query" + }, { "name": "total", "description": "When set to false, the total count returned will be 0 and will not be calculated.", @@ -38869,23 +44373,21 @@ "in": "query" } ] - } - }, - "\/users\/{userId}\/memberships": { - "get": { - "summary": "List user memberships", - "operationId": "usersListMemberships", + }, + "post": { + "summary": "Create database", + "operationId": "vectorDBCreate", "tags": [ - "users" + "vectorDB" ], - "description": "Get the user membership list by its unique ID.", + "description": false, "responses": { - "200": { - "description": "Memberships List", + "201": { + "description": "Database", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/membershipList" + "$ref": "#\/components\/schemas\/database" } } } @@ -38893,23 +44395,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "listMemberships", - "group": "memberships", - "weight": 134, + "method": "create", + "group": "vectordb", + "weight": 427, "cookies": false, "type": "", - "demo": "users\/list-memberships.md", + "demo": "vectordb\/create.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-user-memberships.md", "auth": { "Project": [], "Key": [] @@ -38921,153 +44422,104 @@ "Key": [] } ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<USER_ID>" - }, - "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: userId, teamId, invited, joined, confirm, roles", - "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", - "x-example": "<SEARCH>", - "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", - "x-example": false, - "default": true - }, - "in": "query" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "databaseId": { + "type": "string", + "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.", + "x-example": "<DATABASE_ID>" + }, + "name": { + "type": "string", + "description": "Database name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "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.", + "x-example": false + } + }, + "required": [ + "databaseId", + "name" + ] + } + } } - ] + } } }, - "\/users\/{userId}\/mfa": { - "patch": { - "summary": "Update MFA", - "operationId": "usersUpdateMfa", + "\/vectordb\/embeddings\/text": { + "post": { + "summary": "Create Text Embeddings", + "operationId": "vectorDBCreateTextEmbeddings", "tags": [ - "users" + "vectorDB" ], - "description": "Enable or disable MFA on a user account.", + "description": false, "responses": { "200": { - "description": "User", + "description": "Embedding list", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/user" + "$ref": "#\/components\/schemas\/embeddingList" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateMfa", - "group": "users", - "weight": 148, + "method": "createTextEmbeddings", + "group": "documents", + "weight": 454, "cookies": false, "type": "", - "demo": "users\/update-mfa.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "demo": "vectordb\/create-text-embeddings.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", "platforms": [ "console", + "server", "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-mfa.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.updateMFA" - }, + "public": true, "methods": [ { - "name": "updateMfa", - "namespace": "users", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "userId", - "mfa" - ], - "required": [ - "userId", - "mfa" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/user" - } - ], - "description": "Enable or disable MFA on a user account.", - "demo": "users\/update-mfa.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.updateMFA" - } - }, - { - "name": "updateMFA", - "namespace": "users", - "desc": "", + "name": "createTextEmbeddings", + "namespace": "vectorDB", + "desc": "Create Text Embedding", "auth": { "Project": [], "Key": [] }, "parameters": [ - "userId", - "mfa" + "databaseId", + "collectionId", + "documents" ], "required": [ - "userId", - "mfa" + "databaseId", + "collectionId", + "documents" ], "responses": [ { "code": 200, - "model": "#\/components\/schemas\/user" + "model": "#\/components\/schemas\/embeddingList" } ], - "description": "Enable or disable MFA on a user account.", - "demo": "users\/update-mfa.md", + "description": "", + "demo": "vectordb\/create-text-embeddings.md", "public": true } ], @@ -39079,19 +44531,8 @@ "security": [ { "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<USER_ID>" - }, - "in": "path" + "Key": [], + "JWT": [] } ], "requestBody": { @@ -39100,14 +44541,27 @@ "schema": { "type": "object", "properties": { - "mfa": { - "type": "boolean", - "description": "Enable or disable MFA.", - "x-example": false + "texts": { + "type": "array", + "description": "Array of text to generate embeddings.", + "x-example": null, + "items": { + "type": "string" + } + }, + "model": { + "type": "string", + "description": "The embedding model to use for generating vector embeddings.", + "x-example": "embeddinggemma", + "enum": [ + "embeddinggemma" + ], + "x-enum-name": null, + "x-enum-keys": [] } }, "required": [ - "mfa" + "texts" ] } } @@ -39115,98 +44569,114 @@ } } }, - "\/users\/{userId}\/mfa\/authenticators\/{type}": { - "delete": { - "summary": "Delete authenticator", - "operationId": "usersDeleteMfaAuthenticator", + "\/vectordb\/transactions": { + "get": { + "summary": "List transactions", + "operationId": "vectorDBListTransactions", "tags": [ - "users" + "vectorDB" ], - "description": "Delete an authenticator app.", + "description": false, "responses": { - "204": { - "description": "No content" + "200": { + "description": "Transaction List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transactionList" + } + } + } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "deleteMfaAuthenticator", - "group": "mfa", - "weight": 153, + "method": "listTransactions", + "group": "transactions", + "weight": 459, "cookies": false, "type": "", - "demo": "users\/delete-mfa-authenticator.md", + "demo": "vectordb\/list-transactions.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "documents.read", "platforms": [ "console", + "server", + "client", "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-mfa-authenticator.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.deleteMFAAuthenticator" - }, - "methods": [ - { - "name": "deleteMfaAuthenticator", - "namespace": "users", - "desc": "", - "auth": { - "Project": [], - "Key": [] + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "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" }, - "parameters": [ - "userId", - "type" - ], - "required": [ - "userId", - "type" - ], - "responses": [ - { - "code": 204 - } - ], - "description": "Delete an authenticator app.", - "demo": "users\/delete-mfa-authenticator.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.deleteMFAAuthenticator" - } + "default": [] }, - { - "name": "deleteMFAAuthenticator", - "namespace": "users", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "userId", - "type" - ], - "required": [ - "userId", - "type" - ], - "responses": [ - { - "code": 204 + "in": "query" + } + ] + }, + "post": { + "summary": "Create transaction", + "operationId": "vectorDBCreateTransaction", + "tags": [ + "vectorDB" + ], + "description": false, + "responses": { + "201": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" } - ], - "description": "Delete an authenticator app.", - "demo": "users\/delete-mfa-authenticator.md", - "public": true + } } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createTransaction", + "group": "transactions", + "weight": 455, + "cookies": false, + "type": "", + "demo": "vectordb\/create-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.write", + "platforms": [ + "console", + "server", + "client", + "server" ], + "packaging": false, + "public": true, "auth": { "Project": [], "Key": [] @@ -39214,136 +44684,136 @@ }, "security": [ { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "ttl": { + "type": "integer", + "description": "Seconds before the transaction expires.", + "x-example": 60, + "format": "int32" + } + } + } + } + } + } + } + }, + "\/vectordb\/transactions\/{transactionId}": { + "get": { + "summary": "Get transaction", + "operationId": "vectorDBGetTransaction", + "tags": [ + "vectorDB" + ], + "description": false, + "responses": { + "200": { + "description": "Transaction", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/transaction" + } + } + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getTransaction", + "group": "transactions", + "weight": 456, + "cookies": false, + "type": "", + "demo": "vectordb\/get-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.read", + "platforms": [ + "console", + "server", + "client", + "server" + ], + "packaging": false, + "public": true, + "auth": { "Project": [], "Key": [] } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } ], "parameters": [ { - "name": "userId", - "description": "User ID.", - "required": true, - "schema": { - "type": "string", - "x-example": "<USER_ID>" - }, - "in": "path" - }, - { - "name": "type", - "description": "Type of authenticator.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "schema": { "type": "string", - "x-example": "totp", - "enum": [ - "totp" - ], - "x-enum-name": "AuthenticatorType", - "x-enum-keys": [] + "x-example": "<TRANSACTION_ID>" }, "in": "path" - } - ] - } - }, - "\/users\/{userId}\/mfa\/factors": { - "get": { - "summary": "List factors", - "operationId": "usersListMfaFactors", + } + ] + }, + "patch": { + "summary": "Update transaction", + "operationId": "vectorDBUpdateTransaction", "tags": [ - "users" + "vectorDB" ], - "description": "List the factors available on the account to be used as a MFA challange.", + "description": false, "responses": { "200": { - "description": "MFAFactors", + "description": "Transaction", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/mfaFactors" + "$ref": "#\/components\/schemas\/transaction" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "listMfaFactors", - "group": "mfa", - "weight": 149, + "method": "updateTransaction", + "group": "transactions", + "weight": 457, "cookies": false, "type": "", - "demo": "users\/list-mfa-factors.md", + "demo": "vectordb\/update-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": "documents.write", "platforms": [ "console", + "server", + "client", "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-mfa-factors.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.listMFAFactors" - }, - "methods": [ - { - "name": "listMfaFactors", - "namespace": "users", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "userId" - ], - "required": [ - "userId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/mfaFactors" - } - ], - "description": "List the factors available on the account to be used as a MFA challange.", - "demo": "users\/list-mfa-factors.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.listMFAFactors" - } - }, - { - "name": "listMFAFactors", - "namespace": "users", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "userId" - ], - "required": [ - "userId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/mfaFactors" - } - ], - "description": "List the factors available on the account to be used as a MFA challange.", - "demo": "users\/list-mfa-factors.md", - "public": true - } - ], + "public": true, "auth": { "Project": [], "Key": [] @@ -39352,120 +44822,77 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<TRANSACTION_ID>" }, "in": "path" } - ] - } - }, - "\/users\/{userId}\/mfa\/recovery-codes": { - "get": { - "summary": "Get MFA recovery codes", - "operationId": "usersGetMfaRecoveryCodes", - "tags": [ - "users" ], - "description": "Get recovery codes that can be used as backup for MFA flow by User ID. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", - "responses": { - "200": { - "description": "MFA Recovery Codes", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/mfaRecoveryCodes" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "commit": { + "type": "boolean", + "description": "Commit transaction?", + "x-example": false + }, + "rollback": { + "type": "boolean", + "description": "Rollback transaction?", + "x-example": false + } } } } } + } + }, + "delete": { + "summary": "Delete transaction", + "operationId": "vectorDBDeleteTransaction", + "tags": [ + "vectorDB" + ], + "description": false, + "responses": { + "204": { + "description": "No content" + } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "getMfaRecoveryCodes", - "group": "mfa", - "weight": 150, + "method": "deleteTransaction", + "group": "transactions", + "weight": 458, "cookies": false, "type": "", - "demo": "users\/get-mfa-recovery-codes.md", + "demo": "vectordb\/delete-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": "documents.write", "platforms": [ "console", + "server", + "client", "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-mfa-recovery-codes.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.getMFARecoveryCodes" - }, - "methods": [ - { - "name": "getMfaRecoveryCodes", - "namespace": "users", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "userId" - ], - "required": [ - "userId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/mfaRecoveryCodes" - } - ], - "description": "Get recovery codes that can be used as backup for MFA flow by User ID. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", - "demo": "users\/get-mfa-recovery-codes.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.getMFARecoveryCodes" - } - }, - { - "name": "getMFARecoveryCodes", - "namespace": "users", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "userId" - ], - "required": [ - "userId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/mfaRecoveryCodes" - } - ], - "description": "Get recovery codes that can be used as backup for MFA flow by User ID. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", - "demo": "users\/get-mfa-recovery-codes.md", - "public": true - } - ], + "public": true, "auth": { "Project": [], "Key": [] @@ -39474,118 +44901,65 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<TRANSACTION_ID>" }, "in": "path" } ] - }, - "put": { - "summary": "Update MFA recovery codes (regenerate)", - "operationId": "usersUpdateMfaRecoveryCodes", + } + }, + "\/vectordb\/transactions\/{transactionId}\/operations": { + "post": { + "summary": "Create operations", + "operationId": "vectorDBCreateOperations", "tags": [ - "users" + "vectorDB" ], - "description": "Regenerate recovery codes that can be used as backup for MFA flow by User ID. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", + "description": false, "responses": { - "200": { - "description": "MFA Recovery Codes", + "201": { + "description": "Transaction", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/mfaRecoveryCodes" + "$ref": "#\/components\/schemas\/transaction" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateMfaRecoveryCodes", - "group": "mfa", - "weight": 152, + "method": "createOperations", + "group": "transactions", + "weight": 460, "cookies": false, "type": "", - "demo": "users\/update-mfa-recovery-codes.md", + "demo": "vectordb\/create-operations.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "documents.write", "platforms": [ "console", + "server", + "client", "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-mfa-recovery-codes.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.updateMFARecoveryCodes" - }, - "methods": [ - { - "name": "updateMfaRecoveryCodes", - "namespace": "users", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "userId" - ], - "required": [ - "userId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/mfaRecoveryCodes" - } - ], - "description": "Regenerate recovery codes that can be used as backup for MFA flow by User ID. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", - "demo": "users\/update-mfa-recovery-codes.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.updateMFARecoveryCodes" - } - }, - { - "name": "updateMFARecoveryCodes", - "namespace": "users", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "userId" - ], - "required": [ - "userId" - ], - "responses": [ - { - "code": 200, - "model": "#\/components\/schemas\/mfaRecoveryCodes" - } - ], - "description": "Regenerate recovery codes that can be used as backup for MFA flow by User ID. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", - "demo": "users\/update-mfa-recovery-codes.md", - "public": false - } - ], + "public": true, "auth": { "Project": [], "Key": [] @@ -39594,118 +44968,82 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<TRANSACTION_ID>" }, "in": "path" } - ] - }, - "patch": { - "summary": "Create MFA recovery codes", - "operationId": "usersCreateMfaRecoveryCodes", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "operations": { + "type": "array", + "description": "Array of staged operations.", + "x-example": "[\n\t {\n\t \"action\": \"create\",\n\t \"databaseId\": \"<DATABASE_ID>\",\n\t \"collectionId\": \"<COLLECTION_ID>\",\n\t \"documentId\": \"<DOCUMENT_ID>\",\n\t \"data\": {\n\t \"name\": \"Walter O'Brien\"\n\t }\n\t }\n\t]", + "items": { + "type": "object" + } + } + } + } + } + } + } + } + }, + "\/vectordb\/{databaseId}": { + "get": { + "summary": "Get database", + "operationId": "vectorDBGet", "tags": [ - "users" + "vectorDB" ], - "description": "Generate recovery codes used as backup for MFA flow for User ID. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method by client SDK.", + "description": false, "responses": { - "201": { - "description": "MFA Recovery Codes", + "200": { + "description": "Database", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/mfaRecoveryCodes" + "$ref": "#\/components\/schemas\/database" } } } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createMfaRecoveryCodes", - "group": "mfa", - "weight": 151, + "method": "get", + "group": "vectordb", + "weight": 428, "cookies": false, "type": "", - "demo": "users\/create-mfa-recovery-codes.md", + "demo": "vectordb\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "databases.read", "platforms": [ "console", "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-mfa-recovery-codes.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.createMFARecoveryCodes" - }, - "methods": [ - { - "name": "createMfaRecoveryCodes", - "namespace": "users", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "userId" - ], - "required": [ - "userId" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/mfaRecoveryCodes" - } - ], - "description": "Generate recovery codes used as backup for MFA flow for User ID. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method by client SDK.", - "demo": "users\/create-mfa-recovery-codes.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.createMFARecoveryCodes" - } - }, - { - "name": "createMFARecoveryCodes", - "namespace": "users", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "userId" - ], - "required": [ - "userId" - ], - "responses": [ - { - "code": 201, - "model": "#\/components\/schemas\/mfaRecoveryCodes" - } - ], - "description": "Generate recovery codes used as backup for MFA flow for User ID. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method by client SDK.", - "demo": "users\/create-mfa-recovery-codes.md", - "public": true - } - ], + "public": true, "auth": { "Project": [], "Key": [] @@ -39719,33 +45057,31 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } ] - } - }, - "\/users\/{userId}\/name": { - "patch": { - "summary": "Update name", - "operationId": "usersUpdateName", + }, + "put": { + "summary": "Update database", + "operationId": "vectorDBUpdate", "tags": [ - "users" + "vectorDB" ], - "description": "Update the user name by its unique ID.", + "description": false, "responses": { "200": { - "description": "User", + "description": "Database", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/user" + "$ref": "#\/components\/schemas\/database" } } } @@ -39753,23 +45089,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateName", - "group": "users", - "weight": 141, + "method": "update", + "group": "vectordb", + "weight": 429, "cookies": false, "type": "", - "demo": "users\/update-name.md", + "demo": "vectordb\/update.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-name.md", "auth": { "Project": [], "Key": [] @@ -39783,12 +45118,12 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } @@ -39801,8 +45136,13 @@ "properties": { "name": { "type": "string", - "description": "User name. Max length: 128 chars.", + "description": "Database name. Max length: 128 chars.", "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "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.", + "x-example": false } }, "required": [ @@ -39811,24 +45151,78 @@ } } } - } + } + }, + "delete": { + "summary": "Delete database", + "operationId": "vectorDBDelete", + "tags": [ + "vectorDB" + ], + "description": false, + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "delete", + "group": "vectordb", + "weight": 430, + "cookies": false, + "type": "", + "demo": "vectordb\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "databases.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + } + ] } }, - "\/users\/{userId}\/password": { - "patch": { - "summary": "Update password", - "operationId": "usersUpdatePassword", + "\/vectordb\/{databaseId}\/collections": { + "get": { + "summary": "List collections", + "operationId": "vectorDBListCollections", "tags": [ - "users" + "vectorDB" ], - "description": "Update the user password by its unique ID.", + "description": false, "responses": { "200": { - "description": "User", + "description": "VectorDB Collections List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/user" + "$ref": "#\/components\/schemas\/vectordbCollectionList" } } } @@ -39836,23 +45230,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updatePassword", - "group": "users", - "weight": 142, + "method": "listCollections", + "group": "collections", + "weight": 438, "cookies": false, "type": "", - "demo": "users\/update-password.md", + "demo": "vectordb\/list-collections.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "collections.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-password.md", "auth": { "Project": [], "Key": [] @@ -39866,52 +45259,66 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<DATABASE_ID>" }, "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", + "x-example": "<SEARCH>", + "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", + "x-example": false, + "default": true + }, + "in": "query" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "password": { - "type": "string", - "description": "New user password. Must be at least 8 chars.", - "x-example": null - } - }, - "required": [ - "password" - ] - } - } - } - } - } - }, - "\/users\/{userId}\/phone": { - "patch": { - "summary": "Update phone", - "operationId": "usersUpdatePhone", + ] + }, + "post": { + "summary": "Create collection", + "operationId": "vectorDBCreateCollection", "tags": [ - "users" + "vectorDB" ], - "description": "Update the user phone by its unique ID.", + "description": false, "responses": { - "200": { - "description": "User", + "201": { + "description": "VectorDB Collection", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/user" + "$ref": "#\/components\/schemas\/vectordbCollection" } } } @@ -39919,23 +45326,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updatePhone", - "group": "users", - "weight": 144, + "method": "createCollection", + "group": "collections", + "weight": 434, "cookies": false, "type": "", - "demo": "users\/update-phone.md", + "demo": "vectordb\/create-collection.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "collections.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-phone.md", "auth": { "Project": [], "Key": [] @@ -39949,12 +45355,12 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" } @@ -39965,15 +45371,45 @@ "schema": { "type": "object", "properties": { - "number": { + "collectionId": { "type": "string", - "description": "User phone number.", - "x-example": "+12065550100", - "format": "phone" + "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.", + "x-example": "<COLLECTION_ID>" + }, + "name": { + "type": "string", + "description": "Collection name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "dimension": { + "type": "integer", + "description": "Embedding dimension.", + "x-example": 1, + "format": "int32" + }, + "permissions": { + "type": "array", + "description": "An array of permissions strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } + }, + "documentSecurity": { + "type": "boolean", + "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).", + "x-example": false + }, + "enabled": { + "type": "boolean", + "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.", + "x-example": false } }, "required": [ - "number" + "collectionId", + "name", + "dimension" ] } } @@ -39981,21 +45417,21 @@ } } }, - "\/users\/{userId}\/prefs": { + "\/vectordb\/{databaseId}\/collections\/{collectionId}": { "get": { - "summary": "Get user preferences", - "operationId": "usersGetPrefs", + "summary": "Get collection", + "operationId": "vectorDBGetCollection", "tags": [ - "users" + "vectorDB" ], - "description": "Get the user preferences by its unique ID.", + "description": false, "responses": { "200": { - "description": "Preferences", + "description": "VectorDB Collection", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/preferences" + "$ref": "#\/components\/schemas\/vectordbCollection" } } } @@ -40003,23 +45439,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "getPrefs", - "group": "users", - "weight": 131, + "method": "getCollection", + "group": "collections", + "weight": 435, "cookies": false, "type": "", - "demo": "users\/get-prefs.md", + "demo": "vectordb\/get-collection.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": "collections.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user-prefs.md", "auth": { "Project": [], "Key": [] @@ -40033,31 +45468,41 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<COLLECTION_ID>" }, "in": "path" } ] }, - "patch": { - "summary": "Update user preferences", - "operationId": "usersUpdatePrefs", + "put": { + "summary": "Update collection", + "operationId": "vectorDBUpdateCollection", "tags": [ - "users" + "vectorDB" ], - "description": "Update the user preferences by its unique ID. 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.", + "description": false, "responses": { "200": { - "description": "Preferences", + "description": "VectorDB Collection", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/preferences" + "$ref": "#\/components\/schemas\/vectordbCollection" } } } @@ -40065,23 +45510,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updatePrefs", - "group": "users", - "weight": 146, + "method": "updateCollection", + "group": "collections", + "weight": 436, "cookies": false, "type": "", - "demo": "users\/update-prefs.md", + "demo": "vectordb\/update-collection.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "collections.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-prefs.md", "auth": { "Project": [], "Key": [] @@ -40095,12 +45539,22 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<COLLECTION_ID>" }, "in": "path" } @@ -40111,36 +45565,124 @@ "schema": { "type": "object", "properties": { - "prefs": { - "type": "object", - "description": "Prefs key-value JSON object.", - "x-example": "{}" + "name": { + "type": "string", + "description": "Collection name. Max length: 128 chars.", + "x-example": "<NAME>" + }, + "dimension": { + "type": "integer", + "description": "Embedding dimensions.", + "x-example": 1, + "format": "int32" + }, + "permissions": { + "type": "array", + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } + }, + "documentSecurity": { + "type": "boolean", + "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).", + "x-example": false + }, + "enabled": { + "type": "boolean", + "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.", + "x-example": false } }, "required": [ - "prefs" + "name" ] } } } } + }, + "delete": { + "summary": "Delete collection", + "operationId": "vectorDBDeleteCollection", + "tags": [ + "vectorDB" + ], + "description": false, + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteCollection", + "group": "collections", + "weight": 437, + "cookies": false, + "type": "", + "demo": "vectordb\/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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<COLLECTION_ID>" + }, + "in": "path" + } + ] } }, - "\/users\/{userId}\/sessions": { + "\/vectordb\/{databaseId}\/collections\/{collectionId}\/documents": { "get": { - "summary": "List user sessions", - "operationId": "usersListSessions", + "summary": "List documents", + "operationId": "vectorDBListDocuments", "tags": [ - "users" + "vectorDB" ], - "description": "Get the user sessions list by its unique ID.", + "description": false, "responses": { "200": { - "description": "Sessions List", + "description": "Documents List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/sessionList" + "$ref": "#\/components\/schemas\/documentList" } } } @@ -40148,45 +45690,81 @@ }, "deprecated": false, "x-appwrite": { - "method": "listSessions", - "group": "sessions", - "weight": 133, + "method": "listDocuments", + "group": "documents", + "weight": 449, "cookies": false, "type": "", - "demo": "users\/list-sessions.md", + "demo": "vectordb\/list-documents.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": "documents.read", "platforms": [ "console", + "client", + "server", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-user-sessions.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "x-example": "<COLLECTION_ID>" }, "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", + "x-example": "<TRANSACTION_ID>" + }, + "in": "query" + }, { "name": "total", "description": "When set to false, the total count returned will be 0 and will not be calculated.", @@ -40197,23 +45775,35 @@ "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", + "x-example": 0, + "default": 0 + }, + "in": "query" } ] }, "post": { - "summary": "Create session", - "operationId": "usersCreateSession", + "summary": "Create document", + "operationId": "vectorDBCreateDocument", "tags": [ - "users" + "vectorDB" ], - "description": "Creates a session for a user. Returns an immediately usable session object.\n\nIf you want to generate a token for a custom authentication flow, use the [POST \/users\/{userId}\/tokens](https:\/\/appwrite.io\/docs\/server\/users#createToken) endpoint.", + "description": false, "responses": { "201": { - "description": "Session", + "description": "Document", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/session" + "$ref": "#\/components\/schemas\/document" } } } @@ -40221,78 +45811,231 @@ }, "deprecated": false, "x-appwrite": { - "method": "createSession", - "group": "sessions", - "weight": 154, + "method": "createDocument", + "group": "documents", + "weight": 445, "cookies": false, "type": "", - "demo": "users\/create-session.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "demo": "vectordb\/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", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-session.md", + "methods": [ + { + "name": "createDocument", + "namespace": "vectorDB", + "desc": "Create document", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions" + ], + "required": [ + "databaseId", + "collectionId", + "documentId", + "data" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/document" + } + ], + "description": "", + "demo": "vectordb\/create-document.md", + "public": true + }, + { + "name": "createDocuments", + "namespace": "vectorDB", + "desc": "Create documents", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documents" + ], + "required": [ + "databaseId", + "collectionId", + "documents" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/documentList" + } + ], + "description": "", + "demo": "vectordb\/create-documents.md", + "public": true + } + ], "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "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.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<DATABASE_ID>" + }, + "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", + "x-example": "<COLLECTION_ID>" }, "in": "path" } - ] + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "documentId": { + "type": "string", + "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "x-example": "<DOCUMENT_ID>" + }, + "data": { + "type": "object", + "description": "Document data as JSON object.", + "x-example": "{\"embeddings\": [0.12, -0.55, 0.88, 1.02], \"metadata\": {\"key\":\"value\"} }" + }, + "permissions": { + "type": "array", + "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).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } + }, + "documents": { + "type": "array", + "description": "Array of documents data as JSON objects.", + "x-example": null, + "items": { + "type": "object" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>" + } + } + } + } + } + } }, - "delete": { - "summary": "Delete user sessions", - "operationId": "usersDeleteSessions", + "put": { + "summary": "Upsert documents", + "operationId": "vectorDBUpsertDocuments", "tags": [ - "users" + "vectorDB" ], - "description": "Delete all user's sessions by using the user's unique ID.", + "description": false, "responses": { - "204": { - "description": "No content" + "201": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteSessions", - "group": "sessions", - "weight": 157, + "method": "upsertDocuments", + "group": "documents", + "weight": 452, "cookies": false, "type": "", - "demo": "users\/delete-sessions.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "demo": "vectordb\/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, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-user-sessions.md", + "methods": [ + { + "name": "upsertDocuments", + "namespace": "vectorDB", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documents", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documents" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/documentList" + } + ], + "description": "", + "demo": "vectordb\/upsert-documents.md", + "public": true + } + ], "auth": { "Project": [], "Key": [] @@ -40306,50 +46049,91 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<COLLECTION_ID>" }, "in": "path" } - ] - } - }, - "\/users\/{userId}\/sessions\/{sessionId}": { - "delete": { - "summary": "Delete user session", - "operationId": "usersDeleteSession", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "documents": { + "type": "array", + "description": "Array of document data as JSON objects. May contain partial documents.", + "x-example": null, + "items": { + "type": "object" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>" + } + }, + "required": [ + "documents" + ] + } + } + } + } + }, + "patch": { + "summary": "Update documents", + "operationId": "vectorDBUpdateDocuments", "tags": [ - "users" + "vectorDB" ], - "description": "Delete a user sessions by its unique ID.", + "description": false, "responses": { - "204": { - "description": "No content" + "200": { + "description": "Documents List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/documentList" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteSession", - "group": "sessions", - "weight": 156, + "method": "updateDocuments", + "group": "documents", + "weight": 451, "cookies": false, "type": "", - "demo": "users\/delete-session.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "demo": "vectordb\/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, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-user-session.md", "auth": { "Project": [], "Key": [] @@ -40363,43 +46147,70 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" }, { - "name": "sessionId", - "description": "Session ID.", + "name": "collectionId", + "description": "Collection ID.", "required": true, "schema": { "type": "string", - "x-example": "<SESSION_ID>" + "x-example": "<COLLECTION_ID>" }, "in": "path" } - ] - } - }, - "\/users\/{userId}\/status": { - "patch": { - "summary": "Update user status", - "operationId": "usersUpdateStatus", + ], + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "object", + "description": "Document data as JSON object. Include only attribute and value pairs to be updated.", + "x-example": "{}" + }, + "queries": { + "type": "array", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "x-example": null, + "items": { + "type": "string" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>" + } + } + } + } + } + } + }, + "delete": { + "summary": "Delete documents", + "operationId": "vectorDBDeleteDocuments", "tags": [ - "users" + "vectorDB" ], - "description": "Update the user status by its unique ID. Use this endpoint as an alternative to deleting a user if you want to keep user's ID reserved.", + "description": false, "responses": { "200": { - "description": "User", + "description": "Documents List", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/user" + "$ref": "#\/components\/schemas\/documentList" } } } @@ -40407,23 +46218,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateStatus", - "group": "users", - "weight": 138, + "method": "deleteDocuments", + "group": "documents", + "weight": 453, "cookies": false, "type": "", - "demo": "users\/update-status.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "demo": "vectordb\/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, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-status.md", "auth": { "Project": [], "Key": [] @@ -40437,12 +46247,22 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "x-example": "<COLLECTION_ID>" }, "in": "path" } @@ -40453,36 +46273,41 @@ "schema": { "type": "object", "properties": { - "status": { - "type": "boolean", - "description": "User Status. To activate the user pass `true` and to block the user pass `false`.", - "x-example": false + "queries": { + "type": "array", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "x-example": null, + "items": { + "type": "string" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>" } - }, - "required": [ - "status" - ] + } } } } } } }, - "\/users\/{userId}\/targets": { + "\/vectordb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { "get": { - "summary": "List user targets", - "operationId": "usersListTargets", + "summary": "Get document", + "operationId": "vectorDBGetDocument", "tags": [ - "users" + "vectorDB" ], - "description": "List the messaging targets that are associated with a user.", + "description": false, "responses": { "200": { - "description": "Target list", + "description": "Document", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/targetList" + "$ref": "#\/components\/schemas\/document" } } } @@ -40490,48 +46315,71 @@ }, "deprecated": false, "x-appwrite": { - "method": "listTargets", - "group": "targets", - "weight": 136, + "method": "getDocument", + "group": "documents", + "weight": 448, "cookies": false, "type": "", - "demo": "users\/list-targets.md", + "demo": "vectordb\/get-document.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "targets.read", + "scope": "documents.read", "platforms": [ + "console", + "client", "server", - "console" + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-user-targets.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "x-example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DOCUMENT_ID>" }, "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: userId, providerId, identifier, providerType", + "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", @@ -40543,32 +46391,31 @@ "in": "query" }, { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", "required": false, "schema": { - "type": "boolean", - "x-example": false, - "default": true + "type": "string", + "x-example": "<TRANSACTION_ID>" }, "in": "query" } ] }, - "post": { - "summary": "Create user target", - "operationId": "usersCreateTarget", + "put": { + "summary": "Upsert a document", + "operationId": "vectorDBUpsertDocument", "tags": [ - "users" + "vectorDB" ], - "description": "Create a messaging target.", + "description": false, "responses": { "201": { - "description": "Target", + "description": "Document", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/target" + "$ref": "#\/components\/schemas\/document" } } } @@ -40576,42 +46423,98 @@ }, "deprecated": false, "x-appwrite": { - "method": "createTarget", - "group": "targets", - "weight": 128, + "method": "upsertDocument", + "group": "documents", + "weight": 447, "cookies": false, "type": "", - "demo": "users\/create-target.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "targets.write", + "demo": "vectordb\/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", - "console" + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-target.md", + "methods": [ + { + "name": "upsertDocument", + "namespace": "vectorDB", + "desc": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documentId" + ], + "responses": [ + { + "code": 201, + "model": "#\/components\/schemas\/document" + } + ], + "description": "", + "demo": "vectordb\/upsert-document.md", + "public": true + } + ], "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DOCUMENT_ID>" }, "in": "path" } @@ -40622,65 +46525,44 @@ "schema": { "type": "object", "properties": { - "targetId": { - "type": "string", - "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.", - "x-example": "<TARGET_ID>" - }, - "providerType": { - "type": "string", - "description": "The target provider type. Can be one of the following: `email`, `sms` or `push`.", - "x-example": "email", - "enum": [ - "email", - "sms", - "push" - ], - "x-enum-name": "MessagingProviderType", - "x-enum-keys": [] - }, - "identifier": { - "type": "string", - "description": "The target identifier (token, email, phone etc.)", - "x-example": "<IDENTIFIER>" + "data": { + "type": "object", + "description": "Document data as JSON object. Include all required fields of the document to be created or updated.", + "x-example": "{}" }, - "providerId": { - "type": "string", - "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.", - "x-example": "<PROVIDER_ID>" + "permissions": { + "type": "array", + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } }, - "name": { + "transactionId": { "type": "string", - "description": "Target name. Max length: 128 chars. For example: My Awesome App Galaxy S23.", - "x-example": "<NAME>" + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>" } - }, - "required": [ - "targetId", - "providerType", - "identifier" - ] + } } } } } - } - }, - "\/users\/{userId}\/targets\/{targetId}": { - "get": { - "summary": "Get user target", - "operationId": "usersGetTarget", + }, + "patch": { + "summary": "Update document", + "operationId": "vectorDBUpdateDocument", "tags": [ - "users" + "vectorDB" ], - "description": "Get a user's push notification target by ID.", + "description": false, "responses": { "200": { - "description": "Target", + "description": "Document", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/target" + "$ref": "#\/components\/schemas\/document" } } } @@ -40688,124 +46570,172 @@ }, "deprecated": false, "x-appwrite": { - "method": "getTarget", - "group": "targets", - "weight": 132, + "method": "updateDocument", + "group": "documents", + "weight": 446, "cookies": false, "type": "", - "demo": "users\/get-target.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "targets.read", + "demo": "vectordb\/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", - "console" + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user-target.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" }, { - "name": "targetId", - "description": "Target ID.", + "name": "collectionId", + "description": "Collection ID.", "required": true, "schema": { "type": "string", - "x-example": "<TARGET_ID>" + "x-example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DOCUMENT_ID>" }, "in": "path" } - ] - }, - "patch": { - "summary": "Update user target", - "operationId": "usersUpdateTarget", - "tags": [ - "users" ], - "description": "Update a messaging target.", - "responses": { - "200": { - "description": "Target", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/target" + "requestBody": { + "content": { + "application\/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "object", + "description": "Document data as JSON object. Include only fields and value pairs to be updated.", + "x-example": "{}" + }, + "permissions": { + "type": "array", + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>" + } } } } } + } + }, + "delete": { + "summary": "Delete document", + "operationId": "vectorDBDeleteDocument", + "tags": [ + "vectorDB" + ], + "description": false, + "responses": { + "204": { + "description": "No content" + } }, "deprecated": false, "x-appwrite": { - "method": "updateTarget", - "group": "targets", - "weight": 147, + "method": "deleteDocument", + "group": "documents", + "weight": 450, "cookies": false, "type": "", - "demo": "users\/update-target.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "targets.write", + "demo": "vectordb\/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", - "console" + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-target.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" }, { - "name": "targetId", - "description": "Target ID.", + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", "required": true, "schema": { "type": "string", - "x-example": "<TARGET_ID>" + "x-example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "schema": { + "type": "string", + "x-example": "<DOCUMENT_ID>" }, "in": "path" } @@ -40816,58 +46746,56 @@ "schema": { "type": "object", "properties": { - "identifier": { - "type": "string", - "description": "The target identifier (token, email, phone etc.)", - "x-example": "<IDENTIFIER>" - }, - "providerId": { - "type": "string", - "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.", - "x-example": "<PROVIDER_ID>" - }, - "name": { + "transactionId": { "type": "string", - "description": "Target name. Max length: 128 chars. For example: My Awesome App Galaxy S23.", - "x-example": "<NAME>" + "description": "Transaction ID for staging the operation.", + "x-example": "<TRANSACTION_ID>" } } } } } } - }, - "delete": { - "summary": "Delete user target", - "operationId": "usersDeleteTarget", + } + }, + "\/vectordb\/{databaseId}\/collections\/{collectionId}\/indexes": { + "get": { + "summary": "List indexes", + "operationId": "vectorDBListIndexes", "tags": [ - "users" + "vectorDB" ], - "description": "Delete a messaging target.", + "description": false, "responses": { - "204": { - "description": "No content" + "200": { + "description": "Indexes List", + "content": { + "application\/json": { + "schema": { + "$ref": "#\/components\/schemas\/indexList" + } + } + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteTarget", - "group": "targets", - "weight": 159, + "method": "listIndexes", + "group": "indexes", + "weight": 444, "cookies": false, "type": "", - "demo": "users\/delete-target.md", + "demo": "vectordb\/list-indexes.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "targets.write", + "scope": "collections.read", "platforms": [ - "server", - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-target.md", "auth": { "Project": [], "Key": [] @@ -40881,43 +46809,65 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<DATABASE_ID>" }, "in": "path" }, { - "name": "targetId", - "description": "Target ID.", + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", "required": true, "schema": { "type": "string", - "x-example": "<TARGET_ID>" + "x-example": "<COLLECTION_ID>" }, "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", + "x-example": false, + "default": true + }, + "in": "query" } ] - } - }, - "\/users\/{userId}\/tokens": { + }, "post": { - "summary": "Create token", - "operationId": "usersCreateToken", + "summary": "Create index", + "operationId": "vectorDBCreateIndex", "tags": [ - "users" + "vectorDB" ], - "description": "Returns a token with a secret key for creating a session. Use the user ID and secret and submit a request to the [PUT \/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process.\n", + "description": false, "responses": { - "201": { - "description": "Token", + "202": { + "description": "Index", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/token" + "$ref": "#\/components\/schemas\/index" } } } @@ -40925,23 +46875,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "createToken", - "group": "sessions", - "weight": 155, + "method": "createIndex", + "group": "indexes", + "weight": 441, "cookies": false, "type": "", - "demo": "users\/create-token.md", + "demo": "vectordb\/create-index.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "collections.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-token.md", "auth": { "Project": [], "Key": [] @@ -40955,12 +46904,22 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "x-example": "<COLLECTION_ID>" }, "in": "path" } @@ -40971,40 +46930,83 @@ "schema": { "type": "object", "properties": { - "length": { - "type": "integer", - "description": "Token length in characters. The default length is 6 characters", - "x-example": 4, - "format": "int32" + "key": { + "type": "string", + "description": "Index Key.", + "x-example": null }, - "expire": { - "type": "integer", - "description": "Token expiration period in seconds. The default expiration is 15 minutes.", - "x-example": 60, - "format": "int32" + "type": { + "type": "string", + "description": "Index type.", + "x-example": "hnsw_euclidean", + "enum": [ + "hnsw_euclidean", + "hnsw_dot", + "hnsw_cosine", + "object", + "key", + "unique" + ], + "x-enum-name": "VectorIndexType", + "x-enum-keys": [] + }, + "attributes": { + "type": "array", + "description": "Array of attributes to index. Maximum of 100 attributes are allowed, each 32 characters long.", + "x-example": null, + "items": { + "type": "string" + } + }, + "orders": { + "type": "array", + "description": "Array of index orders. Maximum of 100 orders are allowed.", + "x-example": null, + "items": { + "type": "string", + "enum": [ + "asc", + "desc" + ], + "x-enum-name": "OrderBy", + "x-enum-keys": [] + } + }, + "lengths": { + "type": "array", + "description": "Length of index. Maximum of 100", + "x-example": null, + "items": { + "type": "integer" + } } - } + }, + "required": [ + "key", + "type", + "attributes" + ] } } } } } }, - "\/users\/{userId}\/verification": { - "patch": { - "summary": "Update email verification", - "operationId": "usersUpdateEmailVerification", + "\/vectordb\/{databaseId}\/collections\/{collectionId}\/indexes\/{key}": { + "get": { + "summary": "Get index", + "operationId": "vectorDBGetIndex", "tags": [ - "users" + "vectorDB" ], - "description": "Update the user email verification status by its unique ID.", + "description": false, "responses": { "200": { - "description": "User", + "description": "Index", "content": { "application\/json": { "schema": { - "$ref": "#\/components\/schemas\/user" + "$ref": "#\/components\/schemas\/index" } } } @@ -41012,23 +47014,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateEmailVerification", - "group": "users", - "weight": 145, + "method": "getIndex", + "group": "indexes", + "weight": 442, "cookies": false, "type": "", - "demo": "users\/update-email-verification.md", + "demo": "vectordb\/get-index.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "collections.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-email-verification.md", "auth": { "Project": [], "Key": [] @@ -41042,76 +47043,66 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "x-example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Index Key.", + "required": true, + "schema": { + "type": "string" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "emailVerification": { - "type": "boolean", - "description": "User email verification status.", - "x-example": false - } - }, - "required": [ - "emailVerification" - ] - } - } - } - } - } - }, - "\/users\/{userId}\/verification\/phone": { - "patch": { - "summary": "Update phone verification", - "operationId": "usersUpdatePhoneVerification", + ] + }, + "delete": { + "summary": "Delete index", + "operationId": "vectorDBDeleteIndex", "tags": [ - "users" + "vectorDB" ], - "description": "Update the user phone verification status by its unique ID.", + "description": false, "responses": { - "200": { - "description": "User", - "content": { - "application\/json": { - "schema": { - "$ref": "#\/components\/schemas\/user" - } - } - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updatePhoneVerification", - "group": "users", - "weight": 140, + "method": "deleteIndex", + "group": "indexes", + "weight": 443, "cookies": false, "type": "", - "demo": "users\/update-phone-verification.md", + "demo": "vectordb\/delete-index.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "collections.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-phone-verification.md", "auth": { "Project": [], "Key": [] @@ -41125,35 +47116,35 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "schema": { "type": "string", - "x-example": "<USER_ID>" + "x-example": "<DATABASE_ID>" + }, + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "schema": { + "type": "string", + "x-example": "<COLLECTION_ID>" + }, + "in": "path" + }, + { + "name": "key", + "description": "Index Key.", + "required": true, + "schema": { + "type": "string" }, "in": "path" } - ], - "requestBody": { - "content": { - "application\/json": { - "schema": { - "type": "object", - "properties": { - "phoneVerification": { - "type": "boolean", - "description": "User phone verification status.", - "x-example": false - } - }, - "required": [ - "phoneVerification" - ] - } - } - } - } + ] } } }, @@ -42313,6 +48304,62 @@ "specifications": "" } }, + "vectordbCollectionList": { + "description": "VectorDB Collections List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of collections that matched your query.", + "x-example": 5, + "format": "int32" + }, + "collections": { + "type": "array", + "description": "List of collections.", + "items": { + "$ref": "#\/components\/schemas\/vectordbCollection" + }, + "x-example": "" + } + }, + "required": [ + "total", + "collections" + ], + "example": { + "total": 5, + "collections": "" + } + }, + "embeddingList": { + "description": "Embedding list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of embeddings that matched your query.", + "x-example": 5, + "format": "int32" + }, + "embeddings": { + "type": "array", + "description": "List of embeddings.", + "items": { + "$ref": "#\/components\/schemas\/embedding" + }, + "x-example": "" + } + }, + "required": [ + "total", + "embeddings" + ], + "example": { + "total": 5, + "embeddings": "" + } + }, "database": { "description": "Database", "type": "object", @@ -42348,7 +48395,8 @@ "x-example": "legacy", "enum": [ "legacy", - "tablesdb" + "tablesdb", + "documentsdb" ] }, "policies": { @@ -42389,6 +48437,57 @@ "archives": {} } }, + "embedding": { + "description": "Embedding", + "type": "object", + "properties": { + "model": { + "type": "string", + "description": "Embedding model used to generate embeddings.", + "x-example": "embeddinggemma" + }, + "dimension": { + "type": "integer", + "description": "Number of dimensions for each embedding vector.", + "x-example": 768, + "format": "int32" + }, + "embedding": { + "type": "array", + "description": "Embedding vector values. If an error occurs, this will be an empty array.", + "items": { + "type": "number", + "format": "double" + }, + "x-example": [ + 0.01, + 0.02, + 0.03 + ] + }, + "error": { + "type": "string", + "description": "Error message if embedding generation fails. Empty string if no error.", + "x-example": "Error message" + } + }, + "required": [ + "model", + "dimension", + "embedding", + "error" + ], + "example": { + "model": "embeddinggemma", + "dimension": 768, + "embedding": [ + 0.01, + 0.02, + 0.03 + ], + "error": "Error message" + } + }, "collection": { "description": "Collection", "type": "object", @@ -44238,6 +50337,286 @@ "encrypt": false } }, + "vectordbCollection": { + "description": "VectorDB Collection", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Collection ID.", + "x-example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Collection creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Collection update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Collection permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "items": { + "type": "string" + }, + "x-example": [ + "read(\"any\")" + ] + }, + "databaseId": { + "type": "string", + "description": "Database ID.", + "x-example": "5e5ea5c16897e" + }, + "name": { + "type": "string", + "description": "Collection name.", + "x-example": "My Collection" + }, + "enabled": { + "type": "boolean", + "description": "Collection enabled. Can be 'enabled' or 'disabled'. When disabled, the collection is inaccessible to users, but remains accessible to Server SDKs using API keys.", + "x-example": false + }, + "documentSecurity": { + "type": "boolean", + "description": "Whether document-level permissions are enabled. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": true + }, + "attributes": { + "type": "array", + "description": "Collection attributes.", + "items": { + "anyOf": [ + { + "$ref": "#\/components\/schemas\/attributeObject" + }, + { + "$ref": "#\/components\/schemas\/attributeVector" + } + ] + }, + "x-example": {} + }, + "indexes": { + "type": "array", + "description": "Collection indexes.", + "items": { + "$ref": "#\/components\/schemas\/index" + }, + "x-example": {} + }, + "bytesMax": { + "type": "integer", + "description": "Maximum document size in bytes. Returns 0 when no limit applies.", + "x-example": 65535, + "format": "int32" + }, + "bytesUsed": { + "type": "integer", + "description": "Currently used document size in bytes based on defined attributes.", + "x-example": 1500, + "format": "int32" + }, + "dimension": { + "type": "integer", + "description": "Embedding dimension.", + "x-example": 1536, + "format": "int32" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "$permissions", + "databaseId", + "name", + "enabled", + "documentSecurity", + "attributes", + "indexes", + "bytesMax", + "bytesUsed", + "dimension" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ], + "databaseId": "5e5ea5c16897e", + "name": "My Collection", + "enabled": false, + "documentSecurity": true, + "attributes": {}, + "indexes": {}, + "bytesMax": 65535, + "bytesUsed": 1500, + "dimension": 1536 + } + }, + "attributeObject": { + "description": "AttributeObject", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "x-example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "x-example": "string" + }, + "status": { + "type": "string", + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "x-example": "available", + "enum": [ + "available", + "processing", + "deleting", + "stuck", + "failed" + ], + "x-enum-name": "AttributeStatus" + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "x-example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "x-example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "x-example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "attributeVector": { + "description": "AttributeVector", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "x-example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "x-example": "string" + }, + "status": { + "type": "string", + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "x-example": "available", + "enum": [ + "available", + "processing", + "deleting", + "stuck", + "failed" + ], + "x-enum-name": "AttributeStatus" + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "x-example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "x-example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "x-example": false, + "nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "size": { + "type": "integer", + "description": "Vector dimensions.", + "x-example": 1536, + "format": "int32" + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "size" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "size": 1536 + } + }, "table": { "description": "Table", "type": "object", @@ -46285,8 +52664,8 @@ }, "$sequence": { "type": "integer", - "description": "Row automatically incrementing ID.", - "x-example": 1, + "description": "Row sequence ID.", + "x-example": "1", "format": "int32", "readOnly": true }, @@ -46335,7 +52714,7 @@ ], "example": { "$id": "5e5ea5c16897e", - "$sequence": 1, + "$sequence": "1", "$tableId": "5e5ea5c15117e", "$databaseId": "5e5ea5c15117e", "$createdAt": "2020-10-15T06:38:00.000+00:00", @@ -46356,8 +52735,8 @@ }, "$sequence": { "type": "integer", - "description": "Document automatically incrementing ID.", - "x-example": 1, + "description": "Document sequence ID.", + "x-example": "1", "format": "int32", "readOnly": true }, @@ -46406,7 +52785,7 @@ ], "example": { "$id": "5e5ea5c16897e", - "$sequence": 1, + "$sequence": "1", "$collectionId": "5e5ea5c15117e", "$databaseId": "5e5ea5c15117e", "$createdAt": "2020-10-15T06:38:00.000+00:00", diff --git a/specs/latest/swagger2-latest-client.json b/specs/latest/swagger2-latest-client.json index c2960f64..a2608b5b 100644 --- a/specs/latest/swagger2-latest-client.json +++ b/specs/latest/swagger2-latest-client.json @@ -612,7 +612,7 @@ "x-appwrite": { "method": "updateMFA", "group": "mfa", - "weight": 239, + "weight": 223, "cookies": false, "type": "", "demo": "account\/update-mfa.md", @@ -687,7 +687,7 @@ "x-appwrite": { "method": "createMfaAuthenticator", "group": "mfa", - "weight": 241, + "weight": 225, "cookies": false, "type": "", "demo": "account\/create-mfa-authenticator.md", @@ -811,7 +811,7 @@ "x-appwrite": { "method": "updateMfaAuthenticator", "group": "mfa", - "weight": 242, + "weight": 226, "cookies": false, "type": "", "demo": "account\/update-mfa-authenticator.md", @@ -952,7 +952,7 @@ "x-appwrite": { "method": "deleteMfaAuthenticator", "group": "mfa", - "weight": 243, + "weight": 227, "cookies": false, "type": "", "demo": "account\/delete-mfa-authenticator.md", @@ -1076,7 +1076,7 @@ "x-appwrite": { "method": "createMfaChallenge", "group": "mfa", - "weight": 247, + "weight": 231, "cookies": false, "type": "", "demo": "account\/create-mfa-challenge.md", @@ -1213,7 +1213,7 @@ "x-appwrite": { "method": "updateMfaChallenge", "group": "mfa", - "weight": 248, + "weight": 232, "cookies": false, "type": "", "demo": "account\/update-mfa-challenge.md", @@ -1353,7 +1353,7 @@ "x-appwrite": { "method": "listMfaFactors", "group": "mfa", - "weight": 240, + "weight": 224, "cookies": false, "type": "", "demo": "account\/list-mfa-factors.md", @@ -1454,7 +1454,7 @@ "x-appwrite": { "method": "getMfaRecoveryCodes", "group": "mfa", - "weight": 246, + "weight": 230, "cookies": false, "type": "", "demo": "account\/get-mfa-recovery-codes.md", @@ -1555,7 +1555,7 @@ "x-appwrite": { "method": "createMfaRecoveryCodes", "group": "mfa", - "weight": 244, + "weight": 228, "cookies": false, "type": "", "demo": "account\/create-mfa-recovery-codes.md", @@ -1656,7 +1656,7 @@ "x-appwrite": { "method": "updateMfaRecoveryCodes", "group": "mfa", - "weight": 245, + "weight": 229, "cookies": false, "type": "", "demo": "account\/update-mfa-recovery-codes.md", @@ -4203,7 +4203,7 @@ "x-appwrite": { "method": "getBrowser", "group": null, - "weight": 250, + "weight": 234, "cookies": false, "type": "location", "demo": "avatars\/get-browser.md", @@ -4329,7 +4329,7 @@ "x-appwrite": { "method": "getCreditCard", "group": null, - "weight": 249, + "weight": 233, "cookies": false, "type": "location", "demo": "avatars\/get-credit-card.md", @@ -4461,7 +4461,7 @@ "x-appwrite": { "method": "getFavicon", "group": null, - "weight": 253, + "weight": 237, "cookies": false, "type": "location", "demo": "avatars\/get-favicon.md", @@ -4525,7 +4525,7 @@ "x-appwrite": { "method": "getFlag", "group": null, - "weight": 251, + "weight": 235, "cookies": false, "type": "location", "demo": "avatars\/get-flag.md", @@ -5013,7 +5013,7 @@ "x-appwrite": { "method": "getImage", "group": null, - "weight": 252, + "weight": 236, "cookies": false, "type": "location", "demo": "avatars\/get-image.md", @@ -5097,7 +5097,7 @@ "x-appwrite": { "method": "getInitials", "group": null, - "weight": 255, + "weight": 239, "cookies": false, "type": "location", "demo": "avatars\/get-initials.md", @@ -5189,7 +5189,7 @@ "x-appwrite": { "method": "getQR", "group": null, - "weight": 254, + "weight": 238, "cookies": false, "type": "location", "demo": "avatars\/get-qr.md", @@ -5281,7 +5281,7 @@ "x-appwrite": { "method": "getScreenshot", "group": null, - "weight": 256, + "weight": 240, "cookies": false, "type": "location", "demo": "avatars\/get-screenshot.md", @@ -5994,7 +5994,7 @@ "x-appwrite": { "method": "listTransactions", "group": "transactions", - "weight": 332, + "weight": 316, "cookies": false, "type": "", "demo": "databases\/list-transactions.md", @@ -6061,7 +6061,7 @@ "x-appwrite": { "method": "createTransaction", "group": "transactions", - "weight": 328, + "weight": 312, "cookies": false, "type": "", "demo": "databases\/create-transaction.md", @@ -6132,7 +6132,7 @@ "x-appwrite": { "method": "getTransaction", "group": "transactions", - "weight": 329, + "weight": 313, "cookies": false, "type": "", "demo": "databases\/get-transaction.md", @@ -6195,7 +6195,7 @@ "x-appwrite": { "method": "updateTransaction", "group": "transactions", - "weight": 330, + "weight": 314, "cookies": false, "type": "", "demo": "databases\/update-transaction.md", @@ -6274,7 +6274,7 @@ "x-appwrite": { "method": "deleteTransaction", "group": "transactions", - "weight": 331, + "weight": 315, "cookies": false, "type": "", "demo": "databases\/delete-transaction.md", @@ -6339,7 +6339,7 @@ "x-appwrite": { "method": "createOperations", "group": "transactions", - "weight": 333, + "weight": 317, "cookies": false, "type": "", "demo": "databases\/create-operations.md", @@ -6420,7 +6420,7 @@ "x-appwrite": { "method": "listDocuments", "group": "documents", - "weight": 283, + "weight": 267, "cookies": false, "type": "", "demo": "databases\/list-documents.md", @@ -6496,6 +6496,16 @@ "x-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, + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0, + "in": "query" } ] }, @@ -6524,7 +6534,7 @@ "x-appwrite": { "method": "createDocument", "group": "documents", - "weight": 275, + "weight": 259, "cookies": false, "type": "", "demo": "databases\/create-document.md", @@ -6657,6 +6667,143 @@ } } ] + }, + "put": { + "summary": "Upsert documents", + "operationId": "databasesUpsertDocuments", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "databases" + ], + "description": "Create or update Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection) API or directly from your database console.\n", + "responses": { + "201": { + "description": "Documents List", + "schema": { + "$ref": "#\/definitions\/documentList" + } + } + }, + "deprecated": true, + "x-appwrite": { + "method": "upsertDocuments", + "group": "documents", + "weight": 264, + "cookies": false, + "type": "", + "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", + "client", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/upsert-documents.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.upsertRows" + }, + "methods": [ + { + "name": "upsertDocuments", + "namespace": "databases", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documents", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documents" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/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": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "documents": { + "type": "array", + "description": "Array of document data as JSON objects. May contain partial documents.", + "default": null, + "x-example": null, + "items": { + "type": "object" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "default": null, + "x-example": "<TRANSACTION_ID>", + "x-nullable": true + } + }, + "required": [ + "documents" + ] + } + } + ] } }, "\/databases\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { @@ -6683,7 +6830,7 @@ "x-appwrite": { "method": "getDocument", "group": "documents", - "weight": 276, + "weight": 260, "cookies": false, "type": "", "demo": "databases\/get-document.md", @@ -6786,7 +6933,7 @@ "x-appwrite": { "method": "upsertDocument", "group": "documents", - "weight": 279, + "weight": 263, "cookies": false, "type": "", "demo": "databases\/upsert-document.md", @@ -6937,7 +7084,7 @@ "x-appwrite": { "method": "updateDocument", "group": "documents", - "weight": 277, + "weight": 261, "cookies": false, "type": "", "demo": "databases\/update-document.md", @@ -7047,7 +7194,7 @@ "x-appwrite": { "method": "deleteDocument", "group": "documents", - "weight": 281, + "weight": 265, "cookies": false, "type": "", "demo": "databases\/delete-document.md", @@ -7148,7 +7295,7 @@ "x-appwrite": { "method": "decrementDocumentAttribute", "group": "documents", - "weight": 286, + "weight": 270, "cookies": false, "type": "", "demo": "databases\/decrement-document-attribute.md", @@ -7271,7 +7418,7 @@ "x-appwrite": { "method": "incrementDocumentAttribute", "group": "documents", - "weight": 285, + "weight": 269, "cookies": false, "type": "", "demo": "databases\/increment-document-attribute.md", @@ -7368,42 +7515,42 @@ ] } }, - "\/functions\/{functionId}\/executions": { + "\/documentsdb\/transactions": { "get": { - "summary": "List executions", - "operationId": "functionsListExecutions", + "summary": "List transactions", + "operationId": "documentsDBListTransactions", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "functions" + "documentsDB" ], - "description": "Get a list of all the current user function execution logs. You can use the query params to filter your results.", + "description": false, "responses": { "200": { - "description": "Executions List", + "description": "Transaction List", "schema": { - "$ref": "#\/definitions\/executionList" + "$ref": "#\/definitions\/transactionList" } } }, "deprecated": false, "x-appwrite": { - "method": "listExecutions", - "group": "executions", - "weight": 577, + "method": "listTransactions", + "group": "transactions", + "weight": 425, "cookies": false, "type": "", - "demo": "functions\/list-executions.md", + "demo": "documentsdb\/list-transactions.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "execution.read", + "scope": "documents.read", "platforms": [ "console", - "client", - "server" + "server", + "client" ], "packaging": false, "public": true, @@ -7419,17 +7566,9 @@ } ], "parameters": [ - { - "name": "functionId", - "description": "Function ID.", - "required": true, - "type": "string", - "x-example": "<FUNCTION_ID>", - "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", + "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, "type": "array", "collectionFormat": "multi", @@ -7438,55 +7577,46 @@ }, "default": [], "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" } ] }, "post": { - "summary": "Create execution", - "operationId": "functionsCreateExecution", + "summary": "Create transaction", + "operationId": "documentsDBCreateTransaction", "consumes": [ "application\/json" ], "produces": [ - "multipart\/form-data" + "application\/json" ], "tags": [ - "functions" + "documentsDB" ], - "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.", + "description": false, "responses": { "201": { - "description": "Execution", + "description": "Transaction", "schema": { - "$ref": "#\/definitions\/execution" + "$ref": "#\/definitions\/transaction" } } }, "deprecated": false, "x-appwrite": { - "method": "createExecution", - "group": "executions", - "weight": 575, + "method": "createTransaction", + "group": "transactions", + "weight": 421, "cookies": false, "type": "", - "demo": "functions\/create-execution.md", + "demo": "documentsdb\/create-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "execution.write", + "scope": "documents.write", "platforms": [ "console", - "client", - "server" + "server", + "client" ], "packaging": false, "public": true, @@ -7502,110 +7632,61 @@ } ], "parameters": [ - { - "name": "functionId", - "description": "Function ID.", - "required": true, - "type": "string", - "x-example": "<FUNCTION_ID>", - "in": "path" - }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "body": { - "type": "string", - "description": "HTTP body of execution. Default value is empty string.", - "default": "", - "x-example": "<BODY>" - }, - "async": { - "type": "boolean", - "description": "Execute code in the background. Default value is false.", - "default": false, - "x-example": false - }, - "path": { - "type": "string", - "description": "HTTP path of execution. Path can include query params. Default value is \/", - "default": "\/", - "x-example": "<PATH>" - }, - "method": { - "type": "string", - "description": "HTTP method of execution. Default value is POST.", - "default": "POST", - "x-example": "GET", - "enum": [ - "GET", - "POST", - "PUT", - "PATCH", - "DELETE", - "OPTIONS", - "HEAD" - ], - "x-enum-name": "ExecutionMethod", - "x-enum-keys": [] - }, - "headers": { - "type": "object", - "description": "HTTP headers of execution. Defaults to empty.", - "default": [], - "x-example": "{}" - }, - "scheduledAt": { - "type": "string", - "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.", - "default": null, - "x-example": "<SCHEDULED_AT>", - "x-nullable": true - } - } - } - } + "ttl": { + "type": "integer", + "description": "Seconds before the transaction expires.", + "default": 300, + "x-example": 60, + "format": "int32" + } + } + } + } ] } }, - "\/functions\/{functionId}\/executions\/{executionId}": { + "\/documentsdb\/transactions\/{transactionId}": { "get": { - "summary": "Get execution", - "operationId": "functionsGetExecution", + "summary": "Get transaction", + "operationId": "documentsDBGetTransaction", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "functions" + "documentsDB" ], - "description": "Get a function execution log by its unique ID.", + "description": false, "responses": { "200": { - "description": "Execution", + "description": "Transaction", "schema": { - "$ref": "#\/definitions\/execution" + "$ref": "#\/definitions\/transaction" } } }, "deprecated": false, "x-appwrite": { - "method": "getExecution", - "group": "executions", - "weight": 576, + "method": "getTransaction", + "group": "transactions", + "weight": 422, "cookies": false, "type": "", - "demo": "functions\/get-execution.md", + "demo": "documentsdb\/get-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "execution.read", + "scope": "documents.read", "platforms": [ "console", - "client", - "server" + "server", + "client" ], "packaging": false, "public": true, @@ -7622,28 +7703,18 @@ ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", - "required": true, - "type": "string", - "x-example": "<FUNCTION_ID>", - "in": "path" - }, - { - "name": "executionId", - "description": "Execution ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "type": "string", - "x-example": "<EXECUTION_ID>", + "x-example": "<TRANSACTION_ID>", "in": "path" } ] - } - }, - "\/graphql": { - "post": { - "summary": "GraphQL endpoint", - "operationId": "graphqlQuery", + }, + "patch": { + "summary": "Update transaction", + "operationId": "documentsDBUpdateTransaction", "consumes": [ "application\/json" ], @@ -7651,29 +7722,29 @@ "application\/json" ], "tags": [ - "graphql" + "documentsDB" ], - "description": "Execute a GraphQL mutation.", + "description": false, "responses": { "200": { - "description": "Any", + "description": "Transaction", "schema": { - "$ref": "#\/definitions\/any" + "$ref": "#\/definitions\/transaction" } } }, "deprecated": false, "x-appwrite": { - "method": "query", - "group": "graphql", - "weight": 176, + "method": "updateTransaction", + "group": "transactions", + "weight": 423, "cookies": false, - "type": "graphql", - "demo": "graphql\/query.md", - "rate-limit": 60, - "rate-time": 60, + "type": "", + "demo": "documentsdb\/update-transaction.md", + "rate-limit": 0, + "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "graphql", + "scope": "documents.write", "platforms": [ "console", "server", @@ -7681,7 +7752,6 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/graphql\/post.md", "auth": { "Project": [] } @@ -7694,61 +7764,65 @@ } ], "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "type": "string", + "x-example": "<TRANSACTION_ID>", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "query": { - "type": "object", - "description": "The query or queries to execute.", - "default": {}, - "x-example": "{}" + "commit": { + "type": "boolean", + "description": "Commit transaction?", + "default": false, + "x-example": false + }, + "rollback": { + "type": "boolean", + "description": "Rollback transaction?", + "default": false, + "x-example": false } - }, - "required": [ - "query" - ] + } } } ] - } - }, - "\/graphql\/mutation": { - "post": { - "summary": "GraphQL endpoint", - "operationId": "graphqlMutation", + }, + "delete": { + "summary": "Delete transaction", + "operationId": "documentsDBDeleteTransaction", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ - "graphql" + "documentsDB" ], - "description": "Execute a GraphQL mutation.", + "description": false, "responses": { - "200": { - "description": "Any", - "schema": { - "$ref": "#\/definitions\/any" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "mutation", - "group": "graphql", - "weight": 175, + "method": "deleteTransaction", + "group": "transactions", + "weight": 424, "cookies": false, - "type": "graphql", - "demo": "graphql\/mutation.md", - "rate-limit": 60, - "rate-time": 60, + "type": "", + "demo": "documentsdb\/delete-transaction.md", + "rate-limit": 0, + "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "graphql", + "scope": "documents.write", "platforms": [ "console", "server", @@ -7756,7 +7830,6 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/graphql\/post.md", "auth": { "Project": [] } @@ -7770,66 +7843,56 @@ ], "parameters": [ { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "query": { - "type": "object", - "description": "The query or queries to execute.", - "default": {}, - "x-example": "{}" - } - }, - "required": [ - "query" - ] - } + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "type": "string", + "x-example": "<TRANSACTION_ID>", + "in": "path" } ] } }, - "\/locale": { - "get": { - "summary": "Get user locale", - "operationId": "localeGet", - "consumes": [], + "\/documentsdb\/transactions\/{transactionId}\/operations": { + "post": { + "summary": "Create operations", + "operationId": "documentsDBCreateOperations", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "locale" + "documentsDB" ], - "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))", + "description": false, "responses": { - "200": { - "description": "Locale", + "201": { + "description": "Transaction", "schema": { - "$ref": "#\/definitions\/locale" + "$ref": "#\/definitions\/transaction" } } }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": null, - "weight": 49, + "method": "createOperations", + "group": "transactions", + "weight": 426, "cookies": false, "type": "", - "demo": "locale\/get.md", + "demo": "documentsdb\/create-operations.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "scope": "documents.write", "platforms": [ - "console", - "client", - "server" + "server", + "client" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-locale.md", "auth": { "Project": [] } @@ -7840,41 +7903,69 @@ "Session": [], "JWT": [] } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "type": "string", + "x-example": "<TRANSACTION_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "operations": { + "type": "array", + "description": "Array of staged operations.", + "default": [], + "x-example": "[\n\t {\n\t \"action\": \"create\",\n\t \"databaseId\": \"<DATABASE_ID>\",\n\t \"collectionId\": \"<COLLECTION_ID>\",\n\t \"documentId\": \"<DOCUMENT_ID>\",\n\t \"data\": {\n\t \"name\": \"Walter O'Brien\"\n\t }\n\t }\n\t]", + "items": { + "type": "object" + } + } + } + } + } ] } }, - "\/locale\/codes": { + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents": { "get": { - "summary": "List locale codes", - "operationId": "localeListCodes", + "summary": "List documents", + "operationId": "documentsDBListDocuments", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "locale" + "documentsDB" ], - "description": "List of all locale codes in [ISO 639-1](https:\/\/en.wikipedia.org\/wiki\/List_of_ISO_639-1_codes).", + "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": "Locale codes list", + "description": "Documents List", "schema": { - "$ref": "#\/definitions\/localeCodeList" + "$ref": "#\/definitions\/documentList" } } }, "deprecated": false, "x-appwrite": { - "method": "listCodes", - "group": null, - "weight": 50, + "method": "listDocuments", + "group": "documents", + "weight": 417, "cookies": false, "type": "", - "demo": "locale\/list-codes.md", + "demo": "documentsdb\/list-documents.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "scope": "documents.read", "platforms": [ "console", "client", @@ -7882,7 +7973,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-locale-codes.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/list-documents.md", "auth": { "Project": [] } @@ -7893,94 +7984,98 @@ "Session": [], "JWT": [] } - ] - } - }, - "\/locale\/continents": { - "get": { - "summary": "List continents", - "operationId": "localeListContinents", - "consumes": [], - "produces": [ - "application\/json" - ], - "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", - "schema": { - "$ref": "#\/definitions\/continentList" - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "listContinents", - "group": null, - "weight": 54, - "cookies": false, - "type": "", - "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, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-continents.md", - "auth": { - "Project": [] - } - }, - "security": [ + "parameters": [ { - "Project": [], - "Session": [], - "JWT": [] + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", + "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, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", + "required": false, + "type": "string", + "x-example": "<TRANSACTION_ID>", + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "type": "boolean", + "x-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, + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0, + "in": "query" } ] - } - }, - "\/locale\/countries": { - "get": { - "summary": "List countries", - "operationId": "localeListCountries", - "consumes": [], + }, + "post": { + "summary": "Create document", + "operationId": "documentsDBCreateDocument", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "locale" + "documentsDB" ], - "description": "List of all countries. You can use the locale header to get the data in a supported language.", + "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": { - "200": { - "description": "Countries List", + "201": { + "description": "Document", "schema": { - "$ref": "#\/definitions\/countryList" + "$ref": "#\/definitions\/document" } } }, "deprecated": false, "x-appwrite": { - "method": "listCountries", - "group": null, - "weight": 51, + "method": "createDocument", + "group": "documents", + "weight": 409, "cookies": false, "type": "", - "demo": "locale\/list-countries.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "demo": "documentsdb\/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", @@ -7988,7 +8083,66 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/create-document.md", + "methods": [ + { + "name": "createDocument", + "namespace": "documentsDB", + "desc": "Create document", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions" + ], + "required": [ + "databaseId", + "collectionId", + "documentId", + "data" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/document" + } + ], + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "demo": "documentsdb\/create-document.md", + "public": true + }, + { + "name": "createDocuments", + "namespace": "documentsDB", + "desc": "Create documents", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documents" + ], + "required": [ + "databaseId", + "collectionId", + "documents" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/documentList" + } + ], + "description": "Create new Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "demo": "documentsdb\/create-documents.md", + "public": true + } + ], "auth": { "Project": [] } @@ -7999,41 +8153,104 @@ "Session": [], "JWT": [] } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "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, + "type": "string", + "x-example": "<COLLECTION_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "documentId": { + "type": "string", + "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "default": "", + "x-example": "<DOCUMENT_ID>" + }, + "data": { + "type": "object", + "description": "Document data as JSON object.", + "default": [], + "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":30,\"isAdmin\":false}" + }, + "permissions": { + "type": "array", + "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).", + "default": null, + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } + }, + "documents": { + "type": "array", + "description": "Array of documents data as JSON objects.", + "default": [], + "x-example": null, + "items": { + "type": "object" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "default": null, + "x-example": "<TRANSACTION_ID>" + } + } + } + } ] } }, - "\/locale\/countries\/eu": { + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { "get": { - "summary": "List EU countries", - "operationId": "localeListCountriesEU", + "summary": "Get document", + "operationId": "documentsDBGetDocument", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "locale" + "documentsDB" ], - "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.", + "description": "Get a document by its unique ID. This endpoint response returns a JSON object with the document data.", "responses": { "200": { - "description": "Countries List", + "description": "Document", "schema": { - "$ref": "#\/definitions\/countryList" + "$ref": "#\/definitions\/document" } } }, "deprecated": false, "x-appwrite": { - "method": "listCountriesEU", - "group": null, - "weight": 52, + "method": "getDocument", + "group": "documents", + "weight": 410, "cookies": false, "type": "", - "demo": "locale\/list-countries-eu.md", + "demo": "documentsdb\/get-document.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "scope": "documents.read", "platforms": [ "console", "client", @@ -8041,7 +8258,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries-eu.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/get-document.md", "auth": { "Project": [] } @@ -8052,94 +8269,87 @@ "Session": [], "JWT": [] } - ] - } - }, - "\/locale\/countries\/phones": { - "get": { - "summary": "List countries phone codes", - "operationId": "localeListCountriesPhones", - "consumes": [], - "produces": [ - "application\/json" - ], - "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", - "schema": { - "$ref": "#\/definitions\/phoneList" - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "listCountriesPhones", - "group": null, - "weight": 53, - "cookies": false, - "type": "", - "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, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries-phones.md", - "auth": { - "Project": [] - } - }, - "security": [ + "parameters": [ { - "Project": [], - "Session": [], - "JWT": [] + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "type": "string", + "x-example": "<DOCUMENT_ID>", + "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, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", + "required": false, + "type": "string", + "x-example": "<TRANSACTION_ID>", + "in": "query" } ] - } - }, - "\/locale\/currencies": { - "get": { - "summary": "List currencies", - "operationId": "localeListCurrencies", - "consumes": [], + }, + "put": { + "summary": "Upsert a document", + "operationId": "documentsDBUpsertDocument", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "locale" + "documentsDB" ], - "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.", + "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": { - "200": { - "description": "Currencies List", + "201": { + "description": "Document", "schema": { - "$ref": "#\/definitions\/currencyList" + "$ref": "#\/definitions\/document" } } }, "deprecated": false, "x-appwrite": { - "method": "listCurrencies", - "group": null, - "weight": 55, + "method": "upsertDocument", + "group": "documents", + "weight": 413, "cookies": false, "type": "", - "demo": "locale\/list-currencies.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "demo": "documentsdb\/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", @@ -8147,7 +8357,39 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-currencies.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/upsert-document.md", + "methods": [ + { + "name": "upsertDocument", + "namespace": "documentsDB", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documentId" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/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": { "Project": [] } @@ -8158,41 +8400,97 @@ "Session": [], "JWT": [] } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "type": "string", + "x-example": "<DOCUMENT_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "data": { + "type": "object", + "description": "Document data as JSON object. Include all required fields of the document to be created or updated.", + "default": [], + "x-example": "{}" + }, + "permissions": { + "type": "array", + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "default": null, + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "default": null, + "x-example": "<TRANSACTION_ID>" + } + } + } + } ] - } - }, - "\/locale\/languages": { - "get": { - "summary": "List languages", - "operationId": "localeListLanguages", - "consumes": [], + }, + "patch": { + "summary": "Update document", + "operationId": "documentsDBUpdateDocument", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "locale" + "documentsDB" ], - "description": "List of all languages classified by ISO 639-1 including 2-letter code, name in English, and name in the respective language.", + "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": "Languages List", + "description": "Document", "schema": { - "$ref": "#\/definitions\/languageList" + "$ref": "#\/definitions\/document" } } }, "deprecated": false, "x-appwrite": { - "method": "listLanguages", - "group": null, - "weight": 56, + "method": "updateDocument", + "group": "documents", + "weight": 411, "cookies": false, "type": "", - "demo": "locale\/list-languages.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "demo": "documentsdb\/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", @@ -8200,7 +8498,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-languages.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/update-document.md", "auth": { "Project": [] } @@ -8211,69 +8509,30 @@ "Session": [], "JWT": [] } - ] - } - }, - "\/messaging\/topics\/{topicId}\/subscribers": { - "post": { - "summary": "Create subscriber", - "operationId": "messagingCreateSubscriber", - "consumes": [ - "application\/json" - ], - "produces": [ - "application\/json" - ], - "tags": [ - "messaging" - ], - "description": "Create a new subscriber.", - "responses": { - "201": { - "description": "Subscriber", - "schema": { - "$ref": "#\/definitions\/subscriber" - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "createSubscriber", - "group": "subscribers", - "weight": 223, - "cookies": false, - "type": "", - "demo": "messaging\/create-subscriber.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "subscribers.write", - "platforms": [ - "server", - "client", - "console" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-subscriber.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "JWT": [], - "Session": [] - } ], "parameters": [ { - "name": "topicId", - "description": "Topic ID. The topic ID to subscribe to.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<TOPIC_ID>", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "type": "string", + "x-example": "<DOCUMENT_ID>", "in": "path" }, { @@ -8282,40 +8541,43 @@ "schema": { "type": "object", "properties": { - "subscriberId": { - "type": "string", - "description": "Subscriber ID. Choose a custom Subscriber ID or a new Subscriber ID.", + "data": { + "type": "object", + "description": "Document data as JSON object. Include only fields and value pairs to be updated.", + "default": [], + "x-example": "{}" + }, + "permissions": { + "type": "array", + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", "default": null, - "x-example": "<SUBSCRIBER_ID>" + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } }, - "targetId": { + "transactionId": { "type": "string", - "description": "Target ID. The target ID to link to the specified Topic ID.", + "description": "Transaction ID for staging the operation.", "default": null, - "x-example": "<TARGET_ID>" + "x-example": "<TRANSACTION_ID>" } - }, - "required": [ - "subscriberId", - "targetId" - ] + } } } ] - } - }, - "\/messaging\/topics\/{topicId}\/subscribers\/{subscriberId}": { + }, "delete": { - "summary": "Delete subscriber", - "operationId": "messagingDeleteSubscriber", + "summary": "Delete document", + "operationId": "documentsDBDeleteDocument", "consumes": [ "application\/json" ], "produces": [], "tags": [ - "messaging" + "documentsDB" ], - "description": "Delete a subscriber by its unique ID.", + "description": "Delete a document by its unique ID.", "responses": { "204": { "description": "No content" @@ -8323,24 +8585,24 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteSubscriber", - "group": "subscribers", - "weight": 227, + "method": "deleteDocument", + "group": "documents", + "weight": 415, "cookies": false, "type": "", - "demo": "messaging\/delete-subscriber.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "subscribers.write", + "demo": "documentsdb\/delete-document.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", "platforms": [ - "server", + "console", "client", - "console" + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-subscriber.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/delete-document.md", "auth": { "Project": [] } @@ -8348,70 +8610,95 @@ "security": [ { "Project": [], - "JWT": [], - "Session": [] + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "topicId", - "description": "Topic ID. The topic ID subscribed to.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<TOPIC_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "subscriberId", - "description": "Subscriber ID.", + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", "required": true, "type": "string", - "x-example": "<SUBSCRIBER_ID>", + "x-example": "<COLLECTION_ID>", + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "type": "string", + "x-example": "<DOCUMENT_ID>", "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "default": null, + "x-example": "<TRANSACTION_ID>" + } + } + } } ] } }, - "\/storage\/buckets\/{bucketId}\/files": { - "get": { - "summary": "List files", - "operationId": "storageListFiles", - "consumes": [], + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/decrement": { + "patch": { + "summary": "Decrement document attribute", + "operationId": "documentsDBDecrementDocumentAttribute", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "storage" + "documentsDB" ], - "description": "Get a list of all the user files. You can use the query params to filter your results.", + "description": "Decrement a specific column of a row by a given value.", "responses": { "200": { - "description": "Files List", + "description": "Document", "schema": { - "$ref": "#\/definitions\/fileList" + "$ref": "#\/definitions\/document" } } }, "deprecated": false, "x-appwrite": { - "method": "listFiles", - "group": "files", - "weight": 535, + "method": "decrementDocumentAttribute", + "group": "documents", + "weight": 420, "cookies": false, "type": "", - "demo": "storage\/list-files.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", + "demo": "documentsdb\/decrement-document-attribute.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", "platforms": [ - "console", "client", - "server" + "server", + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/list-files.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/decrement-document-attribute.md", "auth": { "Project": [] } @@ -8425,86 +8712,110 @@ ], "parameters": [ { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<BUCKET_ID>", + "x-example": "<DATABASE_ID>", "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, signature, mimeType, sizeOriginal, chunksTotal, chunksUploaded", - "required": false, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", + "in": "path" }, { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, + "name": "documentId", + "description": "Document ID.", + "required": true, "type": "string", - "x-example": "<SEARCH>", - "default": "", - "in": "query" + "x-example": "<DOCUMENT_ID>", + "in": "path" }, { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" - } - ] - }, - "post": { - "summary": "Create file", - "operationId": "storageCreateFile", - "consumes": [ - "multipart\/form-data" - ], - "produces": [ - "application\/json" - ], - "tags": [ - "storage" - ], - "description": "Create a new file. Before using this route, you should create a new bucket resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/storage#storageCreateBucket) API or directly from your Appwrite console.\n\nLarger files should be uploaded using multiple requests with the [content-range](https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTTP\/Headers\/Content-Range) header to send a partial request with a maximum supported chunk of `5MB`. The `content-range` header values should always be in bytes.\n\nWhen the first request is sent, the server will return the **File** object, and the subsequent part request must include the file's **id** in `x-appwrite-id` header to allow the server to know that the partial upload is for the existing file and not for a new one.\n\nIf you're creating a new file using one of the Appwrite SDKs, all the chunking logic will be managed by the SDK internally.\n", - "responses": { - "201": { - "description": "File", - "schema": { - "$ref": "#\/definitions\/file" - } - } + "name": "attribute", + "description": "Attribute key.", + "required": true, + "type": "string", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "value": { + "type": "number", + "description": "Value to decrement the attribute by. The value must be a number.", + "default": 1, + "x-example": null, + "format": "float" + }, + "min": { + "type": "number", + "description": "Minimum value for the attribute. If the current value is lesser than this value, an exception will be thrown.", + "default": null, + "x-example": null, + "format": "float" + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "default": null, + "x-example": "<TRANSACTION_ID>" + } + } + } + } + ] + } + }, + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/increment": { + "patch": { + "summary": "Increment document attribute", + "operationId": "documentsDBIncrementDocumentAttribute", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "documentsDB" + ], + "description": "Increment a specific column of a row by a given value.", + "responses": { + "200": { + "description": "Document", + "schema": { + "$ref": "#\/definitions\/document" + } + } }, "deprecated": false, "x-appwrite": { - "method": "createFile", - "group": "files", - "weight": 781, + "method": "incrementDocumentAttribute", + "group": "documents", + "weight": 419, "cookies": false, - "type": "upload", - "demo": "storage\/create-file.md", - "rate-limit": 60, + "type": "", + "demo": "documentsdb\/increment-document-attribute.md", + "rate-limit": 120, "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId},chunkId:{chunkId}", - "scope": "files.write", + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", "platforms": [ - "console", "client", - "server" + "server", + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/create-file.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/increment-document-attribute.md", "auth": { "Project": [] } @@ -8518,76 +8829,100 @@ ], "parameters": [ { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<BUCKET_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "fileId", - "description": "File 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.", + "name": "collectionId", + "description": "Collection ID.", "required": true, - "x-upload-id": true, "type": "string", - "x-example": "<FILE_ID>", - "in": "formData" + "x-example": "<COLLECTION_ID>", + "in": "path" }, { - "name": "file", - "description": "Binary file. Appwrite SDKs provide helpers to handle file input. [Learn about file input](https:\/\/appwrite.io\/docs\/products\/storage\/upload-download#input-file).", + "name": "documentId", + "description": "Document ID.", "required": true, - "type": "file", - "in": "formData" + "type": "string", + "x-example": "<DOCUMENT_ID>", + "in": "path" }, { - "name": "permissions", - "description": "An array of permission strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "required": false, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "x-example": "[\"read(\"any\")\"]", - "in": "formData" + "name": "attribute", + "description": "Attribute key.", + "required": true, + "type": "string", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "value": { + "type": "number", + "description": "Value to increment the attribute by. The value must be a number.", + "default": 1, + "x-example": null, + "format": "float" + }, + "max": { + "type": "number", + "description": "Maximum value for the attribute. If the current value is greater than this value, an error will be thrown.", + "default": null, + "x-example": null, + "format": "float" + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "default": null, + "x-example": "<TRANSACTION_ID>" + } + } + } } ] } }, - "\/storage\/buckets\/{bucketId}\/files\/{fileId}": { + "\/functions\/{functionId}\/executions": { "get": { - "summary": "Get file", - "operationId": "storageGetFile", + "summary": "List executions", + "operationId": "functionsListExecutions", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "storage" + "functions" ], - "description": "Get a file by its unique ID. This endpoint response returns a JSON object with the file metadata.", + "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": "File", + "description": "Executions List", "schema": { - "$ref": "#\/definitions\/file" + "$ref": "#\/definitions\/executionList" } } }, "deprecated": false, "x-appwrite": { - "method": "getFile", - "group": "files", - "weight": 534, + "method": "listExecutions", + "group": "executions", + "weight": 493, "cookies": false, "type": "", - "demo": "storage\/get-file.md", + "demo": "functions\/list-executions.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", + "scope": "execution.read", "platforms": [ "console", "client", @@ -8595,7 +8930,6 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file.md", "auth": { "Project": [] } @@ -8609,56 +8943,69 @@ ], "parameters": [ { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "name": "functionId", + "description": "Function ID.", "required": true, "type": "string", - "x-example": "<BUCKET_ID>", + "x-example": "<FUNCTION_ID>", "in": "path" }, { - "name": "fileId", - "description": "File ID.", - "required": true, - "type": "string", - "x-example": "<FILE_ID>", - "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, + "type": "array", + "collectionFormat": "multi", + "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, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" } ] }, - "put": { - "summary": "Update file", - "operationId": "storageUpdateFile", + "post": { + "summary": "Create execution", + "operationId": "functionsCreateExecution", "consumes": [ "application\/json" ], "produces": [ - "application\/json" + "multipart\/form-data" ], "tags": [ - "storage" + "functions" ], - "description": "Update a file by its unique ID. Only users with write permissions have access to update this resource.", + "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": { - "200": { - "description": "File", + "201": { + "description": "Execution", "schema": { - "$ref": "#\/definitions\/file" + "$ref": "#\/definitions\/execution" } } }, "deprecated": false, "x-appwrite": { - "method": "updateFile", - "group": "files", - "weight": 536, + "method": "createExecution", + "group": "executions", + "weight": 491, "cookies": false, "type": "", - "demo": "storage\/update-file.md", + "demo": "functions\/create-execution.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "files.write", + "scope": "execution.write", "platforms": [ "console", "client", @@ -8666,7 +9013,6 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/update-file.md", "auth": { "Project": [] } @@ -8680,19 +9026,11 @@ ], "parameters": [ { - "name": "bucketId", - "description": "Bucket unique ID.", - "required": true, - "type": "string", - "x-example": "<BUCKET_ID>", - "in": "path" - }, - { - "name": "fileId", - "description": "File ID.", + "name": "functionId", + "description": "Function ID.", "required": true, "type": "string", - "x-example": "<FILE_ID>", + "x-example": "<FUNCTION_ID>", "in": "path" }, { @@ -8701,55 +9039,92 @@ "schema": { "type": "object", "properties": { - "name": { + "body": { "type": "string", - "description": "File name.", - "default": null, - "x-example": "<NAME>" + "description": "HTTP body of execution. Default value is empty string.", + "default": "", + "x-example": "<BODY>" }, - "permissions": { - "type": "array", - "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "default": null, - "x-example": "[\"read(\"any\")\"]", - "x-nullable": true, - "items": { - "type": "string" - } - } - } - } - } - ] - }, - "delete": { - "summary": "Delete file", - "operationId": "storageDeleteFile", - "consumes": [ + "async": { + "type": "boolean", + "description": "Execute code in the background. Default value is false.", + "default": false, + "x-example": false + }, + "path": { + "type": "string", + "description": "HTTP path of execution. Path can include query params. Default value is \/", + "default": "\/", + "x-example": "<PATH>" + }, + "method": { + "type": "string", + "description": "HTTP method of execution. Default value is POST.", + "default": "POST", + "x-example": "GET", + "enum": [ + "GET", + "POST", + "PUT", + "PATCH", + "DELETE", + "OPTIONS", + "HEAD" + ], + "x-enum-name": "ExecutionMethod", + "x-enum-keys": [] + }, + "headers": { + "type": "object", + "description": "HTTP headers of execution. Defaults to empty.", + "default": [], + "x-example": "{}" + }, + "scheduledAt": { + "type": "string", + "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.", + "default": null, + "x-example": "<SCHEDULED_AT>", + "x-nullable": true + } + } + } + } + ] + } + }, + "\/functions\/{functionId}\/executions\/{executionId}": { + "get": { + "summary": "Get execution", + "operationId": "functionsGetExecution", + "consumes": [], + "produces": [ "application\/json" ], - "produces": [], "tags": [ - "storage" + "functions" ], - "description": "Delete a file by its unique ID. Only users with write permissions have access to delete this resource.", + "description": "Get a function execution log by its unique ID.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Execution", + "schema": { + "$ref": "#\/definitions\/execution" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteFile", - "group": "files", - "weight": 537, + "method": "getExecution", + "group": "executions", + "weight": 492, "cookies": false, "type": "", - "demo": "storage\/delete-file.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "files.write", + "demo": "functions\/get-execution.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "execution.read", "platforms": [ "console", "client", @@ -8757,7 +9132,6 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/delete-file.md", "auth": { "Project": [] } @@ -8771,64 +9145,66 @@ ], "parameters": [ { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "name": "functionId", + "description": "Function ID.", "required": true, "type": "string", - "x-example": "<BUCKET_ID>", + "x-example": "<FUNCTION_ID>", "in": "path" }, { - "name": "fileId", - "description": "File ID.", + "name": "executionId", + "description": "Execution ID.", "required": true, "type": "string", - "x-example": "<FILE_ID>", + "x-example": "<EXECUTION_ID>", "in": "path" } ] } }, - "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/download": { - "get": { - "summary": "Get file for download", - "operationId": "storageGetFileDownload", - "consumes": [], + "\/graphql": { + "post": { + "summary": "GraphQL endpoint", + "operationId": "graphqlQuery", + "consumes": [ + "application\/json" + ], "produces": [ - "*\/*" + "application\/json" ], "tags": [ - "storage" + "graphql" ], - "description": "Get a file 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.", + "description": "Execute a GraphQL mutation.", "responses": { "200": { - "description": "File", + "description": "Any", "schema": { - "type": "file" + "$ref": "#\/definitions\/any" } } }, "deprecated": false, "x-appwrite": { - "method": "getFileDownload", - "group": "files", - "weight": 539, + "method": "query", + "group": "graphql", + "weight": 160, "cookies": false, - "type": "location", - "demo": "storage\/get-file-download.md", - "rate-limit": 0, - "rate-time": 3600, + "type": "graphql", + "demo": "graphql\/query.md", + "rate-limit": 60, + "rate-time": 60, "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", + "scope": "graphql", "platforms": [ "console", - "client", - "server" + "server", + "client" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-download.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/graphql\/post.md", "auth": { "Project": [] } @@ -8842,73 +9218,68 @@ ], "parameters": [ { - "name": "bucketId", - "description": "Storage bucket ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", - "required": true, - "type": "string", - "x-example": "<BUCKET_ID>", - "in": "path" - }, - { - "name": "fileId", - "description": "File ID.", - "required": true, - "type": "string", - "x-example": "<FILE_ID>", - "in": "path" - }, - { - "name": "token", - "description": "File token for accessing this file.", - "required": false, - "type": "string", - "x-example": "<TOKEN>", - "default": "", - "in": "query" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "query": { + "type": "object", + "description": "The query or queries to execute.", + "default": {}, + "x-example": "{}" + } + }, + "required": [ + "query" + ] + } } ] } }, - "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/preview": { - "get": { - "summary": "Get file preview", - "operationId": "storageGetFilePreview", - "consumes": [], + "\/graphql\/mutation": { + "post": { + "summary": "GraphQL endpoint", + "operationId": "graphqlMutation", + "consumes": [ + "application\/json" + ], "produces": [ - "image\/*" + "application\/json" ], "tags": [ - "storage" + "graphql" ], - "description": "Get a file preview image. Currently, this method supports preview for image files (jpg, png, and gif), other supported formats, like pdf, docs, slides, and spreadsheets, will return the file icon image. You can also pass query string arguments for cutting and resizing your preview image. Preview is supported only for image files smaller than 10MB.", + "description": "Execute a GraphQL mutation.", "responses": { "200": { - "description": "Image", + "description": "Any", "schema": { - "type": "file" + "$ref": "#\/definitions\/any" } } }, "deprecated": false, "x-appwrite": { - "method": "getFilePreview", - "group": "files", - "weight": 538, + "method": "mutation", + "group": "graphql", + "weight": 159, "cookies": false, - "type": "location", - "demo": "storage\/get-file-preview.md", - "rate-limit": 0, - "rate-time": 3600, + "type": "graphql", + "demo": "graphql\/mutation.md", + "rate-limit": 60, + "rate-time": 60, "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", + "scope": "graphql", "platforms": [ "console", - "client", - "server" + "server", + "client" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-preview.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/graphql\/post.md", "auth": { "Project": [] } @@ -8922,193 +9293,2241 @@ ], "parameters": [ { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", - "required": true, - "type": "string", - "x-example": "<BUCKET_ID>", - "in": "path" - }, - { - "name": "fileId", - "description": "File ID", - "required": true, - "type": "string", - "x-example": "<FILE_ID>", - "in": "path" - }, - { - "name": "width", - "description": "Resize preview image width, Pass an integer between 0 to 4000.", - "required": false, - "type": "integer", - "format": "int32", - "x-example": 0, - "default": 0, - "in": "query" - }, - { - "name": "height", - "description": "Resize preview image height, Pass an integer between 0 to 4000.", - "required": false, - "type": "integer", - "format": "int32", - "x-example": 0, - "default": 0, - "in": "query" - }, + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "query": { + "type": "object", + "description": "The query or queries to execute.", + "default": {}, + "x-example": "{}" + } + }, + "required": [ + "query" + ] + } + } + ] + } + }, + "\/locale": { + "get": { + "summary": "Get user locale", + "operationId": "localeGet", + "consumes": [], + "produces": [ + "application\/json" + ], + "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", + "schema": { + "$ref": "#\/definitions\/locale" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "get", + "group": null, + "weight": 49, + "cookies": false, + "type": "", + "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-locale.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + } + }, + "\/locale\/codes": { + "get": { + "summary": "List locale codes", + "operationId": "localeListCodes", + "consumes": [], + "produces": [ + "application\/json" + ], + "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", + "schema": { + "$ref": "#\/definitions\/localeCodeList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listCodes", + "group": null, + "weight": 50, + "cookies": false, + "type": "", + "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-locale-codes.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + } + }, + "\/locale\/continents": { + "get": { + "summary": "List continents", + "operationId": "localeListContinents", + "consumes": [], + "produces": [ + "application\/json" + ], + "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", + "schema": { + "$ref": "#\/definitions\/continentList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listContinents", + "group": null, + "weight": 54, + "cookies": false, + "type": "", + "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-continents.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + } + }, + "\/locale\/countries": { + "get": { + "summary": "List countries", + "operationId": "localeListCountries", + "consumes": [], + "produces": [ + "application\/json" + ], + "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", + "schema": { + "$ref": "#\/definitions\/countryList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listCountries", + "group": null, + "weight": 51, + "cookies": false, + "type": "", + "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + } + }, + "\/locale\/countries\/eu": { + "get": { + "summary": "List EU countries", + "operationId": "localeListCountriesEU", + "consumes": [], + "produces": [ + "application\/json" + ], + "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", + "schema": { + "$ref": "#\/definitions\/countryList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listCountriesEU", + "group": null, + "weight": 52, + "cookies": false, + "type": "", + "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries-eu.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + } + }, + "\/locale\/countries\/phones": { + "get": { + "summary": "List countries phone codes", + "operationId": "localeListCountriesPhones", + "consumes": [], + "produces": [ + "application\/json" + ], + "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", + "schema": { + "$ref": "#\/definitions\/phoneList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listCountriesPhones", + "group": null, + "weight": 53, + "cookies": false, + "type": "", + "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries-phones.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + } + }, + "\/locale\/currencies": { + "get": { + "summary": "List currencies", + "operationId": "localeListCurrencies", + "consumes": [], + "produces": [ + "application\/json" + ], + "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", + "schema": { + "$ref": "#\/definitions\/currencyList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listCurrencies", + "group": null, + "weight": 55, + "cookies": false, + "type": "", + "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-currencies.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + } + }, + "\/locale\/languages": { + "get": { + "summary": "List languages", + "operationId": "localeListLanguages", + "consumes": [], + "produces": [ + "application\/json" + ], + "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", + "schema": { + "$ref": "#\/definitions\/languageList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listLanguages", + "group": null, + "weight": 56, + "cookies": false, + "type": "", + "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-languages.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ] + } + }, + "\/messaging\/topics\/{topicId}\/subscribers": { + "post": { + "summary": "Create subscriber", + "operationId": "messagingCreateSubscriber", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "messaging" + ], + "description": "Create a new subscriber.", + "responses": { + "201": { + "description": "Subscriber", + "schema": { + "$ref": "#\/definitions\/subscriber" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createSubscriber", + "group": "subscribers", + "weight": 207, + "cookies": false, + "type": "", + "demo": "messaging\/create-subscriber.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "subscribers.write", + "platforms": [ + "server", + "client", + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-subscriber.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "JWT": [], + "Session": [] + } + ], + "parameters": [ + { + "name": "topicId", + "description": "Topic ID. The topic ID to subscribe to.", + "required": true, + "type": "string", + "x-example": "<TOPIC_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "subscriberId": { + "type": "string", + "description": "Subscriber ID. Choose a custom Subscriber ID or a new Subscriber ID.", + "default": null, + "x-example": "<SUBSCRIBER_ID>" + }, + "targetId": { + "type": "string", + "description": "Target ID. The target ID to link to the specified Topic ID.", + "default": null, + "x-example": "<TARGET_ID>" + } + }, + "required": [ + "subscriberId", + "targetId" + ] + } + } + ] + } + }, + "\/messaging\/topics\/{topicId}\/subscribers\/{subscriberId}": { + "delete": { + "summary": "Delete subscriber", + "operationId": "messagingDeleteSubscriber", + "consumes": [ + "application\/json" + ], + "produces": [], + "tags": [ + "messaging" + ], + "description": "Delete a subscriber by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteSubscriber", + "group": "subscribers", + "weight": 211, + "cookies": false, + "type": "", + "demo": "messaging\/delete-subscriber.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "subscribers.write", + "platforms": [ + "server", + "client", + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-subscriber.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "JWT": [], + "Session": [] + } + ], + "parameters": [ + { + "name": "topicId", + "description": "Topic ID. The topic ID subscribed to.", + "required": true, + "type": "string", + "x-example": "<TOPIC_ID>", + "in": "path" + }, + { + "name": "subscriberId", + "description": "Subscriber ID.", + "required": true, + "type": "string", + "x-example": "<SUBSCRIBER_ID>", + "in": "path" + } + ] + } + }, + "\/storage\/buckets\/{bucketId}\/files": { + "get": { + "summary": "List files", + "operationId": "storageListFiles", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "storage" + ], + "description": "Get a list of all the user files. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Files List", + "schema": { + "$ref": "#\/definitions\/fileList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listFiles", + "group": "files", + "weight": 603, + "cookies": false, + "type": "", + "demo": "storage\/list-files.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "files.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/list-files.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "type": "string", + "x-example": "<BUCKET_ID>", + "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, signature, mimeType, sizeOriginal, chunksTotal, chunksUploaded", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "type": "string", + "x-example": "<SEARCH>", + "default": "", + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" + } + ] + }, + "post": { + "summary": "Create file", + "operationId": "storageCreateFile", + "consumes": [ + "multipart\/form-data" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "storage" + ], + "description": "Create a new file. Before using this route, you should create a new bucket resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/storage#storageCreateBucket) API or directly from your Appwrite console.\n\nLarger files should be uploaded using multiple requests with the [content-range](https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTTP\/Headers\/Content-Range) header to send a partial request with a maximum supported chunk of `5MB`. The `content-range` header values should always be in bytes.\n\nWhen the first request is sent, the server will return the **File** object, and the subsequent part request must include the file's **id** in `x-appwrite-id` header to allow the server to know that the partial upload is for the existing file and not for a new one.\n\nIf you're creating a new file using one of the Appwrite SDKs, all the chunking logic will be managed by the SDK internally.\n", + "responses": { + "201": { + "description": "File", + "schema": { + "$ref": "#\/definitions\/file" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createFile", + "group": "files", + "weight": 802, + "cookies": false, + "type": "upload", + "demo": "storage\/create-file.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId},chunkId:{chunkId}", + "scope": "files.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/create-file.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "type": "string", + "x-example": "<BUCKET_ID>", + "in": "path" + }, + { + "name": "fileId", + "description": "File 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, + "x-upload-id": true, + "type": "string", + "x-example": "<FILE_ID>", + "in": "formData" + }, + { + "name": "file", + "description": "Binary file. Appwrite SDKs provide helpers to handle file input. [Learn about file input](https:\/\/appwrite.io\/docs\/products\/storage\/upload-download#input-file).", + "required": true, + "type": "file", + "in": "formData" + }, + { + "name": "permissions", + "description": "An array of permission strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "x-example": "[\"read(\"any\")\"]", + "in": "formData" + } + ] + } + }, + "\/storage\/buckets\/{bucketId}\/files\/{fileId}": { + "get": { + "summary": "Get file", + "operationId": "storageGetFile", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "storage" + ], + "description": "Get a file by its unique ID. This endpoint response returns a JSON object with the file metadata.", + "responses": { + "200": { + "description": "File", + "schema": { + "$ref": "#\/definitions\/file" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getFile", + "group": "files", + "weight": 602, + "cookies": false, + "type": "", + "demo": "storage\/get-file.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "files.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "type": "string", + "x-example": "<BUCKET_ID>", + "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "type": "string", + "x-example": "<FILE_ID>", + "in": "path" + } + ] + }, + "put": { + "summary": "Update file", + "operationId": "storageUpdateFile", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "storage" + ], + "description": "Update a file by its unique ID. Only users with write permissions have access to update this resource.", + "responses": { + "200": { + "description": "File", + "schema": { + "$ref": "#\/definitions\/file" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateFile", + "group": "files", + "weight": 604, + "cookies": false, + "type": "", + "demo": "storage\/update-file.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "files.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/update-file.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Bucket unique ID.", + "required": true, + "type": "string", + "x-example": "<BUCKET_ID>", + "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "type": "string", + "x-example": "<FILE_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "File name.", + "default": null, + "x-example": "<NAME>" + }, + "permissions": { + "type": "array", + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "default": null, + "x-example": "[\"read(\"any\")\"]", + "x-nullable": true, + "items": { + "type": "string" + } + } + } + } + } + ] + }, + "delete": { + "summary": "Delete file", + "operationId": "storageDeleteFile", + "consumes": [ + "application\/json" + ], + "produces": [], + "tags": [ + "storage" + ], + "description": "Delete a file by its unique ID. Only users with write permissions have access to delete this resource.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteFile", + "group": "files", + "weight": 605, + "cookies": false, + "type": "", + "demo": "storage\/delete-file.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "files.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/delete-file.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "type": "string", + "x-example": "<BUCKET_ID>", + "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "type": "string", + "x-example": "<FILE_ID>", + "in": "path" + } + ] + } + }, + "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/download": { + "get": { + "summary": "Get file for download", + "operationId": "storageGetFileDownload", + "consumes": [], + "produces": [ + "*\/*" + ], + "tags": [ + "storage" + ], + "description": "Get a file 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", + "schema": { + "type": "file" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getFileDownload", + "group": "files", + "weight": 607, + "cookies": false, + "type": "location", + "demo": "storage\/get-file-download.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "files.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-download.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "type": "string", + "x-example": "<BUCKET_ID>", + "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "type": "string", + "x-example": "<FILE_ID>", + "in": "path" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "type": "string", + "x-example": "<TOKEN>", + "default": "", + "in": "query" + } + ] + } + }, + "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/preview": { + "get": { + "summary": "Get file preview", + "operationId": "storageGetFilePreview", + "consumes": [], + "produces": [ + "image\/*" + ], + "tags": [ + "storage" + ], + "description": "Get a file preview image. Currently, this method supports preview for image files (jpg, png, and gif), other supported formats, like pdf, docs, slides, and spreadsheets, will return the file icon image. You can also pass query string arguments for cutting and resizing your preview image. Preview is supported only for image files smaller than 10MB.", + "responses": { + "200": { + "description": "Image", + "schema": { + "type": "file" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getFilePreview", + "group": "files", + "weight": 606, + "cookies": false, + "type": "location", + "demo": "storage\/get-file-preview.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "files.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-preview.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "type": "string", + "x-example": "<BUCKET_ID>", + "in": "path" + }, + { + "name": "fileId", + "description": "File ID", + "required": true, + "type": "string", + "x-example": "<FILE_ID>", + "in": "path" + }, + { + "name": "width", + "description": "Resize preview image width, Pass an integer between 0 to 4000.", + "required": false, + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0, + "in": "query" + }, + { + "name": "height", + "description": "Resize preview image height, Pass an integer between 0 to 4000.", + "required": false, + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0, + "in": "query" + }, + { + "name": "gravity", + "description": "Image crop gravity. Can be one of center,top-left,top,top-right,left,right,bottom-left,bottom,bottom-right", + "required": false, + "type": "string", + "x-example": "center", + "enum": [ + "center", + "top-left", + "top", + "top-right", + "left", + "right", + "bottom-left", + "bottom", + "bottom-right" + ], + "x-enum-name": "ImageGravity", + "x-enum-keys": [], + "default": "center", + "in": "query" + }, + { + "name": "quality", + "description": "Preview image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", + "required": false, + "type": "integer", + "format": "int32", + "x-example": -1, + "default": -1, + "in": "query" + }, + { + "name": "borderWidth", + "description": "Preview image border in pixels. Pass an integer between 0 to 100. Defaults to 0.", + "required": false, + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0, + "in": "query" + }, + { + "name": "borderColor", + "description": "Preview image border color. Use a valid HEX color, no # is needed for prefix.", + "required": false, + "type": "string", + "default": "", + "in": "query" + }, + { + "name": "borderRadius", + "description": "Preview image border radius in pixels. Pass an integer between 0 to 4000.", + "required": false, + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0, + "in": "query" + }, + { + "name": "opacity", + "description": "Preview image opacity. Only works with images having an alpha channel (like png). Pass a number between 0 to 1.", + "required": false, + "type": "number", + "format": "float", + "x-example": 0, + "default": 1, + "in": "query" + }, + { + "name": "rotation", + "description": "Preview image rotation in degrees. Pass an integer between -360 and 360.", + "required": false, + "type": "integer", + "format": "int32", + "x-example": -360, + "default": 0, + "in": "query" + }, + { + "name": "background", + "description": "Preview image background color. Only works with transparent images (png). Use a valid HEX color, no # is needed for prefix.", + "required": false, + "type": "string", + "default": "", + "in": "query" + }, + { + "name": "output", + "description": "Output format type (jpeg, jpg, png, gif and webp).", + "required": false, + "type": "string", + "x-example": "jpg", + "enum": [ + "jpg", + "jpeg", + "png", + "webp", + "heic", + "avif", + "gif" + ], + "x-enum-name": "ImageFormat", + "x-enum-keys": [], + "default": "", + "in": "query" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "type": "string", + "x-example": "<TOKEN>", + "default": "", + "in": "query" + } + ] + } + }, + "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/view": { + "get": { + "summary": "Get file for view", + "operationId": "storageGetFileView", + "consumes": [], + "produces": [ + "*\/*" + ], + "tags": [ + "storage" + ], + "description": "Get a file content by its unique ID. This endpoint is similar to the download method but returns with no 'Content-Disposition: attachment' header.", + "responses": { + "200": { + "description": "File", + "schema": { + "type": "file" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getFileView", + "group": "files", + "weight": 608, + "cookies": false, + "type": "location", + "demo": "storage\/get-file-view.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "files.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-view.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "type": "string", + "x-example": "<BUCKET_ID>", + "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "type": "string", + "x-example": "<FILE_ID>", + "in": "path" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "type": "string", + "x-example": "<TOKEN>", + "default": "", + "in": "query" + } + ] + } + }, + "\/tablesdb\/transactions": { + "get": { + "summary": "List transactions", + "operationId": "tablesDBListTransactions", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "tablesDB" + ], + "description": "List transactions across all databases.", + "responses": { + "200": { + "description": "Transaction List", + "schema": { + "$ref": "#\/definitions\/transactionList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listTransactions", + "group": "transactions", + "weight": 389, + "cookies": false, + "type": "", + "demo": "tablesdb\/list-transactions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "documents.read", + "rows.read" + ], + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-transactions.md", + "auth": { + "Project": [] + } + }, + "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).", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + } + ] + }, + "post": { + "summary": "Create transaction", + "operationId": "tablesDBCreateTransaction", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "tablesDB" + ], + "description": "Create a new transaction.", + "responses": { + "201": { + "description": "Transaction", + "schema": { + "$ref": "#\/definitions\/transaction" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createTransaction", + "group": "transactions", + "weight": 385, + "cookies": false, + "type": "", + "demo": "tablesdb\/create-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "documents.write", + "rows.write" + ], + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-transaction.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "ttl": { + "type": "integer", + "description": "Seconds before the transaction expires.", + "default": 300, + "x-example": 60, + "format": "int32" + } + } + } + } + ] + } + }, + "\/tablesdb\/transactions\/{transactionId}": { + "get": { + "summary": "Get transaction", + "operationId": "tablesDBGetTransaction", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "tablesDB" + ], + "description": "Get a transaction by its unique ID.", + "responses": { + "200": { + "description": "Transaction", + "schema": { + "$ref": "#\/definitions\/transaction" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getTransaction", + "group": "transactions", + "weight": 386, + "cookies": false, + "type": "", + "demo": "tablesdb\/get-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "documents.read", + "rows.read" + ], + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-transaction.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "type": "string", + "x-example": "<TRANSACTION_ID>", + "in": "path" + } + ] + }, + "patch": { + "summary": "Update transaction", + "operationId": "tablesDBUpdateTransaction", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "tablesDB" + ], + "description": "Update a transaction, to either commit or roll back its operations.", + "responses": { + "200": { + "description": "Transaction", + "schema": { + "$ref": "#\/definitions\/transaction" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateTransaction", + "group": "transactions", + "weight": 387, + "cookies": false, + "type": "", + "demo": "tablesdb\/update-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "documents.write", + "rows.write" + ], + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-transaction.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "type": "string", + "x-example": "<TRANSACTION_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "commit": { + "type": "boolean", + "description": "Commit transaction?", + "default": false, + "x-example": false + }, + "rollback": { + "type": "boolean", + "description": "Rollback transaction?", + "default": false, + "x-example": false + } + } + } + } + ] + }, + "delete": { + "summary": "Delete transaction", + "operationId": "tablesDBDeleteTransaction", + "consumes": [ + "application\/json" + ], + "produces": [], + "tags": [ + "tablesDB" + ], + "description": "Delete a transaction by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteTransaction", + "group": "transactions", + "weight": 388, + "cookies": false, + "type": "", + "demo": "tablesdb\/delete-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "documents.write", + "rows.write" + ], + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-transaction.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "type": "string", + "x-example": "<TRANSACTION_ID>", + "in": "path" + } + ] + } + }, + "\/tablesdb\/transactions\/{transactionId}\/operations": { + "post": { + "summary": "Create operations", + "operationId": "tablesDBCreateOperations", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "tablesDB" + ], + "description": "Create multiple operations in a single transaction.", + "responses": { + "201": { + "description": "Transaction", + "schema": { + "$ref": "#\/definitions\/transaction" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createOperations", + "group": "transactions", + "weight": 390, + "cookies": false, + "type": "", + "demo": "tablesdb\/create-operations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "documents.write", + "rows.write" + ], + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-operations.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "type": "string", + "x-example": "<TRANSACTION_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "operations": { + "type": "array", + "description": "Array of staged operations.", + "default": [], + "x-example": "[\n\t {\n\t \"action\": \"create\",\n\t \"databaseId\": \"<DATABASE_ID>\",\n\t \"tableId\": \"<TABLE_ID>\",\n\t \"rowId\": \"<ROW_ID>\",\n\t \"data\": {\n\t \"name\": \"Walter O'Brien\"\n\t }\n\t }\n\t]", + "items": { + "type": "object" + } + } + } + } + } + ] + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows": { + "get": { + "summary": "List rows", + "operationId": "tablesDBListRows", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "tablesDB" + ], + "description": "Get a list of all the user's rows in a given table. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Rows List", + "schema": { + "$ref": "#\/definitions\/rowList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listRows", + "group": "rows", + "weight": 381, + "cookies": false, + "type": "", + "demo": "tablesdb\/list-rows.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "rows.read", + "documents.read" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-rows.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ { - "name": "gravity", - "description": "Image crop gravity. Can be one of center,top-left,top,top-right,left,right,bottom-left,bottom,bottom-right", + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/products\/databases\/tables#create-table).", + "required": true, + "type": "string", + "x-example": "<TABLE_ID>", + "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, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", "required": false, "type": "string", - "x-example": "center", - "enum": [ - "center", - "top-left", - "top", - "top-right", - "left", - "right", - "bottom-left", - "bottom", - "bottom-right" - ], - "x-enum-name": "ImageGravity", - "x-enum-keys": [], - "default": "center", + "x-example": "<TRANSACTION_ID>", "in": "query" }, { - "name": "quality", - "description": "Preview image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "type": "boolean", + "x-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, "type": "integer", "format": "int32", - "x-example": -1, - "default": -1, + "x-example": 0, + "default": 0, "in": "query" + } + ] + }, + "post": { + "summary": "Create row", + "operationId": "tablesDBCreateRow", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "tablesDB" + ], + "description": "Create a new Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "responses": { + "201": { + "description": "Row", + "schema": { + "$ref": "#\/definitions\/row" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createRow", + "group": "rows", + "weight": 373, + "cookies": false, + "type": "", + "demo": "tablesdb\/create-row.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": [ + "rows.write", + "documents.write" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-row.md", + "methods": [ + { + "name": "createRow", + "namespace": "tablesDB", + "desc": "Create row", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "tableId", + "rowId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "tableId", + "rowId", + "data" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/row" + } + ], + "description": "Create a new Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "demo": "tablesdb\/create-row.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable). Make sure to define columns before creating rows.", + "required": true, + "type": "string", + "x-example": "<TABLE_ID>", + "in": "path" }, { - "name": "borderWidth", - "description": "Preview image border in pixels. Pass an integer between 0 to 100. Defaults to 0.", - "required": false, - "type": "integer", - "format": "int32", - "x-example": 0, - "default": 0, - "in": "query" - }, + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "rowId": { + "type": "string", + "description": "Row ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "default": "", + "x-example": "<ROW_ID>" + }, + "data": { + "type": "object", + "description": "Row data as JSON object.", + "default": [], + "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":30,\"isAdmin\":false}" + }, + "permissions": { + "type": "array", + "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).", + "default": null, + "x-example": "[\"read(\"any\")\"]", + "x-nullable": true, + "items": { + "type": "string" + } + }, + "rows": { + "type": "array", + "description": "Array of rows data as JSON objects.", + "default": [], + "x-example": null, + "items": { + "type": "object" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "default": null, + "x-example": "<TRANSACTION_ID>", + "x-nullable": true + } + } + } + } + ] + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}": { + "get": { + "summary": "Get row", + "operationId": "tablesDBGetRow", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "tablesDB" + ], + "description": "Get a row by its unique ID. This endpoint response returns a JSON object with the row data.", + "responses": { + "200": { + "description": "Row", + "schema": { + "$ref": "#\/definitions\/row" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getRow", + "group": "rows", + "weight": 374, + "cookies": false, + "type": "", + "demo": "tablesdb\/get-row.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "rows.read", + "documents.read" + ], + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-row.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ { - "name": "borderColor", - "description": "Preview image border color. Use a valid HEX color, no # is needed for prefix.", - "required": false, + "name": "databaseId", + "description": "Database ID.", + "required": true, "type": "string", - "default": "", - "in": "query" - }, - { - "name": "borderRadius", - "description": "Preview image border radius in pixels. Pass an integer between 0 to 4000.", - "required": false, - "type": "integer", - "format": "int32", - "x-example": 0, - "default": 0, - "in": "query" - }, - { - "name": "opacity", - "description": "Preview image opacity. Only works with images having an alpha channel (like png). Pass a number between 0 to 1.", - "required": false, - "type": "number", - "format": "float", - "x-example": 0, - "default": 1, - "in": "query" + "x-example": "<DATABASE_ID>", + "in": "path" }, { - "name": "rotation", - "description": "Preview image rotation in degrees. Pass an integer between -360 and 360.", - "required": false, - "type": "integer", - "format": "int32", - "x-example": -360, - "default": 0, - "in": "query" + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "type": "string", + "x-example": "<TABLE_ID>", + "in": "path" }, { - "name": "background", - "description": "Preview image background color. Only works with transparent images (png). Use a valid HEX color, no # is needed for prefix.", - "required": false, + "name": "rowId", + "description": "Row ID.", + "required": true, "type": "string", - "default": "", - "in": "query" + "x-example": "<ROW_ID>", + "in": "path" }, { - "name": "output", - "description": "Output format type (jpeg, jpg, png, gif and webp).", + "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, - "type": "string", - "x-example": "jpg", - "enum": [ - "jpg", - "jpeg", - "png", - "webp", - "heic", - "avif", - "gif" - ], - "x-enum-name": "ImageFormat", - "x-enum-keys": [], - "default": "", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], "in": "query" }, { - "name": "token", - "description": "File token for accessing this file.", + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", "required": false, "type": "string", - "x-example": "<TOKEN>", - "default": "", + "x-example": "<TRANSACTION_ID>", "in": "query" } ] - } - }, - "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/view": { - "get": { - "summary": "Get file for view", - "operationId": "storageGetFileView", - "consumes": [], + }, + "put": { + "summary": "Upsert a row", + "operationId": "tablesDBUpsertRow", + "consumes": [ + "application\/json" + ], "produces": [ - "*\/*" + "application\/json" ], "tags": [ - "storage" + "tablesDB" ], - "description": "Get a file content by its unique ID. This endpoint is similar to the download method but returns with no 'Content-Disposition: attachment' header.", + "description": "Create or update a Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", "responses": { - "200": { - "description": "File", + "201": { + "description": "Row", "schema": { - "type": "file" + "$ref": "#\/definitions\/row" } } }, "deprecated": false, "x-appwrite": { - "method": "getFileView", - "group": "files", - "weight": 540, + "method": "upsertRow", + "group": "rows", + "weight": 377, "cookies": false, - "type": "location", - "demo": "storage\/get-file-view.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", + "type": "", + "demo": "tablesdb\/upsert-row.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": [ + "rows.write", + "documents.write" + ], "platforms": [ "console", "client", @@ -9116,7 +11535,39 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-view.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/upsert-row.md", + "methods": [ + { + "name": "upsertRow", + "namespace": "tablesDB", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "tableId", + "rowId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "tableId", + "rowId" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/row" + } + ], + "description": "Create or update a Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "demo": "tablesdb\/upsert-row.md", + "public": true + } + ], "auth": { "Project": [] } @@ -9130,76 +11581,107 @@ ], "parameters": [ { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<BUCKET_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "fileId", - "description": "File ID.", + "name": "tableId", + "description": "Table ID.", "required": true, "type": "string", - "x-example": "<FILE_ID>", + "x-example": "<TABLE_ID>", "in": "path" }, { - "name": "token", - "description": "File token for accessing this file.", - "required": false, + "name": "rowId", + "description": "Row ID.", + "required": true, "type": "string", - "x-example": "<TOKEN>", - "default": "", - "in": "query" - } - ] - } - }, - "\/tablesdb\/transactions": { - "get": { - "summary": "List transactions", - "operationId": "tablesDBListTransactions", - "consumes": [], + "x-example": "<ROW_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "data": { + "type": "object", + "description": "Row data as JSON object. Include all required columns of the row to be created or updated.", + "default": [], + "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":33,\"isAdmin\":false}" + }, + "permissions": { + "type": "array", + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "default": null, + "x-example": "[\"read(\"any\")\"]", + "x-nullable": true, + "items": { + "type": "string" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "default": null, + "x-example": "<TRANSACTION_ID>", + "x-nullable": true + } + } + } + } + ] + }, + "patch": { + "summary": "Update row", + "operationId": "tablesDBUpdateRow", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ "tablesDB" ], - "description": "List transactions across all databases.", + "description": "Update a row by its unique ID. Using the patch method you can pass only specific fields that will get updated.", "responses": { "200": { - "description": "Transaction List", + "description": "Row", "schema": { - "$ref": "#\/definitions\/transactionList" + "$ref": "#\/definitions\/row" } } }, "deprecated": false, "x-appwrite": { - "method": "listTransactions", - "group": "transactions", - "weight": 405, + "method": "updateRow", + "group": "rows", + "weight": 375, "cookies": false, "type": "", - "demo": "tablesdb\/list-transactions.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", + "demo": "tablesdb\/update-row.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", "scope": [ - "documents.read", - "rows.read" + "rows.write", + "documents.write" ], "platforms": [ "console", - "server", - "client" + "client", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-transactions.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-row.md", "auth": { "Project": [] } @@ -9213,63 +11695,102 @@ ], "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, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "type": "string", + "x-example": "<TABLE_ID>", + "in": "path" + }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "type": "string", + "x-example": "<ROW_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "data": { + "type": "object", + "description": "Row data as JSON object. Include only columns and value pairs to be updated.", + "default": [], + "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":33,\"isAdmin\":false}" + }, + "permissions": { + "type": "array", + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "default": null, + "x-example": "[\"read(\"any\")\"]", + "x-nullable": true, + "items": { + "type": "string" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "default": null, + "x-example": "<TRANSACTION_ID>", + "x-nullable": true + } + } + } } ] }, - "post": { - "summary": "Create transaction", - "operationId": "tablesDBCreateTransaction", + "delete": { + "summary": "Delete row", + "operationId": "tablesDBDeleteRow", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ "tablesDB" ], - "description": "Create a new transaction.", + "description": "Delete a row by its unique ID.", "responses": { - "201": { - "description": "Transaction", - "schema": { - "$ref": "#\/definitions\/transaction" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "createTransaction", - "group": "transactions", - "weight": 401, + "method": "deleteRow", + "group": "rows", + "weight": 379, "cookies": false, "type": "", - "demo": "tablesdb\/create-transaction.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", + "demo": "tablesdb\/delete-row.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", "scope": [ - "documents.write", - "rows.write" + "rows.write", + "documents.write" ], "platforms": [ "console", - "server", - "client" + "client", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-transaction.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-row.md", "auth": { "Project": [] } @@ -9282,18 +11803,42 @@ } ], "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "type": "string", + "x-example": "<TABLE_ID>", + "in": "path" + }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "type": "string", + "x-example": "<ROW_ID>", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "ttl": { - "type": "integer", - "description": "Seconds before the transaction expires.", - "default": 300, - "x-example": 60, - "format": "int32" + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "default": null, + "x-example": "<TRANSACTION_ID>", + "x-nullable": true } } } @@ -9301,49 +11846,51 @@ ] } }, - "\/tablesdb\/transactions\/{transactionId}": { - "get": { - "summary": "Get transaction", - "operationId": "tablesDBGetTransaction", - "consumes": [], + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}\/{column}\/decrement": { + "patch": { + "summary": "Decrement row column", + "operationId": "tablesDBDecrementRowColumn", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ "tablesDB" ], - "description": "Get a transaction by its unique ID.", + "description": "Decrement a specific column of a row by a given value.", "responses": { "200": { - "description": "Transaction", + "description": "Row", "schema": { - "$ref": "#\/definitions\/transaction" + "$ref": "#\/definitions\/row" } } }, "deprecated": false, "x-appwrite": { - "method": "getTransaction", - "group": "transactions", - "weight": 402, + "method": "decrementRowColumn", + "group": "rows", + "weight": 384, "cookies": false, "type": "", - "demo": "tablesdb\/get-transaction.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", + "demo": "tablesdb\/decrement-row-column.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", "scope": [ - "documents.read", - "rows.read" + "rows.write", + "documents.write" ], "platforms": [ - "console", + "client", "server", - "client" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-transaction.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/decrement-row-column.md", "auth": { "Project": [] } @@ -9357,18 +11904,74 @@ ], "parameters": [ { - "name": "transactionId", - "description": "Transaction ID.", + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "type": "string", + "x-example": "<TABLE_ID>", + "in": "path" + }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "type": "string", + "x-example": "<ROW_ID>", + "in": "path" + }, + { + "name": "column", + "description": "Column key.", "required": true, "type": "string", - "x-example": "<TRANSACTION_ID>", "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "value": { + "type": "number", + "description": "Value to increment the column by. The value must be a number.", + "default": 1, + "x-example": null, + "format": "float" + }, + "min": { + "type": "number", + "description": "Minimum value for the column. If the current value is lesser than this value, an exception will be thrown.", + "default": null, + "x-example": null, + "format": "float", + "x-nullable": true + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "default": null, + "x-example": "<TRANSACTION_ID>", + "x-nullable": true + } + } + } } ] - }, + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}\/{column}\/increment": { "patch": { - "summary": "Update transaction", - "operationId": "tablesDBUpdateTransaction", + "summary": "Increment row column", + "operationId": "tablesDBIncrementRowColumn", "consumes": [ "application\/json" ], @@ -9378,38 +11981,38 @@ "tags": [ "tablesDB" ], - "description": "Update a transaction, to either commit or roll back its operations.", + "description": "Increment a specific column of a row by a given value.", "responses": { "200": { - "description": "Transaction", + "description": "Row", "schema": { - "$ref": "#\/definitions\/transaction" + "$ref": "#\/definitions\/row" } } }, "deprecated": false, "x-appwrite": { - "method": "updateTransaction", - "group": "transactions", - "weight": 403, + "method": "incrementRowColumn", + "group": "rows", + "weight": 383, "cookies": false, "type": "", - "demo": "tablesdb\/update-transaction.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", + "demo": "tablesdb\/increment-row-column.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", "scope": [ - "documents.write", - "rows.write" + "rows.write", + "documents.write" ], "platforms": [ - "console", + "client", "server", - "client" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-transaction.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/increment-row-column.md", "auth": { "Project": [] } @@ -9423,11 +12026,34 @@ ], "parameters": [ { - "name": "transactionId", - "description": "Transaction ID.", + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "type": "string", + "x-example": "<TABLE_ID>", + "in": "path" + }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "type": "string", + "x-example": "<ROW_ID>", + "in": "path" + }, + { + "name": "column", + "description": "Column key.", "required": true, "type": "string", - "x-example": "<TRANSACTION_ID>", "in": "path" }, { @@ -9436,62 +12062,74 @@ "schema": { "type": "object", "properties": { - "commit": { - "type": "boolean", - "description": "Commit transaction?", - "default": false, - "x-example": false + "value": { + "type": "number", + "description": "Value to increment the column by. The value must be a number.", + "default": 1, + "x-example": null, + "format": "float" }, - "rollback": { - "type": "boolean", - "description": "Rollback transaction?", - "default": false, - "x-example": false + "max": { + "type": "number", + "description": "Maximum value for the column. If the current value is greater than this value, an error will be thrown.", + "default": null, + "x-example": null, + "format": "float", + "x-nullable": true + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "default": null, + "x-example": "<TRANSACTION_ID>", + "x-nullable": true } } } } ] - }, - "delete": { - "summary": "Delete transaction", - "operationId": "tablesDBDeleteTransaction", - "consumes": [ + } + }, + "\/teams": { + "get": { + "summary": "List teams", + "operationId": "teamsList", + "consumes": [], + "produces": [ "application\/json" ], - "produces": [], "tags": [ - "tablesDB" + "teams" ], - "description": "Delete a transaction by its unique ID.", + "description": "Get a list of all the teams in which the current user is a member. You can use the parameters to filter your results.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Teams List", + "schema": { + "$ref": "#\/definitions\/teamList" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteTransaction", - "group": "transactions", - "weight": 404, + "method": "list", + "group": "teams", + "weight": 579, "cookies": false, "type": "", - "demo": "tablesdb\/delete-transaction.md", + "demo": "teams\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "documents.write", - "rows.write" - ], + "scope": "teams.read", "platforms": [ "console", - "server", - "client" + "client", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-transaction.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/list-teams.md", "auth": { "Project": [] } @@ -9505,20 +12143,40 @@ ], "parameters": [ { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, + "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, total, billingPlan", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, "type": "string", - "x-example": "<TRANSACTION_ID>", - "in": "path" + "x-example": "<SEARCH>", + "default": "", + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" } ] - } - }, - "\/tablesdb\/transactions\/{transactionId}\/operations": { + }, "post": { - "summary": "Create operations", - "operationId": "tablesDBCreateOperations", + "summary": "Create team", + "operationId": "teamsCreate", "consumes": [ "application\/json" ], @@ -9526,40 +12184,37 @@ "application\/json" ], "tags": [ - "tablesDB" + "teams" ], - "description": "Create multiple operations in a single transaction.", + "description": "Create a new team. The user who creates the team will automatically be assigned as the owner of the team. Only the users with the owner role can invite new members, add new owners and delete or update the team.", "responses": { "201": { - "description": "Transaction", + "description": "Team", "schema": { - "$ref": "#\/definitions\/transaction" + "$ref": "#\/definitions\/team" } } }, "deprecated": false, "x-appwrite": { - "method": "createOperations", - "group": "transactions", - "weight": 406, + "method": "create", + "group": "teams", + "weight": 577, "cookies": false, "type": "", - "demo": "tablesdb\/create-operations.md", + "demo": "teams\/create.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "documents.write", - "rows.write" - ], + "scope": "teams.write", "platforms": [ "console", - "server", - "client" + "client", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-operations.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team.md", "auth": { "Project": [] } @@ -9572,70 +12227,77 @@ } ], "parameters": [ - { - "name": "transactionId", - "description": "Transaction ID.", - "required": true, - "type": "string", - "x-example": "<TRANSACTION_ID>", - "in": "path" - }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "operations": { + "teamId": { + "type": "string", + "description": "Team ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "default": null, + "x-example": "<TEAM_ID>" + }, + "name": { + "type": "string", + "description": "Team name. Max length: 128 chars.", + "default": null, + "x-example": "<NAME>" + }, + "roles": { "type": "array", - "description": "Array of staged operations.", - "default": [], - "x-example": "[\n\t {\n\t \"action\": \"create\",\n\t \"databaseId\": \"<DATABASE_ID>\",\n\t \"tableId\": \"<TABLE_ID>\",\n\t \"rowId\": \"<ROW_ID>\",\n\t \"data\": {\n\t \"name\": \"Walter O'Brien\"\n\t }\n\t }\n\t]", + "description": "Array of strings. Use this param to set the roles in the team for the user who created it. The default role is **owner**. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 32 characters long.", + "default": [ + "owner" + ], + "x-example": null, "items": { - "type": "object" + "type": "string" } } - } + }, + "required": [ + "teamId", + "name" + ] } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows": { + "\/teams\/{teamId}": { "get": { - "summary": "List rows", - "operationId": "tablesDBListRows", + "summary": "Get team", + "operationId": "teamsGet", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "tablesDB" + "teams" ], - "description": "Get a list of all the user's rows in a given table. You can use the query params to filter your results.", + "description": "Get a team by its ID. All team members have read access for this resource.", "responses": { "200": { - "description": "Rows List", + "description": "Team", "schema": { - "$ref": "#\/definitions\/rowList" + "$ref": "#\/definitions\/team" } } }, "deprecated": false, "x-appwrite": { - "method": "listRows", - "group": "rows", - "weight": 397, + "method": "get", + "group": "teams", + "weight": 578, "cookies": false, "type": "", - "demo": "tablesdb\/list-rows.md", + "demo": "teams\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "rows.read", - "documents.read" - ], + "scope": "teams.read", "platforms": [ "console", "client", @@ -9643,7 +12305,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-rows.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team.md", "auth": { "Project": [] } @@ -9657,55 +12319,18 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/products\/databases\/tables#create-table).", + "name": "teamId", + "description": "Team ID.", "required": true, "type": "string", - "x-example": "<TABLE_ID>", + "x-example": "<TEAM_ID>", "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, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" - }, - { - "name": "transactionId", - "description": "Transaction ID to read uncommitted changes within the transaction.", - "required": false, - "type": "string", - "x-example": "<TRANSACTION_ID>", - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" } ] }, - "post": { - "summary": "Create row", - "operationId": "tablesDBCreateRow", + "put": { + "summary": "Update name", + "operationId": "teamsUpdateName", "consumes": [ "application\/json" ], @@ -9713,32 +12338,29 @@ "application\/json" ], "tags": [ - "tablesDB" + "teams" ], - "description": "Create a new Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "description": "Update the team's name by its unique ID.", "responses": { - "201": { - "description": "Row", + "200": { + "description": "Team", "schema": { - "$ref": "#\/definitions\/row" + "$ref": "#\/definitions\/team" } } }, "deprecated": false, "x-appwrite": { - "method": "createRow", - "group": "rows", - "weight": 389, + "method": "updateName", + "group": "teams", + "weight": 581, "cookies": false, "type": "", - "demo": "tablesdb\/create-row.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": [ - "rows.write", - "documents.write" - ], + "demo": "teams\/update-name.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", "platforms": [ "console", "client", @@ -9746,40 +12368,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-row.md", - "methods": [ - { - "name": "createRow", - "namespace": "tablesDB", - "desc": "Create row", - "auth": { - "Project": [] - }, - "parameters": [ - "databaseId", - "tableId", - "rowId", - "data", - "permissions", - "transactionId" - ], - "required": [ - "databaseId", - "tableId", - "rowId", - "data" - ], - "responses": [ - { - "code": 201, - "model": "#\/definitions\/row" - } - ], - "description": "Create a new Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", - "demo": "tablesdb\/create-row.md", - "public": true - } - ], + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-name.md", "auth": { "Project": [] } @@ -9793,19 +12382,11 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable). Make sure to define columns before creating rows.", + "name": "teamId", + "description": "Team ID.", "required": true, "type": "string", - "x-example": "<TABLE_ID>", + "x-example": "<TEAM_ID>", "in": "path" }, { @@ -9814,85 +12395,111 @@ "schema": { "type": "object", "properties": { - "rowId": { - "type": "string", - "description": "Row ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": "", - "x-example": "<ROW_ID>" - }, - "data": { - "type": "object", - "description": "Row data as JSON object.", - "default": [], - "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":30,\"isAdmin\":false}" - }, - "permissions": { - "type": "array", - "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).", - "default": null, - "x-example": "[\"read(\"any\")\"]", - "x-nullable": true, - "items": { - "type": "string" - } - }, - "rows": { - "type": "array", - "description": "Array of rows data as JSON objects.", - "default": [], - "x-example": null, - "items": { - "type": "object" - } - }, - "transactionId": { + "name": { "type": "string", - "description": "Transaction ID for staging the operation.", + "description": "New team name. Max length: 128 chars.", "default": null, - "x-example": "<TRANSACTION_ID>", - "x-nullable": true + "x-example": "<NAME>" } - } + }, + "required": [ + "name" + ] } } ] + }, + "delete": { + "summary": "Delete team", + "operationId": "teamsDelete", + "consumes": [ + "application\/json" + ], + "produces": [], + "tags": [ + "teams" + ], + "description": "Delete a team using its ID. Only team members with the owner role can delete the team.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "delete", + "group": "teams", + "weight": 580, + "cookies": false, + "type": "", + "demo": "teams\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "type": "string", + "x-example": "<TEAM_ID>", + "in": "path" + } + ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}": { + "\/teams\/{teamId}\/memberships": { "get": { - "summary": "Get row", - "operationId": "tablesDBGetRow", + "summary": "List team memberships", + "operationId": "teamsListMemberships", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "tablesDB" + "teams" ], - "description": "Get a row by its unique ID. This endpoint response returns a JSON object with the row data.", + "description": "Use this endpoint to list a team's members using the team's ID. All team members have read access to this endpoint. Hide sensitive attributes from the response by toggling membership privacy in the Console.", "responses": { "200": { - "description": "Row", + "description": "Memberships List", "schema": { - "$ref": "#\/definitions\/row" + "$ref": "#\/definitions\/membershipList" } } }, "deprecated": false, "x-appwrite": { - "method": "getRow", - "group": "rows", - "weight": 390, + "method": "listMemberships", + "group": "memberships", + "weight": 586, "cookies": false, "type": "", - "demo": "tablesdb\/get-row.md", + "demo": "teams\/list-memberships.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "rows.read", - "documents.read" - ], + "scope": "teams.read", "platforms": [ "console", "client", @@ -9900,7 +12507,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-row.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/list-team-members.md", "auth": { "Project": [] } @@ -9914,32 +12521,16 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", - "required": true, - "type": "string", - "x-example": "<TABLE_ID>", - "in": "path" - }, - { - "name": "rowId", - "description": "Row ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "type": "string", - "x-example": "<ROW_ID>", + "x-example": "<TEAM_ID>", "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.", + "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, teamId, invited, joined, confirm, roles", "required": false, "type": "array", "collectionFormat": "multi", @@ -9950,18 +12541,28 @@ "in": "query" }, { - "name": "transactionId", - "description": "Transaction ID to read uncommitted changes within the transaction.", + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", "required": false, "type": "string", - "x-example": "<TRANSACTION_ID>", + "x-example": "<SEARCH>", + "default": "", + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "type": "boolean", + "x-example": false, + "default": true, "in": "query" } ] }, - "put": { - "summary": "Upsert a row", - "operationId": "tablesDBUpsertRow", + "post": { + "summary": "Create team membership", + "operationId": "teamsCreateMembership", "consumes": [ "application\/json" ], @@ -9969,32 +12570,29 @@ "application\/json" ], "tags": [ - "tablesDB" + "teams" ], - "description": "Create or update a Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "description": "Invite a new member to join your team. Provide an ID for existing users, or invite unregistered users using an email or phone number. If initiated from a Client SDK, Appwrite will send an email or sms with a link to join the team to the invited user, and an account will be created for them if one doesn't exist. If initiated from a Server SDK, the new member will be added automatically to the team.\n\nYou only need to provide one of a user ID, email, or phone number. Appwrite will prioritize accepting the user ID > email > phone number if you provide more than one of these parameters.\n\nUse the `url` parameter to redirect the user from the invitation email to your app. After the user is redirected, use the [Update Team Membership Status](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/teams#updateMembershipStatus) endpoint to allow the user to accept the invitation to the team. \n\nPlease note that to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) Appwrite will accept the only redirect URLs under the domains you have added as a platform on the Appwrite Console.\n", "responses": { "201": { - "description": "Row", + "description": "Membership", "schema": { - "$ref": "#\/definitions\/row" + "$ref": "#\/definitions\/membership" } } }, "deprecated": false, "x-appwrite": { - "method": "upsertRow", - "group": "rows", - "weight": 393, + "method": "createMembership", + "group": "memberships", + "weight": 584, "cookies": false, "type": "", - "demo": "tablesdb\/upsert-row.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": [ - "rows.write", - "documents.write" - ], + "demo": "teams\/create-membership.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", "platforms": [ "console", "client", @@ -10002,39 +12600,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/upsert-row.md", - "methods": [ - { - "name": "upsertRow", - "namespace": "tablesDB", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "databaseId", - "tableId", - "rowId", - "data", - "permissions", - "transactionId" - ], - "required": [ - "databaseId", - "tableId", - "rowId" - ], - "responses": [ - { - "code": 201, - "model": "#\/definitions\/row" - } - ], - "description": "Create or update a Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", - "demo": "tablesdb\/upsert-row.md", - "public": true - } - ], + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team-membership.md", "auth": { "Project": [] } @@ -10048,27 +12614,11 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "type": "string", - "x-example": "<TABLE_ID>", - "in": "path" - }, - { - "name": "rowId", - "description": "Row ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "type": "string", - "x-example": "<ROW_ID>", + "x-example": "<TEAM_ID>", "in": "path" }, { @@ -10077,37 +12627,130 @@ "schema": { "type": "object", "properties": { - "data": { - "type": "object", - "description": "Row data as JSON object. Include all required columns of the row to be created or updated.", - "default": [], - "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":33,\"isAdmin\":false}" + "email": { + "type": "string", + "description": "Email of the new team member.", + "default": "", + "x-example": "email@example.com", + "format": "email" }, - "permissions": { + "userId": { + "type": "string", + "description": "ID of the user to be added to a team.", + "default": "", + "x-example": "<USER_ID>" + }, + "phone": { + "type": "string", + "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "default": "", + "x-example": "+12065550100", + "format": "phone" + }, + "roles": { "type": "array", - "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "description": "Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 81 characters long.", "default": null, - "x-example": "[\"read(\"any\")\"]", - "x-nullable": true, + "x-example": null, "items": { "type": "string" } }, - "transactionId": { + "url": { "type": "string", - "description": "Transaction ID for staging the operation.", - "default": null, - "x-example": "<TRANSACTION_ID>", - "x-nullable": true + "description": "URL to redirect the user back to your app from the invitation email. This parameter is not required when an API key is supplied. 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.", + "default": "", + "x-example": "https:\/\/example.com", + "format": "url" + }, + "name": { + "type": "string", + "description": "Name of the new team member. Max length: 128 chars.", + "default": "", + "x-example": "<NAME>" } - } + }, + "required": [ + "roles" + ] + } + } + ] + } + }, + "\/teams\/{teamId}\/memberships\/{membershipId}": { + "get": { + "summary": "Get team membership", + "operationId": "teamsGetMembership", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "teams" + ], + "description": "Get a team member by the membership unique id. All team members have read access for this resource. Hide sensitive attributes from the response by toggling membership privacy in the Console.", + "responses": { + "200": { + "description": "Membership", + "schema": { + "$ref": "#\/definitions\/membership" } } + }, + "deprecated": false, + "x-appwrite": { + "method": "getMembership", + "group": "memberships", + "weight": 585, + "cookies": false, + "type": "", + "demo": "teams\/get-membership.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-member.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "type": "string", + "x-example": "<TEAM_ID>", + "in": "path" + }, + { + "name": "membershipId", + "description": "Membership ID.", + "required": true, + "type": "string", + "x-example": "<MEMBERSHIP_ID>", + "in": "path" + } ] }, "patch": { - "summary": "Update row", - "operationId": "tablesDBUpdateRow", + "summary": "Update team membership", + "operationId": "teamsUpdateMembership", "consumes": [ "application\/json" ], @@ -10115,32 +12758,29 @@ "application\/json" ], "tags": [ - "tablesDB" + "teams" ], - "description": "Update a row by its unique ID. Using the patch method you can pass only specific fields that will get updated.", + "description": "Modify the roles of a team member. Only team members with the owner role have access to this endpoint. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions).\n", "responses": { "200": { - "description": "Row", + "description": "Membership", "schema": { - "$ref": "#\/definitions\/row" + "$ref": "#\/definitions\/membership" } } }, "deprecated": false, "x-appwrite": { - "method": "updateRow", - "group": "rows", - "weight": 391, + "method": "updateMembership", + "group": "memberships", + "weight": 587, "cookies": false, "type": "", - "demo": "tablesdb\/update-row.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": [ - "rows.write", - "documents.write" - ], + "demo": "teams\/update-membership.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", "platforms": [ "console", "client", @@ -10148,7 +12788,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-row.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership.md", "auth": { "Project": [] } @@ -10162,27 +12802,19 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "type": "string", - "x-example": "<TABLE_ID>", + "x-example": "<TEAM_ID>", "in": "path" }, { - "name": "rowId", - "description": "Row ID.", + "name": "membershipId", + "description": "Membership ID.", "required": true, "type": "string", - "x-example": "<ROW_ID>", + "x-example": "<MEMBERSHIP_ID>", "in": "path" }, { @@ -10191,45 +12823,34 @@ "schema": { "type": "object", "properties": { - "data": { - "type": "object", - "description": "Row data as JSON object. Include only columns and value pairs to be updated.", - "default": [], - "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":33,\"isAdmin\":false}" - }, - "permissions": { + "roles": { "type": "array", - "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "description": "An array of strings. Use this param to set the user's roles in the team. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 81 characters long.", "default": null, - "x-example": "[\"read(\"any\")\"]", - "x-nullable": true, + "x-example": null, "items": { "type": "string" } - }, - "transactionId": { - "type": "string", - "description": "Transaction ID for staging the operation.", - "default": null, - "x-example": "<TRANSACTION_ID>", - "x-nullable": true } - } + }, + "required": [ + "roles" + ] } } ] }, "delete": { - "summary": "Delete row", - "operationId": "tablesDBDeleteRow", + "summary": "Delete team membership", + "operationId": "teamsDeleteMembership", "consumes": [ "application\/json" ], "produces": [], "tags": [ - "tablesDB" + "teams" ], - "description": "Delete a row by its unique ID.", + "description": "This endpoint allows a user to leave a team or for a team owner to delete the membership of any other team member. You can also use this endpoint to delete a user membership even if it is not accepted.", "responses": { "204": { "description": "No content" @@ -10237,19 +12858,16 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteRow", - "group": "rows", - "weight": 395, + "method": "deleteMembership", + "group": "memberships", + "weight": 803, "cookies": false, "type": "", - "demo": "tablesdb\/delete-row.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": [ - "rows.write", - "documents.write" - ], + "demo": "teams\/delete-membership.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", "platforms": [ "console", "client", @@ -10257,7 +12875,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-row.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team-membership.md", "auth": { "Project": [] } @@ -10271,52 +12889,28 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "name": "teamId", + "description": "Team ID.", "required": true, "type": "string", - "x-example": "<TABLE_ID>", + "x-example": "<TEAM_ID>", "in": "path" }, { - "name": "rowId", - "description": "Row ID.", + "name": "membershipId", + "description": "Membership ID.", "required": true, "type": "string", - "x-example": "<ROW_ID>", + "x-example": "<MEMBERSHIP_ID>", "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "transactionId": { - "type": "string", - "description": "Transaction ID for staging the operation.", - "default": null, - "x-example": "<TRANSACTION_ID>", - "x-nullable": true - } - } - } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}\/{column}\/decrement": { + "\/teams\/{teamId}\/memberships\/{membershipId}\/status": { "patch": { - "summary": "Decrement row column", - "operationId": "tablesDBDecrementRowColumn", + "summary": "Update team membership status", + "operationId": "teamsUpdateMembershipStatus", "consumes": [ "application\/json" ], @@ -10324,40 +12918,37 @@ "application\/json" ], "tags": [ - "tablesDB" + "teams" ], - "description": "Decrement a specific column of a row by a given value.", + "description": "Use this endpoint to allow a user to accept an invitation to join a team after being redirected back to your app from the invitation email received by the user.\n\nIf the request is successful, a session for the user is automatically created.\n", "responses": { "200": { - "description": "Row", + "description": "Membership", "schema": { - "$ref": "#\/definitions\/row" + "$ref": "#\/definitions\/membership" } } }, "deprecated": false, "x-appwrite": { - "method": "decrementRowColumn", - "group": "rows", - "weight": 400, + "method": "updateMembershipStatus", + "group": "memberships", + "weight": 589, "cookies": false, "type": "", - "demo": "tablesdb\/decrement-row-column.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": [ - "rows.write", - "documents.write" - ], + "demo": "teams\/update-membership-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", "platforms": [ + "console", "client", - "server", - "console" + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/decrement-row-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership-status.md", "auth": { "Project": [] } @@ -10371,34 +12962,19 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "type": "string", - "x-example": "<TABLE_ID>", - "in": "path" - }, - { - "name": "rowId", - "description": "Row ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "type": "string", - "x-example": "<ROW_ID>", + "x-example": "<TEAM_ID>", "in": "path" }, { - "name": "column", - "description": "Column key.", + "name": "membershipId", + "description": "Membership ID.", "required": true, "type": "string", + "x-example": "<MEMBERSHIP_ID>", "in": "path" }, { @@ -10407,79 +12983,68 @@ "schema": { "type": "object", "properties": { - "value": { - "type": "number", - "description": "Value to increment the column by. The value must be a number.", - "default": 1, - "x-example": null, - "format": "float" - }, - "min": { - "type": "number", - "description": "Minimum value for the column. If the current value is lesser than this value, an exception will be thrown.", + "userId": { + "type": "string", + "description": "User ID.", "default": null, - "x-example": null, - "format": "float", - "x-nullable": true + "x-example": "<USER_ID>" }, - "transactionId": { + "secret": { "type": "string", - "description": "Transaction ID for staging the operation.", + "description": "Secret key.", "default": null, - "x-example": "<TRANSACTION_ID>", - "x-nullable": true + "x-example": "<SECRET>" } - } + }, + "required": [ + "userId", + "secret" + ] } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}\/{column}\/increment": { - "patch": { - "summary": "Increment row column", - "operationId": "tablesDBIncrementRowColumn", - "consumes": [ - "application\/json" - ], + "\/teams\/{teamId}\/prefs": { + "get": { + "summary": "Get team preferences", + "operationId": "teamsGetPrefs", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "tablesDB" + "teams" ], - "description": "Increment a specific column of a row by a given value.", + "description": "Get the team's shared preferences by its unique ID. If a preference doesn't need to be shared by all team members, prefer storing them in [user preferences](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#getPrefs).", "responses": { "200": { - "description": "Row", + "description": "Preferences", "schema": { - "$ref": "#\/definitions\/row" + "$ref": "#\/definitions\/preferences" } } }, "deprecated": false, "x-appwrite": { - "method": "incrementRowColumn", - "group": "rows", - "weight": 399, + "method": "getPrefs", + "group": "teams", + "weight": 582, "cookies": false, "type": "", - "demo": "tablesdb\/increment-row-column.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": [ - "rows.write", - "documents.write" - ], + "demo": "teams\/get-prefs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", "platforms": [ + "console", "client", - "server", - "console" + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/increment-row-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-prefs.md", "auth": { "Project": [] } @@ -10493,34 +13058,74 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "type": "string", - "x-example": "<TABLE_ID>", + "x-example": "<TEAM_ID>", "in": "path" - }, + } + ] + }, + "put": { + "summary": "Update team preferences", + "operationId": "teamsUpdatePrefs", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "teams" + ], + "description": "Update the team's preferences by its unique ID. The object you pass is stored as is and replaces any previous value. The maximum allowed prefs size is 64kB and throws an error if exceeded.", + "responses": { + "200": { + "description": "Preferences", + "schema": { + "$ref": "#\/definitions\/preferences" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updatePrefs", + "group": "teams", + "weight": 583, + "cookies": false, + "type": "", + "demo": "teams\/update-prefs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-prefs.md", + "auth": { + "Project": [] + } + }, + "security": [ { - "name": "rowId", - "description": "Row ID.", - "required": true, - "type": "string", - "x-example": "<ROW_ID>", - "in": "path" - }, + "Project": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ { - "name": "column", - "description": "Column key.", + "name": "teamId", + "description": "Team ID.", "required": true, "type": "string", + "x-example": "<TEAM_ID>", "in": "path" }, { @@ -10529,74 +13134,60 @@ "schema": { "type": "object", "properties": { - "value": { - "type": "number", - "description": "Value to increment the column by. The value must be a number.", - "default": 1, - "x-example": null, - "format": "float" - }, - "max": { - "type": "number", - "description": "Maximum value for the column. If the current value is greater than this value, an error will be thrown.", - "default": null, - "x-example": null, - "format": "float", - "x-nullable": true - }, - "transactionId": { - "type": "string", - "description": "Transaction ID for staging the operation.", - "default": null, - "x-example": "<TRANSACTION_ID>", - "x-nullable": true + "prefs": { + "type": "object", + "description": "Prefs key-value JSON object.", + "default": {}, + "x-example": "{}" } - } + }, + "required": [ + "prefs" + ] } } ] } }, - "\/teams": { + "\/vectordb\/transactions": { "get": { - "summary": "List teams", - "operationId": "teamsList", + "summary": "List transactions", + "operationId": "vectorDBListTransactions", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "teams" + "vectorDB" ], - "description": "Get a list of all the teams in which the current user is a member. You can use the parameters to filter your results.", + "description": false, "responses": { "200": { - "description": "Teams List", + "description": "Transaction List", "schema": { - "$ref": "#\/definitions\/teamList" + "$ref": "#\/definitions\/transactionList" } } }, "deprecated": false, "x-appwrite": { - "method": "list", - "group": "teams", - "weight": 107, + "method": "listTransactions", + "group": "transactions", + "weight": 459, "cookies": false, "type": "", - "demo": "teams\/list.md", + "demo": "vectordb\/list-transactions.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "documents.read", "platforms": [ "console", - "client", - "server" + "server", + "client" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/list-teams.md", "auth": { "Project": [] } @@ -10611,7 +13202,7 @@ "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, total, billingPlan", + "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, "type": "array", "collectionFormat": "multi", @@ -10620,30 +13211,12 @@ }, "default": [], "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "type": "string", - "x-example": "<SEARCH>", - "default": "", - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" } ] }, "post": { - "summary": "Create team", - "operationId": "teamsCreate", + "summary": "Create transaction", + "operationId": "vectorDBCreateTransaction", "consumes": [ "application\/json" ], @@ -10651,37 +13224,36 @@ "application\/json" ], "tags": [ - "teams" + "vectorDB" ], - "description": "Create a new team. The user who creates the team will automatically be assigned as the owner of the team. Only the users with the owner role can invite new members, add new owners and delete or update the team.", + "description": false, "responses": { "201": { - "description": "Team", + "description": "Transaction", "schema": { - "$ref": "#\/definitions\/team" + "$ref": "#\/definitions\/transaction" } } }, "deprecated": false, "x-appwrite": { - "method": "create", - "group": "teams", - "weight": 106, + "method": "createTransaction", + "group": "transactions", + "weight": 455, "cookies": false, "type": "", - "demo": "teams\/create.md", + "demo": "vectordb\/create-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": "documents.write", "platforms": [ "console", - "client", - "server" + "server", + "client" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team.md", "auth": { "Project": [] } @@ -10700,79 +13272,58 @@ "schema": { "type": "object", "properties": { - "teamId": { - "type": "string", - "description": "Team ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": null, - "x-example": "<TEAM_ID>" - }, - "name": { - "type": "string", - "description": "Team name. Max length: 128 chars.", - "default": null, - "x-example": "<NAME>" - }, - "roles": { - "type": "array", - "description": "Array of strings. Use this param to set the roles in the team for the user who created it. The default role is **owner**. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 32 characters long.", - "default": [ - "owner" - ], - "x-example": null, - "items": { - "type": "string" - } + "ttl": { + "type": "integer", + "description": "Seconds before the transaction expires.", + "default": 300, + "x-example": 60, + "format": "int32" } - }, - "required": [ - "teamId", - "name" - ] + } } } ] } }, - "\/teams\/{teamId}": { + "\/vectordb\/transactions\/{transactionId}": { "get": { - "summary": "Get team", - "operationId": "teamsGet", + "summary": "Get transaction", + "operationId": "vectorDBGetTransaction", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "teams" + "vectorDB" ], - "description": "Get a team by its ID. All team members have read access for this resource.", + "description": false, "responses": { "200": { - "description": "Team", + "description": "Transaction", "schema": { - "$ref": "#\/definitions\/team" + "$ref": "#\/definitions\/transaction" } } }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": "teams", - "weight": 108, + "method": "getTransaction", + "group": "transactions", + "weight": 456, "cookies": false, "type": "", - "demo": "teams\/get.md", + "demo": "vectordb\/get-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "documents.read", "platforms": [ "console", - "client", - "server" + "server", + "client" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team.md", "auth": { "Project": [] } @@ -10786,18 +13337,18 @@ ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "type": "string", - "x-example": "<TEAM_ID>", + "x-example": "<TRANSACTION_ID>", "in": "path" } ] }, - "put": { - "summary": "Update name", - "operationId": "teamsUpdateName", + "patch": { + "summary": "Update transaction", + "operationId": "vectorDBUpdateTransaction", "consumes": [ "application\/json" ], @@ -10805,37 +13356,36 @@ "application\/json" ], "tags": [ - "teams" + "vectorDB" ], - "description": "Update the team's name by its unique ID.", + "description": false, "responses": { "200": { - "description": "Team", + "description": "Transaction", "schema": { - "$ref": "#\/definitions\/team" + "$ref": "#\/definitions\/transaction" } } }, "deprecated": false, "x-appwrite": { - "method": "updateName", - "group": "teams", - "weight": 110, + "method": "updateTransaction", + "group": "transactions", + "weight": 457, "cookies": false, "type": "", - "demo": "teams\/update-name.md", + "demo": "vectordb\/update-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": "documents.write", "platforms": [ "console", - "client", - "server" + "server", + "client" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-name.md", "auth": { "Project": [] } @@ -10849,11 +13399,11 @@ ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "type": "string", - "x-example": "<TEAM_ID>", + "x-example": "<TRANSACTION_ID>", "in": "path" }, { @@ -10862,31 +13412,34 @@ "schema": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "New team name. Max length: 128 chars.", - "default": null, - "x-example": "<NAME>" + "commit": { + "type": "boolean", + "description": "Commit transaction?", + "default": false, + "x-example": false + }, + "rollback": { + "type": "boolean", + "description": "Rollback transaction?", + "default": false, + "x-example": false } - }, - "required": [ - "name" - ] + } } } ] }, "delete": { - "summary": "Delete team", - "operationId": "teamsDelete", + "summary": "Delete transaction", + "operationId": "vectorDBDeleteTransaction", "consumes": [ "application\/json" ], "produces": [], "tags": [ - "teams" + "vectorDB" ], - "description": "Delete a team using its ID. Only team members with the owner role can delete the team.", + "description": false, "responses": { "204": { "description": "No content" @@ -10894,24 +13447,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": "teams", - "weight": 112, + "method": "deleteTransaction", + "group": "transactions", + "weight": 458, "cookies": false, "type": "", - "demo": "teams\/delete.md", + "demo": "vectordb\/delete-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": "documents.write", "platforms": [ "console", - "client", - "server" + "server", + "client" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team.md", "auth": { "Project": [] } @@ -10925,111 +13477,20 @@ ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "type": "string", - "x-example": "<TEAM_ID>", + "x-example": "<TRANSACTION_ID>", "in": "path" } ] } }, - "\/teams\/{teamId}\/memberships": { - "get": { - "summary": "List team memberships", - "operationId": "teamsListMemberships", - "consumes": [], - "produces": [ - "application\/json" - ], - "tags": [ - "teams" - ], - "description": "Use this endpoint to list a team's members using the team's ID. All team members have read access to this endpoint. Hide sensitive attributes from the response by toggling membership privacy in the Console.", - "responses": { - "200": { - "description": "Memberships List", - "schema": { - "$ref": "#\/definitions\/membershipList" - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "listMemberships", - "group": "memberships", - "weight": 114, - "cookies": false, - "type": "", - "demo": "teams\/list-memberships.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/list-team-members.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "type": "string", - "x-example": "<TEAM_ID>", - "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: userId, teamId, invited, joined, confirm, roles", - "required": false, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "type": "string", - "x-example": "<SEARCH>", - "default": "", - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" - } - ] - }, + "\/vectordb\/transactions\/{transactionId}\/operations": { "post": { - "summary": "Create team membership", - "operationId": "teamsCreateMembership", + "summary": "Create operations", + "operationId": "vectorDBCreateOperations", "consumes": [ "application\/json" ], @@ -11037,37 +13498,36 @@ "application\/json" ], "tags": [ - "teams" + "vectorDB" ], - "description": "Invite a new member to join your team. Provide an ID for existing users, or invite unregistered users using an email or phone number. If initiated from a Client SDK, Appwrite will send an email or sms with a link to join the team to the invited user, and an account will be created for them if one doesn't exist. If initiated from a Server SDK, the new member will be added automatically to the team.\n\nYou only need to provide one of a user ID, email, or phone number. Appwrite will prioritize accepting the user ID > email > phone number if you provide more than one of these parameters.\n\nUse the `url` parameter to redirect the user from the invitation email to your app. After the user is redirected, use the [Update Team Membership Status](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/teams#updateMembershipStatus) endpoint to allow the user to accept the invitation to the team. \n\nPlease note that to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) Appwrite will accept the only redirect URLs under the domains you have added as a platform on the Appwrite Console.\n", + "description": false, "responses": { "201": { - "description": "Membership", + "description": "Transaction", "schema": { - "$ref": "#\/definitions\/membership" + "$ref": "#\/definitions\/transaction" } } }, "deprecated": false, "x-appwrite": { - "method": "createMembership", - "group": "memberships", - "weight": 113, + "method": "createOperations", + "group": "transactions", + "weight": 460, "cookies": false, "type": "", - "demo": "teams\/create-membership.md", - "rate-limit": 10, + "demo": "vectordb\/create-operations.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": "documents.write", "platforms": [ "console", - "client", - "server" + "server", + "client" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team-membership.md", "auth": { "Project": [] } @@ -11081,11 +13541,11 @@ ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "type": "string", - "x-example": "<TEAM_ID>", + "x-example": "<TRANSACTION_ID>", "in": "path" }, { @@ -11094,89 +13554,53 @@ "schema": { "type": "object", "properties": { - "email": { - "type": "string", - "description": "Email of the new team member.", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, - "userId": { - "type": "string", - "description": "ID of the user to be added to a team.", - "default": "", - "x-example": "<USER_ID>" - }, - "phone": { - "type": "string", - "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "default": "", - "x-example": "+12065550100", - "format": "phone" - }, - "roles": { + "operations": { "type": "array", - "description": "Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 32 characters long.", - "default": null, - "x-example": null, - "items": { - "type": "string" - } - }, - "url": { - "type": "string", - "description": "URL to redirect the user back to your app from the invitation email. This parameter is not required when an API key is supplied. 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.", - "default": "", - "x-example": "https:\/\/example.com", - "format": "url" - }, - "name": { - "type": "string", - "description": "Name of the new team member. Max length: 128 chars.", - "default": "", - "x-example": "<NAME>" + "description": "Array of staged operations.", + "default": [], + "x-example": "[\n\t {\n\t \"action\": \"create\",\n\t \"databaseId\": \"<DATABASE_ID>\",\n\t \"collectionId\": \"<COLLECTION_ID>\",\n\t \"documentId\": \"<DOCUMENT_ID>\",\n\t \"data\": {\n\t \"name\": \"Walter O'Brien\"\n\t }\n\t }\n\t]", + "items": { + "type": "object" + } } - }, - "required": [ - "roles" - ] + } } } ] } }, - "\/teams\/{teamId}\/memberships\/{membershipId}": { + "\/vectordb\/{databaseId}\/collections\/{collectionId}\/documents": { "get": { - "summary": "Get team membership", - "operationId": "teamsGetMembership", + "summary": "List documents", + "operationId": "vectorDBListDocuments", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "teams" + "vectorDB" ], - "description": "Get a team member by the membership unique id. All team members have read access for this resource. Hide sensitive attributes from the response by toggling membership privacy in the Console.", + "description": false, "responses": { "200": { - "description": "Membership", + "description": "Documents List", "schema": { - "$ref": "#\/definitions\/membership" + "$ref": "#\/definitions\/documentList" } } }, "deprecated": false, "x-appwrite": { - "method": "getMembership", - "group": "memberships", - "weight": 115, + "method": "listDocuments", + "group": "documents", + "weight": 449, "cookies": false, "type": "", - "demo": "teams\/get-membership.md", + "demo": "vectordb\/list-documents.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "documents.read", "platforms": [ "console", "client", @@ -11184,7 +13608,6 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-member.md", "auth": { "Project": [] } @@ -11198,26 +13621,65 @@ ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<TEAM_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "membershipId", - "description": "Membership ID.", + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", "required": true, "type": "string", - "x-example": "<MEMBERSHIP_ID>", + "x-example": "<COLLECTION_ID>", "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, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", + "required": false, + "type": "string", + "x-example": "<TRANSACTION_ID>", + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "type": "boolean", + "x-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, + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0, + "in": "query" } ] }, - "patch": { - "summary": "Update membership", - "operationId": "teamsUpdateMembership", + "post": { + "summary": "Create document", + "operationId": "vectorDBCreateDocument", "consumes": [ "application\/json" ], @@ -11225,29 +13687,29 @@ "application\/json" ], "tags": [ - "teams" + "vectorDB" ], - "description": "Modify the roles of a team member. Only team members with the owner role have access to this endpoint. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions).\n", + "description": false, "responses": { - "200": { - "description": "Membership", + "201": { + "description": "Document", "schema": { - "$ref": "#\/definitions\/membership" + "$ref": "#\/definitions\/document" } } }, "deprecated": false, "x-appwrite": { - "method": "updateMembership", - "group": "memberships", - "weight": 116, + "method": "createDocument", + "group": "documents", + "weight": 445, "cookies": false, "type": "", - "demo": "teams\/update-membership.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "demo": "vectordb\/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", @@ -11255,7 +13717,38 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership.md", + "methods": [ + { + "name": "createDocument", + "namespace": "vectorDB", + "desc": "Create document", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions" + ], + "required": [ + "databaseId", + "collectionId", + "documentId", + "data" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/document" + } + ], + "description": "", + "demo": "vectordb\/create-document.md", + "public": true + } + ], "auth": { "Project": [] } @@ -11269,19 +13762,19 @@ ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<TEAM_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "membershipId", - "description": "Membership ID.", + "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, "type": "string", - "x-example": "<MEMBERSHIP_ID>", + "x-example": "<COLLECTION_ID>", "in": "path" }, { @@ -11290,53 +13783,80 @@ "schema": { "type": "object", "properties": { - "roles": { + "documentId": { + "type": "string", + "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "default": "", + "x-example": "<DOCUMENT_ID>" + }, + "data": { + "type": "object", + "description": "Document data as JSON object.", + "default": [], + "x-example": "{\"embeddings\": [0.12, -0.55, 0.88, 1.02], \"metadata\": {\"key\":\"value\"} }" + }, + "permissions": { "type": "array", - "description": "An array of strings. Use this param to set the user's roles in the team. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 32 characters long.", + "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).", "default": null, - "x-example": null, + "x-example": "[\"read(\"any\")\"]", "items": { "type": "string" } + }, + "documents": { + "type": "array", + "description": "Array of documents data as JSON objects.", + "default": [], + "x-example": null, + "items": { + "type": "object" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "default": null, + "x-example": "<TRANSACTION_ID>" } - }, - "required": [ - "roles" - ] + } } } ] - }, - "delete": { - "summary": "Delete team membership", - "operationId": "teamsDeleteMembership", - "consumes": [ - "application\/json" - ], + } + }, + "\/vectordb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { + "get": { + "summary": "Get document", + "operationId": "vectorDBGetDocument", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "teams" + "vectorDB" ], - "description": "This endpoint allows a user to leave a team or for a team owner to delete the membership of any other team member. You can also use this endpoint to delete a user membership even if it is not accepted.", + "description": false, "responses": { - "204": { - "description": "No content" + "200": { + "description": "Document", + "schema": { + "$ref": "#\/definitions\/document" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteMembership", - "group": null, - "weight": 555, + "method": "getDocument", + "group": "documents", + "weight": 448, "cookies": false, "type": "", - "demo": "teams\/delete-membership.md", + "demo": "vectordb\/get-document.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": "documents.read", "platforms": [ "console", "client", @@ -11344,7 +13864,6 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team-membership.md", "auth": { "Project": [] } @@ -11358,28 +13877,54 @@ ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<TEAM_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "membershipId", - "description": "Membership ID.", + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", "required": true, "type": "string", - "x-example": "<MEMBERSHIP_ID>", + "x-example": "<COLLECTION_ID>", "in": "path" - } - ] - } - }, - "\/teams\/{teamId}\/memberships\/{membershipId}\/status": { - "patch": { - "summary": "Update team membership status", - "operationId": "teamsUpdateMembershipStatus", + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "type": "string", + "x-example": "<DOCUMENT_ID>", + "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, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", + "required": false, + "type": "string", + "x-example": "<TRANSACTION_ID>", + "in": "query" + } + ] + }, + "put": { + "summary": "Upsert a document", + "operationId": "vectorDBUpsertDocument", "consumes": [ "application\/json" ], @@ -11387,29 +13932,29 @@ "application\/json" ], "tags": [ - "teams" + "vectorDB" ], - "description": "Use this endpoint to allow a user to accept an invitation to join a team after being redirected back to your app from the invitation email received by the user.\n\nIf the request is successful, a session for the user is automatically created.\n", + "description": false, "responses": { - "200": { - "description": "Membership", + "201": { + "description": "Document", "schema": { - "$ref": "#\/definitions\/membership" + "$ref": "#\/definitions\/document" } } }, "deprecated": false, "x-appwrite": { - "method": "updateMembershipStatus", - "group": "memberships", - "weight": 117, + "method": "upsertDocument", + "group": "documents", + "weight": 447, "cookies": false, "type": "", - "demo": "teams\/update-membership-status.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "demo": "vectordb\/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", @@ -11417,7 +13962,38 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership-status.md", + "methods": [ + { + "name": "upsertDocument", + "namespace": "vectorDB", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documentId" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/document" + } + ], + "description": "", + "demo": "vectordb\/upsert-document.md", + "public": true + } + ], "auth": { "Project": [] } @@ -11431,19 +14007,27 @@ ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<TEAM_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "membershipId", - "description": "Membership ID.", + "name": "collectionId", + "description": "Collection ID.", "required": true, "type": "string", - "x-example": "<MEMBERSHIP_ID>", + "x-example": "<COLLECTION_ID>", + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "type": "string", + "x-example": "<DOCUMENT_ID>", "in": "path" }, { @@ -11452,60 +14036,65 @@ "schema": { "type": "object", "properties": { - "userId": { - "type": "string", - "description": "User ID.", + "data": { + "type": "object", + "description": "Document data as JSON object. Include all required fields of the document to be created or updated.", + "default": [], + "x-example": "{}" + }, + "permissions": { + "type": "array", + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", "default": null, - "x-example": "<USER_ID>" + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } }, - "secret": { + "transactionId": { "type": "string", - "description": "Secret key.", + "description": "Transaction ID for staging the operation.", "default": null, - "x-example": "<SECRET>" + "x-example": "<TRANSACTION_ID>" } - }, - "required": [ - "userId", - "secret" - ] + } } } ] - } - }, - "\/teams\/{teamId}\/prefs": { - "get": { - "summary": "Get team preferences", - "operationId": "teamsGetPrefs", - "consumes": [], + }, + "patch": { + "summary": "Update document", + "operationId": "vectorDBUpdateDocument", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "teams" + "vectorDB" ], - "description": "Get the team's shared preferences by its unique ID. If a preference doesn't need to be shared by all team members, prefer storing them in [user preferences](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#getPrefs).", + "description": false, "responses": { "200": { - "description": "Preferences", + "description": "Document", "schema": { - "$ref": "#\/definitions\/preferences" + "$ref": "#\/definitions\/document" } } }, "deprecated": false, "x-appwrite": { - "method": "getPrefs", - "group": "teams", - "weight": 109, + "method": "updateDocument", + "group": "documents", + "weight": 446, "cookies": false, "type": "", - "demo": "teams\/get-prefs.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "demo": "vectordb\/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", @@ -11513,7 +14102,6 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-prefs.md", "auth": { "Project": [] } @@ -11527,48 +14115,89 @@ ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<TEAM_ID>", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "type": "string", + "x-example": "<DOCUMENT_ID>", "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "data": { + "type": "object", + "description": "Document data as JSON object. Include only fields and value pairs to be updated.", + "default": [], + "x-example": "{}" + }, + "permissions": { + "type": "array", + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "default": null, + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "default": null, + "x-example": "<TRANSACTION_ID>" + } + } + } } ] }, - "put": { - "summary": "Update preferences", - "operationId": "teamsUpdatePrefs", + "delete": { + "summary": "Delete document", + "operationId": "vectorDBDeleteDocument", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ - "teams" + "vectorDB" ], - "description": "Update the team's preferences by its unique ID. The object you pass is stored as is and replaces any previous value. The maximum allowed prefs size is 64kB and throws an error if exceeded.", + "description": false, "responses": { - "200": { - "description": "Preferences", - "schema": { - "$ref": "#\/definitions\/preferences" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updatePrefs", - "group": "teams", - "weight": 111, + "method": "deleteDocument", + "group": "documents", + "weight": 450, "cookies": false, "type": "", - "demo": "teams\/update-prefs.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "demo": "vectordb\/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", @@ -11576,7 +14205,6 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-prefs.md", "auth": { "Project": [] } @@ -11590,11 +14218,27 @@ ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<TEAM_ID>", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "type": "string", + "x-example": "<DOCUMENT_ID>", "in": "path" }, { @@ -11603,16 +14247,13 @@ "schema": { "type": "object", "properties": { - "prefs": { - "type": "object", - "description": "Prefs key-value JSON object.", - "default": {}, - "x-example": "{}" + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "default": null, + "x-example": "<TRANSACTION_ID>" } - }, - "required": [ - "prefs" - ] + } } } ] @@ -12175,8 +14816,8 @@ }, "$sequence": { "type": "integer", - "description": "Row automatically incrementing ID.", - "x-example": 1, + "description": "Row sequence ID.", + "x-example": "1", "format": "int32", "readOnly": true }, @@ -12225,7 +14866,7 @@ ], "example": { "$id": "5e5ea5c16897e", - "$sequence": 1, + "$sequence": "1", "$tableId": "5e5ea5c15117e", "$databaseId": "5e5ea5c15117e", "$createdAt": "2020-10-15T06:38:00.000+00:00", @@ -12246,8 +14887,8 @@ }, "$sequence": { "type": "integer", - "description": "Document automatically incrementing ID.", - "x-example": 1, + "description": "Document sequence ID.", + "x-example": "1", "format": "int32", "readOnly": true }, @@ -12296,7 +14937,7 @@ ], "example": { "$id": "5e5ea5c16897e", - "$sequence": 1, + "$sequence": "1", "$collectionId": "5e5ea5c15117e", "$databaseId": "5e5ea5c15117e", "$createdAt": "2020-10-15T06:38:00.000+00:00", diff --git a/specs/latest/swagger2-latest-console.json b/specs/latest/swagger2-latest-console.json index 5c050bab..3719e437 100644 --- a/specs/latest/swagger2-latest-console.json +++ b/specs/latest/swagger2-latest-console.json @@ -301,7 +301,7 @@ "x-appwrite": { "method": "listBillingAddresses", "group": null, - "weight": 769, + "weight": 788, "cookies": false, "type": "", "demo": "account\/list-billing-addresses.md", @@ -364,7 +364,7 @@ "x-appwrite": { "method": "createBillingAddress", "group": null, - "weight": 767, + "weight": 786, "cookies": false, "type": "", "demo": "account\/create-billing-address.md", @@ -465,7 +465,7 @@ "x-appwrite": { "method": "getBillingAddress", "group": null, - "weight": 768, + "weight": 787, "cookies": false, "type": "", "demo": "account\/get-billing-address.md", @@ -524,7 +524,7 @@ "x-appwrite": { "method": "updateBillingAddress", "group": null, - "weight": 770, + "weight": 789, "cookies": false, "type": "", "demo": "account\/update-billing-address.md", @@ -630,7 +630,7 @@ "x-appwrite": { "method": "deleteBillingAddress", "group": null, - "weight": 771, + "weight": 790, "cookies": false, "type": "", "demo": "account\/delete-billing-address.md", @@ -689,7 +689,7 @@ "x-appwrite": { "method": "getCoupon", "group": null, - "weight": 773, + "weight": 792, "cookies": false, "type": "", "demo": "account\/get-coupon.md", @@ -965,7 +965,7 @@ "x-appwrite": { "method": "listInvoices", "group": null, - "weight": 772, + "weight": 791, "cookies": false, "type": "", "demo": "account\/list-invoices.md", @@ -1087,7 +1087,7 @@ "tags": [ "account" ], - "description": "Get a list of all API keys from the current account. ", + "description": "Get a list of all API keys from the current account.", "responses": { "200": { "description": "API Keys List", @@ -1100,7 +1100,7 @@ "x-appwrite": { "method": "listKeys", "group": "keys", - "weight": 755, + "weight": 774, "cookies": false, "type": "", "demo": "account\/list-keys.md", @@ -1113,29 +1113,6 @@ ], "packaging": false, "public": true, - "methods": [ - { - "name": "listKeys", - "namespace": "account", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "total" - ], - "required": [], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/keyList" - } - ], - "description": "", - "demo": "account\/list-keys.md", - "public": true - } - ], "auth": { "Project": [] } @@ -1182,7 +1159,7 @@ "x-appwrite": { "method": "createKey", "group": "keys", - "weight": 756, + "weight": 775, "cookies": false, "type": "", "demo": "account\/create-key.md", @@ -1195,34 +1172,6 @@ ], "packaging": false, "public": true, - "methods": [ - { - "name": "createKey", - "namespace": "account", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "name", - "scopes", - "expire" - ], - "required": [ - "name", - "scopes" - ], - "responses": [ - { - "code": 201, - "model": "#\/definitions\/key" - } - ], - "description": "", - "demo": "account\/create-key.md", - "public": true - } - ], "auth": { "Project": [] } @@ -1302,7 +1251,7 @@ "x-appwrite": { "method": "getKey", "group": "keys", - "weight": 759, + "weight": 778, "cookies": false, "type": "", "demo": "account\/get-key.md", @@ -1315,31 +1264,6 @@ ], "packaging": false, "public": true, - "methods": [ - { - "name": "getKey", - "namespace": "account", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "keyId" - ], - "required": [ - "keyId" - ], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/key" - } - ], - "description": "", - "demo": "account\/get-key.md", - "public": true - } - ], "auth": { "Project": [] } @@ -1385,7 +1309,7 @@ "x-appwrite": { "method": "updateKey", "group": "keys", - "weight": 758, + "weight": 777, "cookies": false, "type": "", "demo": "account\/update-key.md", @@ -1398,36 +1322,6 @@ ], "packaging": false, "public": true, - "methods": [ - { - "name": "updateKey", - "namespace": "account", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "keyId", - "name", - "scopes", - "expire" - ], - "required": [ - "keyId", - "name", - "scopes" - ], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/key" - } - ], - "description": "", - "demo": "account\/update-key.md", - "public": true - } - ], "auth": { "Project": [] } @@ -1512,7 +1406,7 @@ "x-appwrite": { "method": "deleteKey", "group": "keys", - "weight": 757, + "weight": 776, "cookies": false, "type": "", "demo": "account\/delete-key.md", @@ -1525,30 +1419,6 @@ ], "packaging": false, "public": true, - "methods": [ - { - "name": "deleteKey", - "namespace": "account", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "keyId" - ], - "required": [ - "keyId" - ], - "responses": [ - { - "code": 204 - } - ], - "description": "", - "demo": "account\/delete-key.md", - "public": true - } - ], "auth": { "Project": [] } @@ -1671,7 +1541,7 @@ "x-appwrite": { "method": "updateMFA", "group": "mfa", - "weight": 239, + "weight": 223, "cookies": false, "type": "", "demo": "account\/update-mfa.md", @@ -1745,7 +1615,7 @@ "x-appwrite": { "method": "createMfaAuthenticator", "group": "mfa", - "weight": 241, + "weight": 225, "cookies": false, "type": "", "demo": "account\/create-mfa-authenticator.md", @@ -1868,7 +1738,7 @@ "x-appwrite": { "method": "updateMfaAuthenticator", "group": "mfa", - "weight": 242, + "weight": 226, "cookies": false, "type": "", "demo": "account\/update-mfa-authenticator.md", @@ -2008,7 +1878,7 @@ "x-appwrite": { "method": "deleteMfaAuthenticator", "group": "mfa", - "weight": 243, + "weight": 227, "cookies": false, "type": "", "demo": "account\/delete-mfa-authenticator.md", @@ -2131,7 +2001,7 @@ "x-appwrite": { "method": "createMfaChallenge", "group": "mfa", - "weight": 247, + "weight": 231, "cookies": false, "type": "", "demo": "account\/create-mfa-challenge.md", @@ -2267,7 +2137,7 @@ "x-appwrite": { "method": "updateMfaChallenge", "group": "mfa", - "weight": 248, + "weight": 232, "cookies": false, "type": "", "demo": "account\/update-mfa-challenge.md", @@ -2406,7 +2276,7 @@ "x-appwrite": { "method": "listMfaFactors", "group": "mfa", - "weight": 240, + "weight": 224, "cookies": false, "type": "", "demo": "account\/list-mfa-factors.md", @@ -2506,7 +2376,7 @@ "x-appwrite": { "method": "getMfaRecoveryCodes", "group": "mfa", - "weight": 246, + "weight": 230, "cookies": false, "type": "", "demo": "account\/get-mfa-recovery-codes.md", @@ -2606,7 +2476,7 @@ "x-appwrite": { "method": "createMfaRecoveryCodes", "group": "mfa", - "weight": 244, + "weight": 228, "cookies": false, "type": "", "demo": "account\/create-mfa-recovery-codes.md", @@ -2706,7 +2576,7 @@ "x-appwrite": { "method": "updateMfaRecoveryCodes", "group": "mfa", - "weight": 245, + "weight": 229, "cookies": false, "type": "", "demo": "account\/update-mfa-recovery-codes.md", @@ -2961,7 +2831,7 @@ "x-appwrite": { "method": "listPaymentMethods", "group": null, - "weight": 762, + "weight": 781, "cookies": false, "type": "", "demo": "account\/list-payment-methods.md", @@ -3024,7 +2894,7 @@ "x-appwrite": { "method": "createPaymentMethod", "group": null, - "weight": 760, + "weight": 779, "cookies": false, "type": "", "demo": "account\/create-payment-method.md", @@ -3073,7 +2943,7 @@ "x-appwrite": { "method": "getPaymentMethod", "group": null, - "weight": 761, + "weight": 780, "cookies": false, "type": "", "demo": "account\/get-payment-method.md", @@ -3132,7 +3002,7 @@ "x-appwrite": { "method": "updatePaymentMethod", "group": null, - "weight": 763, + "weight": 782, "cookies": false, "type": "", "demo": "account\/update-payment-method.md", @@ -3221,7 +3091,7 @@ "x-appwrite": { "method": "deletePaymentMethod", "group": null, - "weight": 766, + "weight": 785, "cookies": false, "type": "", "demo": "account\/delete-payment-method.md", @@ -3282,7 +3152,7 @@ "x-appwrite": { "method": "updatePaymentMethodProvider", "group": null, - "weight": 764, + "weight": 783, "cookies": false, "type": "", "demo": "account\/update-payment-method-provider.md", @@ -3375,7 +3245,7 @@ "x-appwrite": { "method": "updatePaymentMethodMandateOptions", "group": null, - "weight": 765, + "weight": 784, "cookies": false, "type": "", "demo": "account\/update-payment-method-mandate-options.md", @@ -5695,7 +5565,7 @@ "x-appwrite": { "method": "listEvents", "group": null, - "weight": 779, + "weight": 800, "cookies": false, "type": "", "demo": "activities\/list-events.md", @@ -5756,7 +5626,7 @@ "x-appwrite": { "method": "getEvent", "group": "events", - "weight": 780, + "weight": 801, "cookies": false, "type": "", "demo": "activities\/get-event.md", @@ -5817,7 +5687,7 @@ "x-appwrite": { "method": "getBrowser", "group": null, - "weight": 250, + "weight": 234, "cookies": false, "type": "location", "demo": "avatars\/get-browser.md", @@ -5943,7 +5813,7 @@ "x-appwrite": { "method": "getCreditCard", "group": null, - "weight": 249, + "weight": 233, "cookies": false, "type": "location", "demo": "avatars\/get-credit-card.md", @@ -6075,7 +5945,7 @@ "x-appwrite": { "method": "getFavicon", "group": null, - "weight": 253, + "weight": 237, "cookies": false, "type": "location", "demo": "avatars\/get-favicon.md", @@ -6139,7 +6009,7 @@ "x-appwrite": { "method": "getFlag", "group": null, - "weight": 251, + "weight": 235, "cookies": false, "type": "location", "demo": "avatars\/get-flag.md", @@ -6627,7 +6497,7 @@ "x-appwrite": { "method": "getImage", "group": null, - "weight": 252, + "weight": 236, "cookies": false, "type": "location", "demo": "avatars\/get-image.md", @@ -6711,7 +6581,7 @@ "x-appwrite": { "method": "getInitials", "group": null, - "weight": 255, + "weight": 239, "cookies": false, "type": "location", "demo": "avatars\/get-initials.md", @@ -6803,7 +6673,7 @@ "x-appwrite": { "method": "getQR", "group": null, - "weight": 254, + "weight": 238, "cookies": false, "type": "location", "demo": "avatars\/get-qr.md", @@ -6895,7 +6765,7 @@ "x-appwrite": { "method": "getScreenshot", "group": null, - "weight": 256, + "weight": 240, "cookies": false, "type": "location", "demo": "avatars\/get-screenshot.md", @@ -7608,7 +7478,7 @@ "x-appwrite": { "method": "listArchives", "group": null, - "weight": 749, + "weight": 768, "cookies": false, "type": "", "demo": "backups\/list-archives.md", @@ -7673,7 +7543,7 @@ "x-appwrite": { "method": "createArchive", "group": null, - "weight": 750, + "weight": 769, "cookies": false, "type": "", "demo": "backups\/create-archive.md", @@ -7714,6 +7584,9 @@ "type": "string", "enum": [ "databases", + "tablesdb", + "documentsdb", + "vectordb", "functions", "storage" ], @@ -7761,7 +7634,7 @@ "x-appwrite": { "method": "getArchive", "group": null, - "weight": 748, + "weight": 767, "cookies": false, "type": "", "demo": "backups\/get-archive.md", @@ -7819,7 +7692,7 @@ "x-appwrite": { "method": "deleteArchive", "group": null, - "weight": 751, + "weight": 770, "cookies": false, "type": "", "demo": "backups\/delete-archive.md", @@ -7880,7 +7753,7 @@ "x-appwrite": { "method": "listPolicies", "group": null, - "weight": 744, + "weight": 763, "cookies": false, "type": "", "demo": "backups\/list-policies.md", @@ -7945,7 +7818,7 @@ "x-appwrite": { "method": "createPolicy", "group": null, - "weight": 745, + "weight": 764, "cookies": false, "type": "", "demo": "backups\/create-policy.md", @@ -7998,6 +7871,9 @@ "type": "string", "enum": [ "databases", + "tablesdb", + "documentsdb", + "vectordb", "functions", "storage" ], @@ -8067,7 +7943,7 @@ "x-appwrite": { "method": "getPolicy", "group": null, - "weight": 743, + "weight": 762, "cookies": false, "type": "", "demo": "backups\/get-policy.md", @@ -8128,7 +8004,7 @@ "x-appwrite": { "method": "updatePolicy", "group": null, - "weight": 746, + "weight": 765, "cookies": false, "type": "", "demo": "backups\/update-policy.md", @@ -8223,7 +8099,7 @@ "x-appwrite": { "method": "deletePolicy", "group": null, - "weight": 747, + "weight": 766, "cookies": false, "type": "", "demo": "backups\/delete-policy.md", @@ -8286,7 +8162,7 @@ "x-appwrite": { "method": "createRestoration", "group": null, - "weight": 754, + "weight": 773, "cookies": false, "type": "", "demo": "backups\/create-restoration.md", @@ -8333,6 +8209,9 @@ "type": "string", "enum": [ "databases", + "tablesdb", + "documentsdb", + "vectordb", "functions", "storage" ], @@ -8386,7 +8265,7 @@ "x-appwrite": { "method": "listRestorations", "group": null, - "weight": 753, + "weight": 772, "cookies": false, "type": "", "demo": "backups\/list-restorations.md", @@ -8451,7 +8330,7 @@ "x-appwrite": { "method": "getRestoration", "group": null, - "weight": 752, + "weight": 771, "cookies": false, "type": "", "demo": "backups\/get-restoration.md", @@ -8514,7 +8393,7 @@ "x-appwrite": { "method": "chat", "group": "console", - "weight": 505, + "weight": 559, "cookies": false, "type": "", "demo": "assistant\/chat.md", @@ -8583,7 +8462,7 @@ "x-appwrite": { "method": "getCampaign", "group": null, - "weight": 623, + "weight": 638, "cookies": false, "type": "", "demo": "console\/get-campaign.md", @@ -8642,7 +8521,7 @@ "x-appwrite": { "method": "getCoupon", "group": null, - "weight": 620, + "weight": 635, "cookies": false, "type": "", "demo": "console\/get-coupon.md", @@ -8701,7 +8580,7 @@ "x-appwrite": { "method": "getPlans", "group": null, - "weight": 618, + "weight": 633, "cookies": false, "type": "", "demo": "console\/get-plans.md", @@ -8767,7 +8646,7 @@ "x-appwrite": { "method": "getPlan", "group": null, - "weight": 619, + "weight": 634, "cookies": false, "type": "", "demo": "console\/get-plan.md", @@ -8826,7 +8705,7 @@ "x-appwrite": { "method": "getProgram", "group": null, - "weight": 621, + "weight": 636, "cookies": false, "type": "", "demo": "console\/get-program.md", @@ -8887,7 +8766,7 @@ "x-appwrite": { "method": "createProgramMembership", "group": null, - "weight": 622, + "weight": 637, "cookies": false, "type": "", "demo": "console\/create-program-membership.md", @@ -8946,7 +8825,7 @@ "x-appwrite": { "method": "listRegions", "group": null, - "weight": 617, + "weight": 632, "cookies": false, "type": "", "demo": "console\/list-regions.md", @@ -8990,7 +8869,7 @@ "x-appwrite": { "method": "getResource", "group": null, - "weight": 506, + "weight": 560, "cookies": false, "type": "", "demo": "console\/get-resource.md", @@ -9063,7 +8942,7 @@ "x-appwrite": { "method": "createSource", "group": null, - "weight": 624, + "weight": 639, "cookies": false, "type": "", "demo": "console\/create-source.md", @@ -9159,7 +9038,7 @@ "x-appwrite": { "method": "suggestColumns", "group": null, - "weight": 625, + "weight": 640, "cookies": false, "type": "", "demo": "console\/suggest-columns.md", @@ -9254,7 +9133,7 @@ "x-appwrite": { "method": "suggestIndexes", "group": null, - "weight": 626, + "weight": 641, "cookies": false, "type": "", "demo": "console\/suggest-indexes.md", @@ -9341,7 +9220,7 @@ "x-appwrite": { "method": "variables", "group": "console", - "weight": 504, + "weight": 558, "cookies": false, "type": "", "demo": "console\/variables.md", @@ -9390,7 +9269,7 @@ "x-appwrite": { "method": "list", "group": "databases", - "weight": 264, + "weight": 248, "cookies": false, "type": "", "demo": "databases\/list.md", @@ -9506,7 +9385,7 @@ "x-appwrite": { "method": "create", "group": "databases", - "weight": 260, + "weight": 244, "cookies": false, "type": "", "demo": "databases\/create.md", @@ -9626,7 +9505,7 @@ "x-appwrite": { "method": "listTransactions", "group": "transactions", - "weight": 332, + "weight": 316, "cookies": false, "type": "", "demo": "databases\/list-transactions.md", @@ -9693,7 +9572,7 @@ "x-appwrite": { "method": "createTransaction", "group": "transactions", - "weight": 328, + "weight": 312, "cookies": false, "type": "", "demo": "databases\/create-transaction.md", @@ -9764,7 +9643,7 @@ "x-appwrite": { "method": "getTransaction", "group": "transactions", - "weight": 329, + "weight": 313, "cookies": false, "type": "", "demo": "databases\/get-transaction.md", @@ -9827,7 +9706,7 @@ "x-appwrite": { "method": "updateTransaction", "group": "transactions", - "weight": 330, + "weight": 314, "cookies": false, "type": "", "demo": "databases\/update-transaction.md", @@ -9906,7 +9785,7 @@ "x-appwrite": { "method": "deleteTransaction", "group": "transactions", - "weight": 331, + "weight": 315, "cookies": false, "type": "", "demo": "databases\/delete-transaction.md", @@ -9971,7 +9850,7 @@ "x-appwrite": { "method": "createOperations", "group": "transactions", - "weight": 333, + "weight": 317, "cookies": false, "type": "", "demo": "databases\/create-operations.md", @@ -10052,7 +9931,7 @@ "x-appwrite": { "method": "listUsage", "group": null, - "weight": 267, + "weight": 251, "cookies": false, "type": "", "demo": "databases\/list-usage.md", @@ -10154,7 +10033,7 @@ "x-appwrite": { "method": "get", "group": "databases", - "weight": 261, + "weight": 245, "cookies": false, "type": "", "demo": "databases\/get.md", @@ -10248,7 +10127,7 @@ "x-appwrite": { "method": "update", "group": "databases", - "weight": 262, + "weight": 246, "cookies": false, "type": "", "demo": "databases\/update.md", @@ -10360,7 +10239,7 @@ "x-appwrite": { "method": "delete", "group": "databases", - "weight": 263, + "weight": 247, "cookies": false, "type": "", "demo": "databases\/delete.md", @@ -10453,7 +10332,7 @@ "x-appwrite": { "method": "listCollections", "group": "collections", - "weight": 272, + "weight": 256, "cookies": false, "type": "", "demo": "databases\/list-collections.md", @@ -10548,7 +10427,7 @@ "x-appwrite": { "method": "createCollection", "group": "collections", - "weight": 268, + "weight": 252, "cookies": false, "type": "", "demo": "databases\/create-collection.md", @@ -10678,7 +10557,7 @@ "x-appwrite": { "method": "getCollection", "group": "collections", - "weight": 269, + "weight": 253, "cookies": false, "type": "", "demo": "databases\/get-collection.md", @@ -10751,7 +10630,7 @@ "x-appwrite": { "method": "updateCollection", "group": "collections", - "weight": 270, + "weight": 254, "cookies": false, "type": "", "demo": "databases\/update-collection.md", @@ -10856,7 +10735,7 @@ "x-appwrite": { "method": "deleteCollection", "group": "collections", - "weight": 271, + "weight": 255, "cookies": false, "type": "", "demo": "databases\/delete-collection.md", @@ -10929,7 +10808,7 @@ "x-appwrite": { "method": "listAttributes", "group": "attributes", - "weight": 289, + "weight": 273, "cookies": false, "type": "", "demo": "databases\/list-attributes.md", @@ -11025,7 +10904,7 @@ "x-appwrite": { "method": "createBooleanAttribute", "group": "attributes", - "weight": 290, + "weight": 274, "cookies": false, "type": "", "demo": "databases\/create-boolean-attribute.md", @@ -11065,7 +10944,7 @@ }, { "name": "collectionId", - "description": "Collection ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", "required": true, "type": "string", "x-example": "<COLLECTION_ID>", @@ -11138,7 +11017,7 @@ "x-appwrite": { "method": "updateBooleanAttribute", "group": "attributes", - "weight": 291, + "weight": 275, "cookies": false, "type": "", "demo": "databases\/update-boolean-attribute.md", @@ -11253,7 +11132,7 @@ "x-appwrite": { "method": "createDatetimeAttribute", "group": "attributes", - "weight": 292, + "weight": 276, "cookies": false, "type": "", "demo": "databases\/create-datetime-attribute.md", @@ -11366,7 +11245,7 @@ "x-appwrite": { "method": "updateDatetimeAttribute", "group": "attributes", - "weight": 293, + "weight": 277, "cookies": false, "type": "", "demo": "databases\/update-datetime-attribute.md", @@ -11481,7 +11360,7 @@ "x-appwrite": { "method": "createEmailAttribute", "group": "attributes", - "weight": 294, + "weight": 278, "cookies": false, "type": "", "demo": "databases\/create-email-attribute.md", @@ -11595,7 +11474,7 @@ "x-appwrite": { "method": "updateEmailAttribute", "group": "attributes", - "weight": 295, + "weight": 279, "cookies": false, "type": "", "demo": "databases\/update-email-attribute.md", @@ -11711,7 +11590,7 @@ "x-appwrite": { "method": "createEnumAttribute", "group": "attributes", - "weight": 296, + "weight": 280, "cookies": false, "type": "", "demo": "databases\/create-enum-attribute.md", @@ -11834,7 +11713,7 @@ "x-appwrite": { "method": "updateEnumAttribute", "group": "attributes", - "weight": 297, + "weight": 281, "cookies": false, "type": "", "demo": "databases\/update-enum-attribute.md", @@ -11959,7 +11838,7 @@ "x-appwrite": { "method": "createFloatAttribute", "group": "attributes", - "weight": 298, + "weight": 282, "cookies": false, "type": "", "demo": "databases\/create-float-attribute.md", @@ -12089,7 +11968,7 @@ "x-appwrite": { "method": "updateFloatAttribute", "group": "attributes", - "weight": 299, + "weight": 283, "cookies": false, "type": "", "demo": "databases\/update-float-attribute.md", @@ -12221,7 +12100,7 @@ "x-appwrite": { "method": "createIntegerAttribute", "group": "attributes", - "weight": 300, + "weight": 284, "cookies": false, "type": "", "demo": "databases\/create-integer-attribute.md", @@ -12351,7 +12230,7 @@ "x-appwrite": { "method": "updateIntegerAttribute", "group": "attributes", - "weight": 301, + "weight": 285, "cookies": false, "type": "", "demo": "databases\/update-integer-attribute.md", @@ -12483,7 +12362,7 @@ "x-appwrite": { "method": "createIpAttribute", "group": "attributes", - "weight": 302, + "weight": 286, "cookies": false, "type": "", "demo": "databases\/create-ip-attribute.md", @@ -12596,7 +12475,7 @@ "x-appwrite": { "method": "updateIpAttribute", "group": "attributes", - "weight": 303, + "weight": 287, "cookies": false, "type": "", "demo": "databases\/update-ip-attribute.md", @@ -12711,7 +12590,7 @@ "x-appwrite": { "method": "createLineAttribute", "group": "attributes", - "weight": 304, + "weight": 288, "cookies": false, "type": "", "demo": "databases\/create-line-attribute.md", @@ -12818,7 +12697,7 @@ "x-appwrite": { "method": "updateLineAttribute", "group": "attributes", - "weight": 305, + "weight": 289, "cookies": false, "type": "", "demo": "databases\/update-line-attribute.md", @@ -12932,7 +12811,7 @@ "x-appwrite": { "method": "createLongtextAttribute", "group": "attributes", - "weight": 322, + "weight": 306, "cookies": false, "type": "", "demo": "databases\/create-longtext-attribute.md", @@ -13047,7 +12926,7 @@ "x-appwrite": { "method": "updateLongtextAttribute", "group": "attributes", - "weight": 323, + "weight": 307, "cookies": false, "type": "", "demo": "databases\/update-longtext-attribute.md", @@ -13158,7 +13037,7 @@ "x-appwrite": { "method": "createMediumtextAttribute", "group": "attributes", - "weight": 320, + "weight": 304, "cookies": false, "type": "", "demo": "databases\/create-mediumtext-attribute.md", @@ -13273,7 +13152,7 @@ "x-appwrite": { "method": "updateMediumtextAttribute", "group": "attributes", - "weight": 321, + "weight": 305, "cookies": false, "type": "", "demo": "databases\/update-mediumtext-attribute.md", @@ -13384,7 +13263,7 @@ "x-appwrite": { "method": "createPointAttribute", "group": "attributes", - "weight": 306, + "weight": 290, "cookies": false, "type": "", "demo": "databases\/create-point-attribute.md", @@ -13491,7 +13370,7 @@ "x-appwrite": { "method": "updatePointAttribute", "group": "attributes", - "weight": 307, + "weight": 291, "cookies": false, "type": "", "demo": "databases\/update-point-attribute.md", @@ -13605,7 +13484,7 @@ "x-appwrite": { "method": "createPolygonAttribute", "group": "attributes", - "weight": 308, + "weight": 292, "cookies": false, "type": "", "demo": "databases\/create-polygon-attribute.md", @@ -13712,7 +13591,7 @@ "x-appwrite": { "method": "updatePolygonAttribute", "group": "attributes", - "weight": 309, + "weight": 293, "cookies": false, "type": "", "demo": "databases\/update-polygon-attribute.md", @@ -13826,7 +13705,7 @@ "x-appwrite": { "method": "createRelationshipAttribute", "group": "attributes", - "weight": 310, + "weight": 294, "cookies": false, "type": "", "demo": "databases\/create-relationship-attribute.md", @@ -13941,137 +13820,10 @@ ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/string": { - "post": { - "summary": "Create string attribute", - "operationId": "databasesCreateStringAttribute", - "consumes": [ - "application\/json" - ], - "produces": [ - "application\/json" - ], - "tags": [ - "databases" - ], - "description": "Create a string attribute.\n", - "responses": { - "202": { - "description": "AttributeString", - "schema": { - "$ref": "#\/definitions\/attributeString" - } - } - }, - "deprecated": true, - "x-appwrite": { - "method": "createStringAttribute", - "group": "attributes", - "weight": 312, - "cookies": false, - "type": "", - "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, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-string-attribute.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createStringColumn" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "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, - "type": "string", - "x-example": "<COLLECTION_ID>", - "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "default": null, - "x-example": null - }, - "size": { - "type": "integer", - "description": "Attribute size for text attributes, in number of characters.", - "default": null, - "x-example": 1, - "format": "int32" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "default": null, - "x-example": false - }, - "default": { - "type": "string", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "default": null, - "x-example": "<DEFAULT>", - "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "default": false, - "x-example": false - }, - "encrypt": { - "type": "boolean", - "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.", - "default": false, - "x-example": false - } - }, - "required": [ - "key", - "size", - "required" - ] - } - } - ] - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/string\/{key}": { + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/relationship\/{key}": { "patch": { - "summary": "Update string attribute", - "operationId": "databasesUpdateStringAttribute", + "summary": "Update relationship attribute", + "operationId": "databasesUpdateRelationshipAttribute", "consumes": [ "application\/json" ], @@ -14081,23 +13833,23 @@ "tags": [ "databases" ], - "description": "Update a string attribute. Changing the `default` value will not update already existing documents.\n", + "description": "Update relationship attribute. [Learn more about relationship attributes](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-attributes).\n", "responses": { "200": { - "description": "AttributeString", + "description": "AttributeRelationship", "schema": { - "$ref": "#\/definitions\/attributeString" + "$ref": "#\/definitions\/attributeRelationship" } } }, "deprecated": true, "x-appwrite": { - "method": "updateStringAttribute", + "method": "updateRelationshipAttribute", "group": "attributes", - "weight": 313, + "weight": 295, "cookies": false, "type": "", - "demo": "databases\/update-string-attribute.md", + "demo": "databases\/update-relationship-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -14108,10 +13860,10 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-string-attribute.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-relationship-attribute.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.updateStringColumn" + "replaceWith": "tablesDB.updateRelationshipColumn" }, "auth": { "Project": [] @@ -14134,7 +13886,7 @@ }, { "name": "collectionId", - "description": "Collection ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "description": "Collection ID.", "required": true, "type": "string", "x-example": "<COLLECTION_ID>", @@ -14153,26 +13905,18 @@ "schema": { "type": "object", "properties": { - "required": { - "type": "boolean", - "description": "Is attribute required?", - "default": null, - "x-example": false - }, - "default": { + "onDelete": { "type": "string", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "default": null, - "x-example": "<DEFAULT>", - "x-nullable": true - }, - "size": { - "type": "integer", - "description": "Maximum size of the string attribute.", + "description": "Constraints option", "default": null, - "x-example": 1, - "format": "int32", - "x-nullable": true + "x-example": "cascade", + "enum": [ + "cascade", + "restrict", + "setNull" + ], + "x-enum-name": "RelationMutate", + "x-enum-keys": [] }, "newKey": { "type": "string", @@ -14181,20 +13925,16 @@ "x-example": null, "x-nullable": true } - }, - "required": [ - "required", - "default" - ] + } } } ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/text": { + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/string": { "post": { - "summary": "Create text attribute", - "operationId": "databasesCreateTextAttribute", + "summary": "Create string attribute", + "operationId": "databasesCreateStringAttribute", "consumes": [ "application\/json" ], @@ -14204,23 +13944,23 @@ "tags": [ "databases" ], - "description": "Create a text attribute.\n", + "description": "Create a string attribute.\n", "responses": { "202": { - "description": "AttributeText", + "description": "AttributeString", "schema": { - "$ref": "#\/definitions\/attributeText" + "$ref": "#\/definitions\/attributeString" } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "createTextAttribute", + "method": "createStringAttribute", "group": "attributes", - "weight": 318, + "weight": 296, "cookies": false, "type": "", - "demo": "databases\/create-text-attribute.md", + "demo": "databases\/create-string-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -14231,7 +13971,257 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-text-attribute.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-string-attribute.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createStringColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "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, + "type": "string", + "x-example": "<COLLECTION_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "default": null, + "x-example": null + }, + "size": { + "type": "integer", + "description": "Attribute size for text attributes, in number of characters.", + "default": null, + "x-example": 1, + "format": "int32" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "default": null, + "x-example": false + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "default": null, + "x-example": "<DEFAULT>", + "x-nullable": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "default": false, + "x-example": false + }, + "encrypt": { + "type": "boolean", + "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.", + "default": false, + "x-example": false + } + }, + "required": [ + "key", + "size", + "required" + ] + } + } + ] + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/string\/{key}": { + "patch": { + "summary": "Update string attribute", + "operationId": "databasesUpdateStringAttribute", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "databases" + ], + "description": "Update a string attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeString", + "schema": { + "$ref": "#\/definitions\/attributeString" + } + } + }, + "deprecated": true, + "x-appwrite": { + "method": "updateStringAttribute", + "group": "attributes", + "weight": 297, + "cookies": false, + "type": "", + "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-string-attribute.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateStringColumn" + }, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "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, + "type": "string", + "x-example": "<COLLECTION_ID>", + "in": "path" + }, + { + "name": "key", + "description": "Attribute Key.", + "required": true, + "type": "string", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "required": { + "type": "boolean", + "description": "Is attribute required?", + "default": null, + "x-example": false + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "default": null, + "x-example": "<DEFAULT>", + "x-nullable": true + }, + "size": { + "type": "integer", + "description": "Maximum size of the string attribute.", + "default": null, + "x-example": 1, + "format": "int32", + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Attribute Key.", + "default": null, + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required", + "default" + ] + } + } + ] + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/text": { + "post": { + "summary": "Create text attribute", + "operationId": "databasesCreateTextAttribute", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "databases" + ], + "description": "Create a text attribute.\n", + "responses": { + "202": { + "description": "AttributeText", + "schema": { + "$ref": "#\/definitions\/attributeText" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createTextAttribute", + "group": "attributes", + "weight": 302, + "cookies": false, + "type": "", + "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-text-attribute.md", "auth": { "Project": [] } @@ -14332,7 +14322,7 @@ "x-appwrite": { "method": "updateTextAttribute", "group": "attributes", - "weight": 319, + "weight": 303, "cookies": false, "type": "", "demo": "databases\/update-text-attribute.md", @@ -14443,7 +14433,7 @@ "x-appwrite": { "method": "createUrlAttribute", "group": "attributes", - "weight": 314, + "weight": 298, "cookies": false, "type": "", "demo": "databases\/create-url-attribute.md", @@ -14557,7 +14547,7 @@ "x-appwrite": { "method": "updateUrlAttribute", "group": "attributes", - "weight": 315, + "weight": 299, "cookies": false, "type": "", "demo": "databases\/update-url-attribute.md", @@ -14673,7 +14663,7 @@ "x-appwrite": { "method": "createVarcharAttribute", "group": "attributes", - "weight": 316, + "weight": 300, "cookies": false, "type": "", "demo": "databases\/create-varchar-attribute.md", @@ -14796,7 +14786,7 @@ "x-appwrite": { "method": "updateVarcharAttribute", "group": "attributes", - "weight": 317, + "weight": 301, "cookies": false, "type": "", "demo": "databases\/update-varchar-attribute.md", @@ -14944,7 +14934,7 @@ "x-appwrite": { "method": "getAttribute", "group": "attributes", - "weight": 287, + "weight": 271, "cookies": false, "type": "", "demo": "databases\/get-attribute.md", @@ -15019,7 +15009,7 @@ "x-appwrite": { "method": "deleteAttribute", "group": "attributes", - "weight": 288, + "weight": 272, "cookies": false, "type": "", "demo": "databases\/delete-attribute.md", @@ -15075,118 +15065,6 @@ ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/{key}\/relationship": { - "patch": { - "summary": "Update relationship attribute", - "operationId": "databasesUpdateRelationshipAttribute", - "consumes": [ - "application\/json" - ], - "produces": [ - "application\/json" - ], - "tags": [ - "databases" - ], - "description": "Update relationship attribute. [Learn more about relationship attributes](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-attributes).\n", - "responses": { - "200": { - "description": "AttributeRelationship", - "schema": { - "$ref": "#\/definitions\/attributeRelationship" - } - } - }, - "deprecated": true, - "x-appwrite": { - "method": "updateRelationshipAttribute", - "group": "attributes", - "weight": 311, - "cookies": false, - "type": "", - "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, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-relationship-attribute.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateRelationshipColumn" - }, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "collectionId", - "description": "Collection ID.", - "required": true, - "type": "string", - "x-example": "<COLLECTION_ID>", - "in": "path" - }, - { - "name": "key", - "description": "Attribute Key.", - "required": true, - "type": "string", - "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "onDelete": { - "type": "string", - "description": "Constraints option", - "default": null, - "x-example": "cascade", - "enum": [ - "cascade", - "restrict", - "setNull" - ], - "x-enum-name": "RelationMutate", - "x-enum-keys": [], - "x-nullable": true - }, - "newKey": { - "type": "string", - "description": "New Attribute Key.", - "default": null, - "x-example": null, - "x-nullable": true - } - } - } - } - ] - } - }, "\/databases\/{databaseId}\/collections\/{collectionId}\/documents": { "get": { "summary": "List documents", @@ -15211,7 +15089,7 @@ "x-appwrite": { "method": "listDocuments", "group": "documents", - "weight": 283, + "weight": 267, "cookies": false, "type": "", "demo": "databases\/list-documents.md", @@ -15287,6 +15165,16 @@ "x-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, + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0, + "in": "query" } ] }, @@ -15315,7 +15203,7 @@ "x-appwrite": { "method": "createDocument", "group": "documents", - "weight": 275, + "weight": 259, "cookies": false, "type": "", "demo": "databases\/create-document.md", @@ -15382,6 +15270,7 @@ "databaseId", "collectionId", "documents", + "transactionId", "transactionId" ], "required": [ @@ -15506,7 +15395,7 @@ "x-appwrite": { "method": "upsertDocuments", "group": "documents", - "weight": 280, + "weight": 264, "cookies": false, "type": "", "demo": "databases\/upsert-documents.md", @@ -15516,6 +15405,7 @@ "scope": "documents.write", "platforms": [ "console", + "client", "server" ], "packaging": false, @@ -15566,7 +15456,8 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ @@ -15641,7 +15532,7 @@ "x-appwrite": { "method": "updateDocuments", "group": "documents", - "weight": 278, + "weight": 262, "cookies": false, "type": "", "demo": "databases\/update-documents.md", @@ -15745,7 +15636,7 @@ "x-appwrite": { "method": "deleteDocuments", "group": "documents", - "weight": 282, + "weight": 266, "cookies": false, "type": "", "demo": "databases\/delete-documents.md", @@ -15843,7 +15734,7 @@ "x-appwrite": { "method": "getDocument", "group": "documents", - "weight": 276, + "weight": 260, "cookies": false, "type": "", "demo": "databases\/get-document.md", @@ -15946,7 +15837,7 @@ "x-appwrite": { "method": "upsertDocument", "group": "documents", - "weight": 279, + "weight": 263, "cookies": false, "type": "", "demo": "databases\/upsert-document.md", @@ -16097,7 +15988,7 @@ "x-appwrite": { "method": "updateDocument", "group": "documents", - "weight": 277, + "weight": 261, "cookies": false, "type": "", "demo": "databases\/update-document.md", @@ -16207,7 +16098,7 @@ "x-appwrite": { "method": "deleteDocument", "group": "documents", - "weight": 281, + "weight": 265, "cookies": false, "type": "", "demo": "databases\/delete-document.md", @@ -16306,7 +16197,7 @@ "x-appwrite": { "method": "listDocumentLogs", "group": "logs", - "weight": 284, + "weight": 268, "cookies": false, "type": "", "demo": "databases\/list-document-logs.md", @@ -16399,7 +16290,7 @@ "x-appwrite": { "method": "decrementDocumentAttribute", "group": "documents", - "weight": 286, + "weight": 270, "cookies": false, "type": "", "demo": "databases\/decrement-document-attribute.md", @@ -16522,7 +16413,7 @@ "x-appwrite": { "method": "incrementDocumentAttribute", "group": "documents", - "weight": 285, + "weight": 269, "cookies": false, "type": "", "demo": "databases\/increment-document-attribute.md", @@ -16643,7 +16534,7 @@ "x-appwrite": { "method": "listIndexes", "group": "indexes", - "weight": 327, + "weight": 311, "cookies": false, "type": "", "demo": "databases\/list-indexes.md", @@ -16737,7 +16628,7 @@ "x-appwrite": { "method": "createIndex", "group": "indexes", - "weight": 324, + "weight": 308, "cookies": false, "type": "", "demo": "databases\/create-index.md", @@ -16877,7 +16768,7 @@ "x-appwrite": { "method": "getIndex", "group": "indexes", - "weight": 325, + "weight": 309, "cookies": false, "type": "", "demo": "databases\/get-index.md", @@ -16952,7 +16843,7 @@ "x-appwrite": { "method": "deleteIndex", "group": "indexes", - "weight": 326, + "weight": 310, "cookies": false, "type": "", "demo": "databases\/delete-index.md", @@ -17032,7 +16923,7 @@ "x-appwrite": { "method": "listCollectionLogs", "group": "collections", - "weight": 273, + "weight": 257, "cookies": false, "type": "", "demo": "databases\/list-collection-logs.md", @@ -17115,7 +17006,7 @@ "x-appwrite": { "method": "getCollectionUsage", "group": null, - "weight": 274, + "weight": 258, "cookies": false, "type": "", "demo": "databases\/get-collection-usage.md", @@ -17206,7 +17097,7 @@ "x-appwrite": { "method": "listLogs", "group": "logs", - "weight": 265, + "weight": 249, "cookies": false, "type": "", "demo": "databases\/list-logs.md", @@ -17311,7 +17202,7 @@ "x-appwrite": { "method": "getUsage", "group": null, - "weight": 266, + "weight": 250, "cookies": false, "type": "", "demo": "databases\/get-usage.md", @@ -17400,56 +17291,59 @@ ] } }, - "\/domains": { + "\/documentsdb": { "get": { - "summary": "List domains", - "operationId": "domainsList", + "summary": "List databases", + "operationId": "documentsDBList", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "domains" + "documentsDB" ], - "description": " List all domains registered for this project. This endpoint supports pagination.", + "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": "Domains list", + "description": "Databases List", "schema": { - "$ref": "#\/definitions\/domainsList" + "$ref": "#\/definitions\/databaseList" } } }, "deprecated": false, "x-appwrite": { "method": "list", - "group": null, - "weight": 632, + "group": "documentsdb", + "weight": 395, "cookies": false, "type": "", - "demo": "domains\/list.md", + "demo": "documentsdb\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.read", + "scope": "databases.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/list.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "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 domain name, teamInternalId, expiration, etc.", + "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, "type": "array", "collectionFormat": "multi", @@ -17467,12 +17361,21 @@ "x-example": "<SEARCH>", "default": "", "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" } ] }, "post": { - "summary": "Create a new domain.", - "operationId": "domainsCreate", + "summary": "Create database", + "operationId": "documentsDBCreate", "consumes": [ "application\/json" ], @@ -17480,41 +17383,44 @@ "application\/json" ], "tags": [ - "domains" + "documentsDB" ], - "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.", + "description": "Create a new Database.\n", "responses": { "201": { - "description": "Domain", + "description": "Database", "schema": { - "$ref": "#\/definitions\/domain" + "$ref": "#\/definitions\/database" } } }, "deprecated": false, "x-appwrite": { "method": "create", - "group": null, - "weight": 627, + "group": "documentsdb", + "weight": 391, "cookies": false, "type": "", - "demo": "domains\/create.md", + "demo": "documentsdb\/create.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/create.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -17524,62 +17430,70 @@ "schema": { "type": "object", "properties": { - "teamId": { + "databaseId": { "type": "string", - "description": "Team unique ID.", + "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.", "default": null, - "x-example": "<TEAM_ID>" + "x-example": "<DATABASE_ID>" }, - "domain": { + "name": { "type": "string", - "description": "Domain name (e.g. \"example.com\").", + "description": "Database name. Max length: 128 chars.", "default": null, - "x-example": null + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "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.", + "default": true, + "x-example": false } }, "required": [ - "teamId", - "domain" + "databaseId", + "name" ] } } ] } }, - "\/domains\/price": { + "\/documentsdb\/transactions": { "get": { - "summary": "Get domain price", - "operationId": "domainsGetPrice", + "summary": "List transactions", + "operationId": "documentsDBListTransactions", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "domains" + "documentsDB" ], - "description": " Get the registration price for a domain name.", + "description": false, "responses": { "200": { - "description": "DomainPrice", + "description": "Transaction List", "schema": { - "$ref": "#\/definitions\/domainPrice" + "$ref": "#\/definitions\/transactionList" } } }, "deprecated": false, "x-appwrite": { - "method": "getPrice", - "group": null, - "weight": 630, + "method": "listTransactions", + "group": "transactions", + "weight": 425, "cookies": false, "type": "", - "demo": "domains\/get-price.md", - "rate-limit": 50, + "demo": "documentsdb\/list-transactions.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.read", + "scope": "documents.read", "platforms": [ - "console" + "console", + "server", + "client" ], "packaging": false, "public": true, @@ -17589,50 +17503,29 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "domain", - "description": "Domain name to get price for.", - "required": true, - "type": "string", - "in": "query" - }, - { - "name": "periodYears", - "description": "Number of years to calculate the domain price for. Must be at least 1.", - "required": false, - "type": "integer", - "format": "uint32", - "default": 1, - "in": "query" - }, - { - "name": "registrationType", - "description": "Type of registration pricing to fetch. Allowed values: new, transfer, renewal, trade.", + "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, - "type": "string", - "x-example": "new", - "enum": [ - "new", - "transfer", - "renewal", - "trade" - ], - "x-enum-name": null, - "x-enum-keys": [], - "default": "new", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], "in": "query" } ] - } - }, - "\/domains\/purchases": { + }, "post": { - "summary": "Create a domain purchase", - "operationId": "domainsCreatePurchase", + "summary": "Create transaction", + "operationId": "documentsDBCreateTransaction", "consumes": [ "application\/json" ], @@ -17640,31 +17533,33 @@ "application\/json" ], "tags": [ - "domains" + "documentsDB" ], - "description": " Create a domain purchase with registrant information.", + "description": false, "responses": { "201": { - "description": "Domain", + "description": "Transaction", "schema": { - "$ref": "#\/definitions\/domain" + "$ref": "#\/definitions\/transaction" } } }, "deprecated": false, "x-appwrite": { - "method": "createPurchase", - "group": null, - "weight": 672, + "method": "createTransaction", + "group": "transactions", + "weight": 421, "cookies": false, "type": "", - "demo": "domains\/create-purchase.md", + "demo": "documentsdb\/create-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "documents.write", "platforms": [ - "console" + "console", + "server", + "client" ], "packaging": false, "public": true, @@ -17674,7 +17569,9 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [], + "JWT": [] } ], "parameters": [ @@ -17684,125 +17581,55 @@ "schema": { "type": "object", "properties": { - "domain": { - "type": "string", - "description": "Fully qualified domain name to purchase (for example, example.com).", - "default": null, - "x-example": null - }, - "teamId": { - "type": "string", - "description": "Team ID that will own the domain.", - "default": null, - "x-example": "<TEAM_ID>" - }, - "firstName": { - "type": "string", - "description": "Registrant first name used for domain registration.", - "default": null, - "x-example": "<FIRST_NAME>" - }, - "lastName": { - "type": "string", - "description": "Registrant last name used for domain registration.", - "default": null, - "x-example": "<LAST_NAME>" - }, - "email": { - "type": "string", - "description": "Registrant email address for registration and notices.", - "default": null, - "x-example": "email@example.com", - "format": "email" - }, - "phone": { - "type": "string", - "description": "Registrant phone number in E.164 format (for example, +15555551234).", - "default": null, - "x-example": "+12065550100", - "format": "phone" - }, - "billingAddressId": { - "type": "string", - "description": "Billing address ID used for registration contact details.", - "default": null, - "x-example": "<BILLING_ADDRESS_ID>" - }, - "addressLine3": { - "type": "string", - "description": "Additional address line for the registrant (line 3).", - "default": "", - "x-example": "<ADDRESS_LINE3>" - }, - "companyName": { - "type": "string", - "description": "Company or organization name for the registrant.", - "default": "", - "x-example": "<COMPANY_NAME>" - }, - "periodYears": { + "ttl": { "type": "integer", - "description": "Registration term in years (1-10).", - "default": 1, - "x-example": 1, + "description": "Seconds before the transaction expires.", + "default": 300, + "x-example": 60, "format": "int32" - }, - "paymentMethodId": { - "type": "string", - "description": "Payment method ID to authorize and capture the purchase.", - "default": null, - "x-example": "<PAYMENT_METHOD_ID>" } - }, - "required": [ - "domain", - "teamId", - "firstName", - "lastName", - "email", - "phone", - "billingAddressId", - "paymentMethodId" - ] + } } } ] } }, - "\/domains\/suggestions": { + "\/documentsdb\/transactions\/{transactionId}": { "get": { - "summary": "List domain suggestions", - "operationId": "domainsListSuggestions", + "summary": "Get transaction", + "operationId": "documentsDBGetTransaction", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "domains" + "documentsDB" ], - "description": " List domain suggestions.", + "description": false, "responses": { "200": { - "description": "Domain suggestions list", + "description": "Transaction", "schema": { - "$ref": "#\/definitions\/domainSuggestionsList" + "$ref": "#\/definitions\/transaction" } } }, "deprecated": false, "x-appwrite": { - "method": "listSuggestions", - "group": null, - "weight": 671, + "method": "getTransaction", + "group": "transactions", + "weight": 422, "cookies": false, "type": "", - "demo": "domains\/list-suggestions.md", - "rate-limit": 50, + "demo": "documentsdb\/get-transaction.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.read", + "scope": "documents.read", "platforms": [ - "console" + "console", + "server", + "client" ], "packaging": false, "public": true, @@ -17812,105 +17639,137 @@ }, "security": [ { + "Project": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "type": "string", + "x-example": "<TRANSACTION_ID>", + "in": "path" + } + ] + }, + "patch": { + "summary": "Update transaction", + "operationId": "documentsDBUpdateTransaction", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "documentsDB" + ], + "description": false, + "responses": { + "200": { + "description": "Transaction", + "schema": { + "$ref": "#\/definitions\/transaction" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateTransaction", + "group": "transactions", + "weight": 423, + "cookies": false, + "type": "", + "demo": "documentsdb\/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, + "auth": { "Project": [] } + }, + "security": [ + { + "Project": [], + "Key": [], + "JWT": [] + } ], "parameters": [ { - "name": "query", - "description": "Query to find available domains and suggestions. Max length: 256 chars.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "type": "string", - "x-example": "<QUERY>", - "in": "query" + "x-example": "<TRANSACTION_ID>", + "in": "path" }, { - "name": "tlds", - "description": "TLDs to suggest.", - "required": false, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" - }, - { - "name": "limit", - "description": "Maximum number of suggestions to return.", - "required": false, - "type": "integer", - "format": "int32", - "in": "query" - }, - { - "name": "filterType", - "description": "Filter type: premium, suggestion.", - "required": false, - "type": "string", - "x-example": "premium", - "enum": [ - "premium", - "suggestion" - ], - "x-enum-name": null, - "x-enum-keys": [], - "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, - "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, - "type": "integer", - "format": "int32", - "in": "query" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "commit": { + "type": "boolean", + "description": "Commit transaction?", + "default": false, + "x-example": false + }, + "rollback": { + "type": "boolean", + "description": "Rollback transaction?", + "default": false, + "x-example": false + } + } + } } ] - } - }, - "\/domains\/{domainId}": { - "get": { - "summary": "Get a single domain by its unique ID.", - "operationId": "domainsGet", - "consumes": [], - "produces": [ + }, + "delete": { + "summary": "Delete transaction", + "operationId": "documentsDBDeleteTransaction", + "consumes": [ "application\/json" ], + "produces": [], "tags": [ - "domains" + "documentsDB" ], - "description": " Get a domain by its unique ID.", + "description": false, "responses": { - "200": { - "description": "Domain", - "schema": { - "$ref": "#\/definitions\/domain" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": null, - "weight": 629, + "method": "deleteTransaction", + "group": "transactions", + "weight": 424, "cookies": false, "type": "", - "demo": "domains\/get.md", + "demo": "documentsdb\/delete-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.read", + "scope": "documents.write", "platforms": [ - "console" + "console", + "server", + "client" ], "packaging": false, "public": true, @@ -17920,55 +17779,84 @@ }, "security": [ { - "Project": [] + "Project": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "type": "string", - "x-example": "<DOMAIN_ID>", + "x-example": "<TRANSACTION_ID>", "in": "path" } ] - }, - "delete": { - "summary": "Delete a domain by its unique ID.", - "operationId": "domainsDelete", - "consumes": [ - "application\/json" - ], + } + }, + "\/documentsdb\/usage": { + "get": { + "summary": "Get DocumentsDB usage stats", + "operationId": "documentsDBListUsage", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "domains" + "documentsDB" ], - "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.", + "description": "List usage metrics and statistics for all databases in the project. You can view the total number of databases, collections, documents, and storage usage. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "UsageDatabases", + "schema": { + "$ref": "#\/definitions\/usageDatabases" + } } }, "deprecated": false, "x-appwrite": { - "method": "delete", + "method": "listUsage", "group": null, - "weight": 628, + "weight": 397, "cookies": false, "type": "", - "demo": "domains\/delete.md", + "demo": "documentsdb\/list-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "collections.read", "platforms": [ "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/list-usage.md", + "methods": [ + { + "name": "listUsage", + "namespace": "documentsDB", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "range" + ], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/usageDatabases" + } + ], + "description": "List usage metrics and statistics for all databases in the project. You can view the total number of databases, collections, documents, and storage usage. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.", + "demo": "documentsdb\/list-usage.md", + "public": true + } + ], "auth": { "Project": [] } @@ -17980,252 +17868,323 @@ ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, + "name": "range", + "description": "Date range.", + "required": false, "type": "string", - "x-example": "<DOMAIN_ID>", - "in": "path" + "x-example": "24h", + "enum": [ + "24h", + "30d", + "90d" + ], + "x-enum-name": "UsageRange", + "x-enum-keys": [ + "Twenty Four Hours", + "Thirty Days", + "Ninety Days" + ], + "default": "30d", + "in": "query" } ] } }, - "\/domains\/{domainId}\/nameservers": { - "patch": { - "summary": "Verify which NS records are used and update the domain accordingly.", - "operationId": "domainsUpdateNameservers", - "consumes": [ - "application\/json" - ], + "\/documentsdb\/{databaseId}": { + "get": { + "summary": "Get database", + "operationId": "documentsDBGet", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "domains" + "documentsDB" ], - "description": " Verify which NS records are used and update the domain accordingly. This will check the domain's\n nameservers and update the domain's status based on whether the nameservers match the expected\n Appwrite nameservers.", + "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", "responses": { "200": { - "description": "Domain", + "description": "Database", "schema": { - "$ref": "#\/definitions\/domain" + "$ref": "#\/definitions\/database" } } }, "deprecated": false, "x-appwrite": { - "method": "updateNameservers", - "group": null, - "weight": 633, + "method": "get", + "group": "documentsdb", + "weight": 392, "cookies": false, "type": "", - "demo": "domains\/update-nameservers.md", + "demo": "documentsdb\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "databases.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/get.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<DOMAIN_ID>", + "x-example": "<DATABASE_ID>", "in": "path" } ] - } - }, - "\/domains\/{domainId}\/presets\/google-workspace": { - "get": { - "summary": "Get Google Workspace preset (Records)", - "operationId": "domainsGetPresetGoogleWorkspace", - "consumes": [], + }, + "put": { + "summary": "Update database", + "operationId": "documentsDBUpdate", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "domains" + "documentsDB" ], - "description": " List Google Workspace DNS records.", + "description": "Update a database by its unique ID.", "responses": { - "201": { - "description": "DNS records list", + "200": { + "description": "Database", "schema": { - "$ref": "#\/definitions\/dnsRecordsList" + "$ref": "#\/definitions\/database" } } }, "deprecated": false, "x-appwrite": { - "method": "getPresetGoogleWorkspace", - "group": null, - "weight": 660, + "method": "update", + "group": "documentsdb", + "weight": 393, "cookies": false, "type": "", - "demo": "domains\/get-preset-google-workspace.md", + "demo": "documentsdb\/update.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/update.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<DOMAIN_ID>", + "x-example": "<DATABASE_ID>", "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Database name. Max length: 128 chars.", + "default": null, + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "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.", + "default": true, + "x-example": false + } + }, + "required": [ + "name" + ] + } } ] }, - "post": { - "summary": "Create Google Workspace preset (Records)", - "operationId": "domainsCreatePresetGoogleWorkspace", + "delete": { + "summary": "Delete database", + "operationId": "documentsDBDelete", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ - "domains" + "documentsDB" ], - "description": " Add Google Workspace DNS records to the domain. This will create the required MX records \n for Google Workspace email hosting.", + "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", "responses": { - "201": { - "description": "DNS records list", - "schema": { - "$ref": "#\/definitions\/dnsRecordsList" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "createPresetGoogleWorkspace", - "group": null, - "weight": 659, + "method": "delete", + "group": "documentsdb", + "weight": 394, "cookies": false, "type": "", - "demo": "domains\/create-preset-google-workspace.md", + "demo": "documentsdb\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "databases.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/delete.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<DOMAIN_ID>", + "x-example": "<DATABASE_ID>", "in": "path" } ] } }, - "\/domains\/{domainId}\/presets\/icloud": { + "\/documentsdb\/{databaseId}\/collections": { "get": { - "summary": "Get iCloud preset (Records)", - "operationId": "domainsGetPresetICloud", + "summary": "List collections", + "operationId": "documentsDBListCollections", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "domains" + "documentsDB" ], - "description": " List iCloud DNS records.", + "description": "Get a list of all collections that belong to the provided databaseId. You can use the search parameter to filter your results.", "responses": { - "201": { - "description": "DNS records list", + "200": { + "description": "Collections List", "schema": { - "$ref": "#\/definitions\/dnsRecordsList" + "$ref": "#\/definitions\/collectionList" } } }, "deprecated": false, "x-appwrite": { - "method": "getPresetICloud", - "group": null, - "weight": 670, + "method": "listCollections", + "group": "collections", + "weight": 402, "cookies": false, "type": "", - "demo": "domains\/get-preset-i-cloud.md", + "demo": "documentsdb\/list-collections.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "collections.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/list-collections.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<DOMAIN_ID>", + "x-example": "<DATABASE_ID>", "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, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "type": "string", + "x-example": "<SEARCH>", + "default": "", + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" } ] }, "post": { - "summary": "Create iCloud preset (Records)", - "operationId": "domainsCreatePresetICloud", + "summary": "Create collection", + "operationId": "documentsDBCreateCollection", "consumes": [ "application\/json" ], @@ -18233,115 +18192,194 @@ "application\/json" ], "tags": [ - "domains" + "documentsDB" ], - "description": " Add iCloud DNS records to the domain. This will create the required MX and SPF records\n for using iCloud email services with your domain.", + "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": "DNS records list", + "description": "Collection", "schema": { - "$ref": "#\/definitions\/dnsRecordsList" + "$ref": "#\/definitions\/collection" } } }, "deprecated": false, "x-appwrite": { - "method": "createPresetICloud", - "group": null, - "weight": 669, + "method": "createCollection", + "group": "collections", + "weight": 398, "cookies": false, "type": "", - "demo": "domains\/create-preset-i-cloud.md", + "demo": "documentsdb\/create-collection.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "collections.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/create-collection.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<DOMAIN_ID>", + "x-example": "<DATABASE_ID>", "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "collectionId": { + "type": "string", + "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.", + "default": null, + "x-example": "<COLLECTION_ID>" + }, + "name": { + "type": "string", + "description": "Collection name. Max length: 128 chars.", + "default": null, + "x-example": "<NAME>" + }, + "permissions": { + "type": "array", + "description": "An array of permissions strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "default": null, + "x-example": "[\"read(\"any\")\"]", + "x-nullable": true, + "items": { + "type": "string" + } + }, + "documentSecurity": { + "type": "boolean", + "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).", + "default": false, + "x-example": false + }, + "enabled": { + "type": "boolean", + "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.", + "default": true, + "x-example": false + }, + "attributes": { + "type": "array", + "description": "Array of attribute definitions to create. Each attribute should contain: key (string), type (string: string, integer, float, boolean, datetime, relationship), size (integer, required for string type), required (boolean, optional), default (mixed, optional), array (boolean, optional), and type-specific options.", + "default": [], + "x-example": null, + "items": { + "type": "object" + } + }, + "indexes": { + "type": "array", + "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).", + "default": [], + "x-example": null, + "items": { + "type": "object" + } + } + }, + "required": [ + "collectionId", + "name" + ] + } } ] } }, - "\/domains\/{domainId}\/presets\/mailgun": { + "\/documentsdb\/{databaseId}\/collections\/{collectionId}": { "get": { - "summary": "Get Mailgun preset (Records)", - "operationId": "domainsGetPresetMailgun", + "summary": "Get collection", + "operationId": "documentsDBGetCollection", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "domains" + "documentsDB" ], - "description": " List Mailgun DNS records.", + "description": "Get a collection by its unique ID. This endpoint response returns a JSON object with the collection metadata.", "responses": { - "201": { - "description": "DNS records list", + "200": { + "description": "Collection", "schema": { - "$ref": "#\/definitions\/dnsRecordsList" + "$ref": "#\/definitions\/collection" } } }, "deprecated": false, "x-appwrite": { - "method": "getPresetMailgun", - "group": null, - "weight": 662, + "method": "getCollection", + "group": "collections", + "weight": 399, "cookies": false, "type": "", - "demo": "domains\/get-preset-mailgun.md", + "demo": "documentsdb\/get-collection.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "collections.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/get-collection.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<DOMAIN_ID>", + "x-example": "<DATABASE_ID>", "in": "path" - } - ] + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", + "in": "path" + } + ] }, - "post": { - "summary": "Create Mailgun preset (Records)", - "operationId": "domainsCreatePresetMailgun", + "put": { + "summary": "Update collection", + "operationId": "documentsDBUpdateCollection", "consumes": [ "application\/json" ], @@ -18349,231 +18387,456 @@ "application\/json" ], "tags": [ - "domains" + "documentsDB" ], - "description": " Add Mailgun DNS records to the domain. This endpoint will create the required DNS records \n for Mailgun in the specified domain.", + "description": "Update a collection by its unique ID.", "responses": { - "201": { - "description": "DNS records list", + "200": { + "description": "Collection", "schema": { - "$ref": "#\/definitions\/dnsRecordsList" + "$ref": "#\/definitions\/collection" } } }, "deprecated": false, "x-appwrite": { - "method": "createPresetMailgun", - "group": null, - "weight": 661, + "method": "updateCollection", + "group": "collections", + "weight": 400, "cookies": false, "type": "", - "demo": "domains\/create-preset-mailgun.md", + "demo": "documentsdb\/update-collection.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "collections.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/update-collection.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<DOMAIN_ID>", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Collection name. Max length: 128 chars.", + "default": null, + "x-example": "<NAME>" + }, + "permissions": { + "type": "array", + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "default": null, + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } + }, + "documentSecurity": { + "type": "boolean", + "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).", + "default": false, + "x-example": false + }, + "enabled": { + "type": "boolean", + "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.", + "default": true, + "x-example": false + } + }, + "required": [ + "name" + ] + } } ] - } - }, - "\/domains\/{domainId}\/presets\/outlook": { - "get": { - "summary": "Get Outlook preset (Records)", - "operationId": "domainsGetPresetOutlook", - "consumes": [], - "produces": [ + }, + "delete": { + "summary": "Delete collection", + "operationId": "documentsDBDeleteCollection", + "consumes": [ "application\/json" ], + "produces": [], "tags": [ - "domains" + "documentsDB" ], - "description": " List Outlook DNS records.", + "description": "Delete a collection by its unique ID. Only users with write permissions have access to delete this resource.", "responses": { - "201": { - "description": "DNS records list", - "schema": { - "$ref": "#\/definitions\/dnsRecordsList" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "getPresetOutlook", - "group": null, - "weight": 668, + "method": "deleteCollection", + "group": "collections", + "weight": 401, "cookies": false, "type": "", - "demo": "domains\/get-preset-outlook.md", + "demo": "documentsdb\/delete-collection.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "collections.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/delete-collection.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<DOMAIN_ID>", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", "in": "path" } ] - }, - "post": { - "summary": "Create Outlook preset (Records)", - "operationId": "domainsCreatePresetOutlook", - "consumes": [ - "application\/json" - ], + } + }, + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents": { + "get": { + "summary": "List documents", + "operationId": "documentsDBListDocuments", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "domains" + "documentsDB" ], - "description": " Add Outlook DNS records to the domain. This will create the required MX records\n for setting up Outlook email hosting for your domain.", + "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": { - "201": { - "description": "DNS records list", + "200": { + "description": "Documents List", "schema": { - "$ref": "#\/definitions\/dnsRecordsList" + "$ref": "#\/definitions\/documentList" } } }, "deprecated": false, "x-appwrite": { - "method": "createPresetOutlook", - "group": null, - "weight": 667, + "method": "listDocuments", + "group": "documents", + "weight": 417, "cookies": false, "type": "", - "demo": "domains\/create-preset-outlook.md", + "demo": "documentsdb\/list-documents.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "documents.read", "platforms": [ - "console" + "console", + "client", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/list-documents.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<DOMAIN_ID>", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", "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, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", + "required": false, + "type": "string", + "x-example": "<TRANSACTION_ID>", + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "type": "boolean", + "x-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, + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0, + "in": "query" } ] - } - }, - "\/domains\/{domainId}\/presets\/proton-mail": { - "get": { - "summary": "Get ProtonMail preset (Records)", - "operationId": "domainsGetPresetProtonMail", - "consumes": [], + }, + "post": { + "summary": "Create document", + "operationId": "documentsDBCreateDocument", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "domains" + "documentsDB" ], - "description": " List ProtonMail DNS records.", + "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": "DNS records list", + "description": "Document", "schema": { - "$ref": "#\/definitions\/dnsRecordsList" + "$ref": "#\/definitions\/document" } } }, "deprecated": false, "x-appwrite": { - "method": "getPresetProtonMail", - "group": null, - "weight": 666, + "method": "createDocument", + "group": "documents", + "weight": 409, "cookies": false, "type": "", - "demo": "domains\/get-preset-proton-mail.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "demo": "documentsdb\/create-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", "platforms": [ - "console" + "console", + "client", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/create-document.md", + "methods": [ + { + "name": "createDocument", + "namespace": "documentsDB", + "desc": "Create document", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions" + ], + "required": [ + "databaseId", + "collectionId", + "documentId", + "data" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/document" + } + ], + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "demo": "documentsdb\/create-document.md", + "public": true + }, + { + "name": "createDocuments", + "namespace": "documentsDB", + "desc": "Create documents", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documents" + ], + "required": [ + "databaseId", + "collectionId", + "documents" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/documentList" + } + ], + "description": "Create new Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "demo": "documentsdb\/create-documents.md", + "public": true + } + ], "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<DOMAIN_ID>", + "x-example": "<DATABASE_ID>", + "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, + "type": "string", + "x-example": "<COLLECTION_ID>", "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "documentId": { + "type": "string", + "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "default": "", + "x-example": "<DOCUMENT_ID>" + }, + "data": { + "type": "object", + "description": "Document data as JSON object.", + "default": [], + "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":30,\"isAdmin\":false}" + }, + "permissions": { + "type": "array", + "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).", + "default": null, + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } + }, + "documents": { + "type": "array", + "description": "Array of documents data as JSON objects.", + "default": [], + "x-example": null, + "items": { + "type": "object" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "default": null, + "x-example": "<TRANSACTION_ID>" + } + } + } } ] }, - "post": { - "summary": "Create ProtonMail preset (Records)", - "operationId": "domainsCreatePresetProtonMail", + "put": { + "summary": "Upsert documents", + "operationId": "documentsDBUpsertDocuments", "consumes": [ "application\/json" ], @@ -18581,115 +18844,224 @@ "application\/json" ], "tags": [ - "domains" + "documentsDB" ], - "description": " Add ProtonMail DNS records to the domain. This will create the required MX records\n for using ProtonMail with your custom domain.", + "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": "DNS records list", + "description": "Documents List", "schema": { - "$ref": "#\/definitions\/dnsRecordsList" + "$ref": "#\/definitions\/documentList" } } }, "deprecated": false, "x-appwrite": { - "method": "createPresetProtonMail", - "group": null, - "weight": 665, + "method": "upsertDocuments", + "group": "documents", + "weight": 414, "cookies": false, "type": "", - "demo": "domains\/create-preset-proton-mail.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "demo": "documentsdb\/upsert-documents.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/upsert-documents.md", + "methods": [ + { + "name": "upsertDocuments", + "namespace": "documentsDB", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documents", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documents" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/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": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<DOMAIN_ID>", + "x-example": "<DATABASE_ID>", "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "documents": { + "type": "array", + "description": "Array of document data as JSON objects. May contain partial documents.", + "default": null, + "x-example": null, + "items": { + "type": "object" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "default": null, + "x-example": "<TRANSACTION_ID>" + } + }, + "required": [ + "documents" + ] + } } ] - } - }, - "\/domains\/{domainId}\/presets\/zoho": { - "get": { - "summary": "Get Zoho preset (Records)", - "operationId": "domainsGetPresetZoho", - "consumes": [], + }, + "patch": { + "summary": "Update documents", + "operationId": "documentsDBUpdateDocuments", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "domains" + "documentsDB" ], - "description": " List Zoho DNS records.", + "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": { - "201": { - "description": "DNS records list", + "200": { + "description": "Documents List", "schema": { - "$ref": "#\/definitions\/dnsRecordsList" + "$ref": "#\/definitions\/documentList" } } }, "deprecated": false, "x-appwrite": { - "method": "getPresetZoho", - "group": null, - "weight": 664, + "method": "updateDocuments", + "group": "documents", + "weight": 412, "cookies": false, "type": "", - "demo": "domains\/get-preset-zoho.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "demo": "documentsdb\/update-documents.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/update-documents.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<DOMAIN_ID>", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "data": { + "type": "object", + "description": "Document data as JSON object. Include only attribute and value pairs to be updated.", + "default": [], + "x-example": "{}" + }, + "queries": { + "type": "array", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "default": null, + "x-example": "<TRANSACTION_ID>" + } + } + } } ] }, - "post": { - "summary": "Create Zoho Mail preset (Records)", - "operationId": "domainsCreatePresetZoho", + "delete": { + "summary": "Delete documents", + "operationId": "documentsDBDeleteDocuments", "consumes": [ "application\/json" ], @@ -18697,105 +19069,169 @@ "application\/json" ], "tags": [ - "domains" + "documentsDB" ], - "description": " Add Zoho Mail DNS records to the domain. This will create the required MX records\n for setting up Zoho Mail on your domain.", + "description": "Bulk delete documents using queries, if no queries are passed then all documents are deleted.", "responses": { - "201": { - "description": "DNS records list", + "200": { + "description": "Documents List", "schema": { - "$ref": "#\/definitions\/dnsRecordsList" + "$ref": "#\/definitions\/documentList" } } }, "deprecated": false, "x-appwrite": { - "method": "createPresetZoho", - "group": null, - "weight": 663, + "method": "deleteDocuments", + "group": "documents", + "weight": 416, "cookies": false, "type": "", - "demo": "domains\/create-preset-zoho.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "demo": "documentsdb\/delete-documents.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/delete-documents.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<DOMAIN_ID>", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "queries": { + "type": "array", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "default": null, + "x-example": "<TRANSACTION_ID>" + } + } + } } ] } }, - "\/domains\/{domainId}\/records": { + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { "get": { - "summary": "List DNS records for a given domain.", - "operationId": "domainsListRecords", + "summary": "Get document", + "operationId": "documentsDBGetDocument", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "domains" + "documentsDB" ], - "description": " List DNS records for a given domain. You can use this endpoint to list all the DNS records\n associated with your domain.", + "description": "Get a document by its unique ID. This endpoint response returns a JSON object with the document data.", "responses": { "200": { - "description": "DNS records list", + "description": "Document", "schema": { - "$ref": "#\/definitions\/dnsRecordsList" + "$ref": "#\/definitions\/document" } } }, "deprecated": false, "x-appwrite": { - "method": "listRecords", - "group": null, - "weight": 658, + "method": "getDocument", + "group": "documents", + "weight": 410, "cookies": false, "type": "", - "demo": "domains\/list-records.md", + "demo": "documentsdb\/get-document.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.read", + "scope": "documents.read", "platforms": [ - "console" + "console", + "client", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/get-document.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [], + "JWT": [] } ], "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "type": "string", + "x-example": "<DOCUMENT_ID>", + "in": "path" + }, { "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.", + "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, "type": "array", "collectionFormat": "multi", @@ -18806,20 +19242,18 @@ "in": "query" }, { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", + "required": false, "type": "string", - "x-example": "<DOMAIN_ID>", - "in": "path" + "x-example": "<TRANSACTION_ID>", + "in": "query" } ] - } - }, - "\/domains\/{domainId}\/records\/a": { - "post": { - "summary": "Create a new A record for the given domain.", - "operationId": "domainsCreateRecordA", + }, + "put": { + "summary": "Upsert a document", + "operationId": "documentsDBUpsertDocument", "consumes": [ "application\/json" ], @@ -18827,50 +19261,103 @@ "application\/json" ], "tags": [ - "domains" + "documentsDB" ], - "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.", + "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": "DNSRecord", + "description": "Document", "schema": { - "$ref": "#\/definitions\/dnsRecord" + "$ref": "#\/definitions\/document" } } }, "deprecated": false, "x-appwrite": { - "method": "createRecordA", - "group": null, - "weight": 636, + "method": "upsertDocument", + "group": "documents", + "weight": 413, "cookies": false, "type": "", - "demo": "domains\/create-record-a.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "demo": "documentsdb\/upsert-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", "platforms": [ - "console" + "console", + "client", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/upsert-document.md", + "methods": [ + { + "name": "upsertDocument", + "namespace": "documentsDB", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documentId" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/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": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<DOMAIN_ID>", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "type": "string", + "x-example": "<DOCUMENT_ID>", "in": "path" }, { @@ -18879,46 +19366,35 @@ "schema": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "Record name (subdomain).", - "default": null, - "x-example": "<NAME>" - }, - "value": { - "type": "string", - "description": "IPv4 address for this A record.", - "default": null, - "x-example": null + "data": { + "type": "object", + "description": "Document data as JSON object. Include all required fields of the document to be created or updated.", + "default": [], + "x-example": "{}" }, - "ttl": { - "type": "integer", - "description": "Time to live, in seconds. Must be greater than 0.", + "permissions": { + "type": "array", + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", "default": null, - "x-example": 1, - "format": "int32" + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } }, - "comment": { + "transactionId": { "type": "string", - "description": "A comment explaining what this record is for.", - "default": "", - "x-example": "<COMMENT>" + "description": "Transaction ID for staging the operation.", + "default": null, + "x-example": "<TRANSACTION_ID>" } - }, - "required": [ - "name", - "value", - "ttl" - ] + } } } ] - } - }, - "\/domains\/{domainId}\/records\/a\/{recordId}": { - "put": { - "summary": "Update an existing A record for the given domain.", - "operationId": "domainsUpdateRecordA", + }, + "patch": { + "summary": "Update document", + "operationId": "documentsDBUpdateDocument", "consumes": [ "application\/json" ], @@ -18926,58 +19402,71 @@ "application\/json" ], "tags": [ - "domains" + "documentsDB" ], - "description": " Update an existing A record for the given domain. This endpoint allows you to modify \n the properties of an A record including its name (subdomain), IPv4 address, TTL, \n and optional comment.", + "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": "DNSRecord", + "description": "Document", "schema": { - "$ref": "#\/definitions\/dnsRecord" + "$ref": "#\/definitions\/document" } } }, "deprecated": false, "x-appwrite": { - "method": "updateRecordA", - "group": null, - "weight": 637, + "method": "updateDocument", + "group": "documents", + "weight": 411, "cookies": false, "type": "", - "demo": "domains\/update-record-a.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "demo": "documentsdb\/update-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", "platforms": [ - "console" + "console", + "client", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/update-document.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<DOMAIN_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "recordId", - "description": "DNS record unique ID.", + "name": "collectionId", + "description": "Collection ID.", "required": true, "type": "string", - "x-example": "<RECORD_ID>", + "x-example": "<COLLECTION_ID>", + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "type": "string", + "x-example": "<DOCUMENT_ID>", "in": "path" }, { @@ -18986,97 +19475,102 @@ "schema": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "Record name (subdomain).", - "default": null, - "x-example": "<NAME>" - }, - "value": { - "type": "string", - "description": "IPv4 address for this A record.", - "default": null, - "x-example": null + "data": { + "type": "object", + "description": "Document data as JSON object. Include only fields and value pairs to be updated.", + "default": [], + "x-example": "{}" }, - "ttl": { - "type": "integer", - "description": "Time to live, in seconds. Must be greater than 0.", + "permissions": { + "type": "array", + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", "default": null, - "x-example": 1, - "format": "int32" + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } }, - "comment": { + "transactionId": { "type": "string", - "description": "A comment explaining what this record is for.", - "default": "", - "x-example": "<COMMENT>" + "description": "Transaction ID for staging the operation.", + "default": null, + "x-example": "<TRANSACTION_ID>" } - }, - "required": [ - "name", - "value", - "ttl" - ] + } } } ] - } - }, - "\/domains\/{domainId}\/records\/aaaa": { - "post": { - "summary": "Create a new AAAA record for the given domain.", - "operationId": "domainsCreateRecordAAAA", + }, + "delete": { + "summary": "Delete document", + "operationId": "documentsDBDeleteDocument", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ - "domains" + "documentsDB" ], - "description": " Create a new AAAA record for the given domain. This endpoint allows you to add a new IPv6 DNS record \n to your domain. The record will be used to point a hostname to an IPv6 address.", + "description": "Delete a document by its unique ID.", "responses": { - "201": { - "description": "DNSRecord", - "schema": { - "$ref": "#\/definitions\/dnsRecord" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "createRecordAAAA", - "group": null, - "weight": 638, + "method": "deleteDocument", + "group": "documents", + "weight": 415, "cookies": false, "type": "", - "demo": "domains\/create-record-aaaa.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "demo": "documentsdb\/delete-document.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", "platforms": [ - "console" + "console", + "client", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/delete-document.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<DOMAIN_ID>", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "type": "string", + "x-example": "<DOCUMENT_ID>", "in": "path" }, { @@ -19085,81 +19579,56 @@ "schema": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "Record name (subdomain).", - "default": null, - "x-example": "<NAME>" - }, - "value": { + "transactionId": { "type": "string", - "description": "IPv6 address for this AAAA record.", - "default": null, - "x-example": null - }, - "ttl": { - "type": "integer", - "description": "Time to live, in seconds. Must be greater than 0.", + "description": "Transaction ID for staging the operation.", "default": null, - "x-example": 1, - "format": "int32" - }, - "comment": { - "type": "string", - "description": "A comment explaining what this record is for.", - "default": "", - "x-example": "<COMMENT>" + "x-example": "<TRANSACTION_ID>" } - }, - "required": [ - "name", - "value", - "ttl" - ] + } } } ] } }, - "\/domains\/{domainId}\/records\/aaaa\/{recordId}": { - "put": { - "summary": "Update an existing AAAA record for the given domain.", - "operationId": "domainsUpdateRecordAAAA", - "consumes": [ - "application\/json" - ], + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/logs": { + "get": { + "summary": "List document logs", + "operationId": "documentsDBListDocumentLogs", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "domains" + "documentsDB" ], - "description": " Update an existing AAAA record for the given domain. This endpoint allows you to modify\n the properties of an existing AAAA record, including its name (subdomain), IPv6 address,\n TTL, and optional comment.", + "description": "Get the document activity logs list by its unique ID.", "responses": { "200": { - "description": "DNSRecord", + "description": "Logs List", "schema": { - "$ref": "#\/definitions\/dnsRecord" + "$ref": "#\/definitions\/logList" } } }, "deprecated": false, "x-appwrite": { - "method": "updateRecordAAAA", - "group": null, - "weight": 639, + "method": "listDocumentLogs", + "group": "logs", + "weight": 418, "cookies": false, "type": "", - "demo": "domains\/update-record-aaaa.md", + "demo": "documentsdb\/list-document-logs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "documents.read", "platforms": [ "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/get-document-logs.md", "auth": { "Project": [] } @@ -19171,67 +19640,48 @@ ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<DOMAIN_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "recordId", - "description": "DNS record unique ID.", + "name": "collectionId", + "description": "Collection ID.", "required": true, "type": "string", - "x-example": "<RECORD_ID>", + "x-example": "<COLLECTION_ID>", "in": "path" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Record name (subdomain).", - "default": null, - "x-example": "<NAME>" - }, - "value": { - "type": "string", - "description": "IPv6 address for this AAAA record.", - "default": null, - "x-example": null - }, - "ttl": { - "type": "integer", - "description": "Time to live, in seconds. Must be greater than 0.", - "default": null, - "x-example": 1, - "format": "int32" - }, - "comment": { - "type": "string", - "description": "A comment for this record.", - "default": "", - "x-example": "<COMMENT>" - } - }, - "required": [ - "name", - "value", - "ttl" - ] - } + "name": "documentId", + "description": "Document ID.", + "required": true, + "type": "string", + "x-example": "<DOCUMENT_ID>", + "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). Only supported methods are limit and offset", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" } ] } }, - "\/domains\/{domainId}\/records\/alias": { - "post": { - "summary": "Create a new ALIAS record for the given domain.", - "operationId": "domainsCreateRecordAlias", + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/decrement": { + "patch": { + "summary": "Decrement document attribute", + "operationId": "documentsDBDecrementDocumentAttribute", "consumes": [ "application\/json" ], @@ -19239,50 +19689,78 @@ "application\/json" ], "tags": [ - "domains" + "documentsDB" ], - "description": " Create a new ALIAS record for the given domain. This record type can be used to point your domain \n to another domain name that will serve as an alias. This is particularly useful when you want to \n map your domain to a target domain that may change its IP address.", + "description": "Decrement a specific column of a row by a given value.", "responses": { - "201": { - "description": "DNSRecord", + "200": { + "description": "Document", "schema": { - "$ref": "#\/definitions\/dnsRecord" + "$ref": "#\/definitions\/document" } } }, "deprecated": false, "x-appwrite": { - "method": "createRecordAlias", - "group": null, - "weight": 640, + "method": "decrementDocumentAttribute", + "group": "documents", + "weight": 420, "cookies": false, "type": "", - "demo": "domains\/create-record-alias.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "demo": "documentsdb\/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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/decrement-document-attribute.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "JWT": [], + "Key": [] } ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "type": "string", + "x-example": "<DOCUMENT_ID>", + "in": "path" + }, + { + "name": "attribute", + "description": "Attribute key.", "required": true, "type": "string", - "x-example": "<DOMAIN_ID>", "in": "path" }, { @@ -19291,46 +19769,36 @@ "schema": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "Record name.", - "default": null, - "x-example": "<NAME>" - }, "value": { - "type": "string", - "description": "Target domain for this ALIAS record.", - "default": null, - "x-example": "<VALUE>" + "type": "number", + "description": "Value to decrement the attribute by. The value must be a number.", + "default": 1, + "x-example": null, + "format": "float" }, - "ttl": { - "type": "integer", - "description": "Time to live, in seconds. Must be greater than 0.", + "min": { + "type": "number", + "description": "Minimum value for the attribute. If the current value is lesser than this value, an exception will be thrown.", "default": null, - "x-example": 1, - "format": "int32" + "x-example": null, + "format": "float" }, - "comment": { + "transactionId": { "type": "string", - "description": "A comment for this record.", - "default": "", - "x-example": "<COMMENT>" + "description": "Transaction ID for staging the operation.", + "default": null, + "x-example": "<TRANSACTION_ID>" } - }, - "required": [ - "name", - "value", - "ttl" - ] + } } } ] } }, - "\/domains\/{domainId}\/records\/alias\/{recordId}": { - "put": { - "summary": "Update an existing ALIAS record for the given domain.", - "operationId": "domainsUpdateRecordAlias", + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/increment": { + "patch": { + "summary": "Increment document attribute", + "operationId": "documentsDBIncrementDocumentAttribute", "consumes": [ "application\/json" ], @@ -19338,58 +19806,78 @@ "application\/json" ], "tags": [ - "domains" + "documentsDB" ], - "description": " Update an existing ALIAS record for the specified domain. This endpoint allows you to modify\n the properties of an existing ALIAS record including its name, target domain, TTL, and comment.\n \n The ALIAS record type is similar to a CNAME record but can be used at the zone apex (root domain).\n It provides a way to map one domain name to another.", + "description": "Increment a specific column of a row by a given value.", "responses": { "200": { - "description": "DNSRecord", + "description": "Document", "schema": { - "$ref": "#\/definitions\/dnsRecord" + "$ref": "#\/definitions\/document" } } }, "deprecated": false, "x-appwrite": { - "method": "updateRecordAlias", - "group": null, - "weight": 641, + "method": "incrementDocumentAttribute", + "group": "documents", + "weight": 419, "cookies": false, "type": "", - "demo": "domains\/update-record-alias.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "demo": "documentsdb\/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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/increment-document-attribute.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "JWT": [], + "Key": [] } ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<DOMAIN_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "recordId", - "description": "DNS record unique ID.", + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "type": "string", + "x-example": "<DOCUMENT_ID>", + "in": "path" + }, + { + "name": "attribute", + "description": "Attribute key.", "required": true, "type": "string", - "x-example": "<RECORD_ID>", "in": "path" }, { @@ -19398,145 +19886,124 @@ "schema": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "Record name.", - "default": null, - "x-example": "<NAME>" - }, "value": { - "type": "string", - "description": "Target domain for this ALIAS record.", - "default": null, - "x-example": "<VALUE>" + "type": "number", + "description": "Value to increment the attribute by. The value must be a number.", + "default": 1, + "x-example": null, + "format": "float" }, - "ttl": { - "type": "integer", - "description": "Time to live, in seconds. Must be greater than 0.", + "max": { + "type": "number", + "description": "Maximum value for the attribute. If the current value is greater than this value, an error will be thrown.", "default": null, - "x-example": 1, - "format": "int32" + "x-example": null, + "format": "float" }, - "comment": { + "transactionId": { "type": "string", - "description": "A comment for this record.", - "default": "", - "x-example": "<COMMENT>" + "description": "Transaction ID for staging the operation.", + "default": null, + "x-example": "<TRANSACTION_ID>" } - }, - "required": [ - "name", - "value", - "ttl" - ] + } } } ] } }, - "\/domains\/{domainId}\/records\/caa": { - "post": { - "summary": "Create a new CAA record for the given domain.", - "operationId": "domainsCreateRecordCAA", - "consumes": [ - "application\/json" - ], + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/indexes": { + "get": { + "summary": "List indexes", + "operationId": "documentsDBListIndexes", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "domains" + "documentsDB" ], - "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.", + "description": "List indexes in the collection.", "responses": { - "201": { - "description": "DNSRecord", + "200": { + "description": "Indexes List", "schema": { - "$ref": "#\/definitions\/dnsRecord" + "$ref": "#\/definitions\/indexList" } } }, "deprecated": false, "x-appwrite": { - "method": "createRecordCAA", - "group": null, - "weight": 642, + "method": "listIndexes", + "group": "indexes", + "weight": 408, "cookies": false, "type": "", - "demo": "domains\/create-record-caa.md", + "demo": "documentsdb\/list-indexes.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "collections.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/list-indexes.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<DOMAIN_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Record name.", - "default": null, - "x-example": null - }, - "value": { - "type": "string", - "description": "CAA value (e.g. issuer domain).", - "default": null, - "x-example": null - }, - "ttl": { - "type": "integer", - "description": "Time to live, in seconds. Must be greater than 0.", - "default": null, - "x-example": 1, - "format": "int32" - }, - "comment": { - "type": "string", - "description": "A comment for this record.", - "default": "", - "x-example": "<COMMENT>" - } - }, - "required": [ - "name", - "value", - "ttl" - ] - } + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", + "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, + "type": "array", + "collectionFormat": "multi", + "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, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" } ] - } - }, - "\/domains\/{domainId}\/records\/caa\/{recordId}": { - "put": { - "summary": "Update an existing CAA record for the given domain.", - "operationId": "domainsUpdateRecordCAA", + }, + "post": { + "summary": "Create index", + "operationId": "documentsDBCreateIndex", "consumes": [ "application\/json" ], @@ -19544,58 +20011,61 @@ "application\/json" ], "tags": [ - "domains" + "documentsDB" ], - "description": " Update an existing CAA record for the given domain. A CAA (Certification Authority Authorization) \n record is used to specify which certificate authorities (CAs) are authorized to issue certificates \n for a domain.", + "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": { - "200": { - "description": "DNSRecord", + "202": { + "description": "Index", "schema": { - "$ref": "#\/definitions\/dnsRecord" + "$ref": "#\/definitions\/index" } } }, "deprecated": false, "x-appwrite": { - "method": "updateRecordCAA", - "group": null, - "weight": 643, + "method": "createIndex", + "group": "indexes", + "weight": 405, "cookies": false, "type": "", - "demo": "domains\/update-record-caa.md", + "demo": "documentsdb\/create-index.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "collections.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/create-index.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<DOMAIN_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "recordId", - "description": "DNS record unique ID.", + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", "required": true, "type": "string", - "x-example": "<RECORD_ID>", + "x-example": "<COLLECTION_ID>", "in": "path" }, { @@ -19604,287 +20074,255 @@ "schema": { "type": "object", "properties": { - "name": { + "key": { "type": "string", - "description": "Record name.", + "description": "Index Key.", "default": null, "x-example": null }, - "value": { + "type": { "type": "string", - "description": "CAA value (e.g. issuer domain).", + "description": "Index type.", "default": null, - "x-example": null + "x-example": "key", + "enum": [ + "key", + "fulltext", + "unique", + "spatial" + ], + "x-enum-name": "IndexType", + "x-enum-keys": [] }, - "ttl": { - "type": "integer", - "description": "Time to live, in seconds. Must be greater than 0.", + "attributes": { + "type": "array", + "description": "Array of attributes to index. Maximum of 100 attributes are allowed, each 32 characters long.", "default": null, - "x-example": 1, - "format": "int32" + "x-example": null, + "items": { + "type": "string" + } }, - "comment": { - "type": "string", - "description": "A comment for this record.", - "default": "", - "x-example": "<COMMENT>" + "orders": { + "type": "array", + "description": "Array of index orders. Maximum of 100 orders are allowed.", + "default": [], + "x-example": null, + "items": { + "type": "string", + "enum": [ + "asc", + "desc" + ], + "x-enum-name": "OrderBy", + "x-enum-keys": [] + } + }, + "lengths": { + "type": "array", + "description": "Length of index. Maximum of 100", + "default": [], + "x-example": null, + "items": { + "type": "integer" + } } }, "required": [ - "name", - "value", - "ttl" - ] + "key", + "type", + "attributes" + ] } } ] } }, - "\/domains\/{domainId}\/records\/cname": { - "post": { - "summary": "Create a new CNAME record for the given domain.", - "operationId": "domainsCreateRecordCNAME", - "consumes": [ - "application\/json" - ], + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/indexes\/{key}": { + "get": { + "summary": "Get index", + "operationId": "documentsDBGetIndex", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "domains" + "documentsDB" ], - "description": " Create a new CNAME record for the given domain.\n \n A CNAME record maps a subdomain to another domain name, allowing you to create aliases \n for your domain. For example, you can create a CNAME record to point 'blog.example.com' \n to 'example.wordpress.com'.", + "description": "Get index by ID.", "responses": { - "201": { - "description": "DNSRecord", + "200": { + "description": "Index", "schema": { - "$ref": "#\/definitions\/dnsRecord" + "$ref": "#\/definitions\/index" } } }, "deprecated": false, "x-appwrite": { - "method": "createRecordCNAME", - "group": null, - "weight": 644, + "method": "getIndex", + "group": "indexes", + "weight": 406, "cookies": false, "type": "", - "demo": "domains\/create-record-cname.md", + "demo": "documentsdb\/get-index.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "collections.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/get-index.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<DOMAIN_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Record name (subdomain).", - "default": null, - "x-example": "<NAME>" - }, - "value": { - "type": "string", - "description": "Canonical target for this CNAME record.", - "default": null, - "x-example": "<VALUE>" - }, - "ttl": { - "type": "integer", - "description": "Time to live, in seconds. Must be greater than 0.", - "default": null, - "x-example": 1, - "format": "int32" - }, - "comment": { - "type": "string", - "description": "A comment for this record.", - "default": "", - "x-example": "<COMMENT>" - } - }, - "required": [ - "name", - "value", - "ttl" - ] - } + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", + "in": "path" + }, + { + "name": "key", + "description": "Index Key.", + "required": true, + "type": "string", + "in": "path" } ] - } - }, - "\/domains\/{domainId}\/records\/cname\/{recordId}": { - "put": { - "summary": "Update an existing CNAME record for the given domain.", - "operationId": "domainsUpdateRecordCNAME", + }, + "delete": { + "summary": "Delete index", + "operationId": "documentsDBDeleteIndex", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ - "domains" + "documentsDB" ], - "description": " Update an existing CNAME record for the given domain.", + "description": "Delete an index.", "responses": { - "200": { - "description": "DNSRecord", - "schema": { - "$ref": "#\/definitions\/dnsRecord" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateRecordCNAME", - "group": null, - "weight": 645, + "method": "deleteIndex", + "group": "indexes", + "weight": 407, "cookies": false, "type": "", - "demo": "domains\/update-record-cname.md", + "demo": "documentsdb\/delete-index.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "collections.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/delete-index.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<DOMAIN_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "recordId", - "description": "DNS record unique ID.", + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", "required": true, "type": "string", - "x-example": "<RECORD_ID>", + "x-example": "<COLLECTION_ID>", "in": "path" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Record name (subdomain).", - "default": null, - "x-example": "<NAME>" - }, - "value": { - "type": "string", - "description": "Canonical target for this CNAME record.", - "default": null, - "x-example": "<VALUE>" - }, - "ttl": { - "type": "integer", - "description": "Time to live, in seconds. Must be greater than 0.", - "default": null, - "x-example": 1, - "format": "int32" - }, - "comment": { - "type": "string", - "description": "A comment for this record.", - "default": "", - "x-example": "<COMMENT>" - } - }, - "required": [ - "name", - "value", - "ttl" - ] - } + "name": "key", + "description": "Index Key.", + "required": true, + "type": "string", + "in": "path" } ] } }, - "\/domains\/{domainId}\/records\/https": { - "post": { - "summary": "Create a new HTTPS record for the given domain.", - "operationId": "domainsCreateRecordHTTPS", - "consumes": [ - "application\/json" - ], + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/logs": { + "get": { + "summary": "List collection logs", + "operationId": "documentsDBListCollectionLogs", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "domains" + "documentsDB" ], - "description": " Create a new HTTPS record for the given domain. This record is used to configure HTTPS \n settings for your domain, enabling secure communication over SSL\/TLS.", + "description": "Get the collection activity logs list by its unique ID.", "responses": { - "201": { - "description": "DNSRecord", + "200": { + "description": "Logs List", "schema": { - "$ref": "#\/definitions\/dnsRecord" + "$ref": "#\/definitions\/logList" } } }, "deprecated": false, "x-appwrite": { - "method": "createRecordHTTPS", - "group": null, - "weight": 646, + "method": "listCollectionLogs", + "group": "collections", + "weight": 403, "cookies": false, "type": "", - "demo": "domains\/create-record-https.md", + "demo": "documentsdb\/list-collection-logs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "collections.read", "platforms": [ "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/get-collection-logs.md", "auth": { "Project": [] } @@ -19896,94 +20334,74 @@ ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<DOMAIN_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Record name (subdomain).", - "default": null, - "x-example": "<NAME>" - }, - "value": { - "type": "string", - "description": "Target for the HTTPS record.", - "default": null, - "x-example": "<VALUE>" - }, - "ttl": { - "type": "integer", - "description": "Time to live, in seconds. Must be greater than 0.", - "default": null, - "x-example": 1, - "format": "int32" - }, - "comment": { - "type": "string", - "description": "A comment for this record.", - "default": "", - "x-example": "<COMMENT>" - } - }, - "required": [ - "name", - "value", - "ttl" - ] - } + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", + "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). Only supported methods are limit and offset", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" } ] } }, - "\/domains\/{domainId}\/records\/https\/{recordId}": { - "put": { - "summary": "Update an existing HTTPS record for the given domain.", - "operationId": "domainsUpdateRecordHTTPS", - "consumes": [ - "application\/json" - ], + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/usage": { + "get": { + "summary": "Get collection usage stats", + "operationId": "documentsDBGetCollectionUsage", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "domains" + "documentsDB" ], - "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.", + "description": "Get usage metrics and statistics for a collection. Returning the total number of documents. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.", "responses": { "200": { - "description": "DNSRecord", + "description": "UsageCollection", "schema": { - "$ref": "#\/definitions\/dnsRecord" + "$ref": "#\/definitions\/usageCollection" } } }, "deprecated": false, "x-appwrite": { - "method": "updateRecordHTTPS", + "method": "getCollectionUsage", "group": null, - "weight": 647, + "weight": 404, "cookies": false, "type": "", - "demo": "domains\/update-record-https.md", + "demo": "documentsdb\/get-collection-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "collections.read", "platforms": [ "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/get-collection-usage.md", "auth": { "Project": [] } @@ -19995,102 +20413,108 @@ ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<DOMAIN_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "recordId", - "description": "DNS record unique ID.", - "required": true, + "name": "range", + "description": "Date range.", + "required": false, "type": "string", - "x-example": "<RECORD_ID>", - "in": "path" + "x-example": "24h", + "enum": [ + "24h", + "30d", + "90d" + ], + "x-enum-name": "UsageRange", + "x-enum-keys": [ + "Twenty Four Hours", + "Thirty Days", + "Ninety Days" + ], + "default": "30d", + "in": "query" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Record name (subdomain).", - "default": null, - "x-example": "<NAME>" - }, - "value": { - "type": "string", - "description": "Target for the HTTPS record.", - "default": null, - "x-example": "<VALUE>" - }, - "ttl": { - "type": "integer", - "description": "Time to live, in seconds. Must be greater than 0.", - "default": null, - "x-example": 1, - "format": "int32" - }, - "comment": { - "type": "string", - "description": "A comment for this record.", - "default": "", - "x-example": "<COMMENT>" - } - }, - "required": [ - "name", - "value", - "ttl" - ] - } + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", + "in": "path" } ] } }, - "\/domains\/{domainId}\/records\/mx": { - "post": { - "summary": "Create a new MX record for the given domain.", - "operationId": "domainsCreateRecordMX", - "consumes": [ - "application\/json" - ], + "\/documentsdb\/{databaseId}\/usage": { + "get": { + "summary": "Get DocumentsDB usage stats", + "operationId": "documentsDBGetUsage", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "domains" + "documentsDB" ], - "description": " Create a new MX record for the given domain. MX records are used to define the mail servers responsible \n for accepting email messages for the domain. Multiple MX records can be created with different priorities.\n The priority parameter determines the order in which mail servers are used, with lower values indicating \n higher priority.", + "description": "Get usage metrics and statistics for a database. You can view the total number of collections, documents, and storage usage. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.", "responses": { - "201": { - "description": "DNSRecord", + "200": { + "description": "UsageDocumentsDB", "schema": { - "$ref": "#\/definitions\/dnsRecord" + "$ref": "#\/definitions\/usageDocumentsDB" } } }, "deprecated": false, "x-appwrite": { - "method": "createRecordMX", + "method": "getUsage", "group": null, - "weight": 648, + "weight": 396, "cookies": false, "type": "", - "demo": "domains\/create-record-mx.md", + "demo": "documentsdb\/get-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "collections.read", "platforms": [ "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/get-database-usage.md", + "methods": [ + { + "name": "getUsage", + "namespace": "documentsDB", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "range" + ], + "required": [ + "databaseId" + ], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/usageDocumentsDB" + } + ], + "description": "Get usage metrics and statistics for a database. You can view the total number of collections, documents, and storage usage. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.", + "demo": "documentsdb\/get-usage.md", + "public": true + } + ], "auth": { "Project": [] } @@ -20102,97 +20526,68 @@ ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<DOMAIN_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Record name (subdomain).", - "default": null, - "x-example": "<NAME>" - }, - "value": { - "type": "string", - "description": "Mail server domain for this MX record.", - "default": null, - "x-example": "<VALUE>" - }, - "ttl": { - "type": "integer", - "description": "Time to live, in seconds. Must be greater than 0.", - "default": null, - "x-example": 1, - "format": "int32" - }, - "priority": { - "type": "integer", - "description": "MX priority.", - "default": null, - "x-example": null, - "format": "int32" - }, - "comment": { - "type": "string", - "description": "A comment for this record.", - "default": "", - "x-example": "<COMMENT>" - } - }, - "required": [ - "name", - "value", - "ttl", - "priority" - ] - } + "name": "range", + "description": "Date range.", + "required": false, + "type": "string", + "x-example": "24h", + "enum": [ + "24h", + "30d", + "90d" + ], + "x-enum-name": "UsageRange", + "x-enum-keys": [ + "Twenty Four Hours", + "Thirty Days", + "Ninety Days" + ], + "default": "30d", + "in": "query" } ] } }, - "\/domains\/{domainId}\/records\/mx\/{recordId}": { - "put": { - "summary": "Update an existing MX record for the given domain.", - "operationId": "domainsUpdateRecordMX", - "consumes": [ - "application\/json" - ], + "\/domains": { + "get": { + "summary": "List domains", + "operationId": "domainsList", + "consumes": [], "produces": [ "application\/json" ], "tags": [ "domains" ], - "description": " Update an existing MX record for the given domain.", + "description": " List all domains registered for this project. This endpoint supports pagination.", "responses": { "200": { - "description": "DNSRecord", + "description": "Domains list", "schema": { - "$ref": "#\/definitions\/dnsRecord" + "$ref": "#\/definitions\/domainsList" } } }, "deprecated": false, "x-appwrite": { - "method": "updateRecordMX", + "method": "list", "group": null, - "weight": 649, + "weight": 647, "cookies": false, "type": "", - "demo": "domains\/update-record-mx.md", + "demo": "domains\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "domains.read", "platforms": [ "console" ], @@ -20209,75 +20604,31 @@ ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "type": "string", - "x-example": "<DOMAIN_ID>", - "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\/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, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" }, { - "name": "recordId", - "description": "DNS record unique ID.", - "required": true, + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, "type": "string", - "x-example": "<RECORD_ID>", - "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Record name (subdomain).", - "default": null, - "x-example": "<NAME>" - }, - "value": { - "type": "string", - "description": "Mail server domain for this MX record.", - "default": null, - "x-example": "<VALUE>" - }, - "ttl": { - "type": "integer", - "description": "Time to live, in seconds. Must be greater than 0.", - "default": null, - "x-example": 1, - "format": "int32" - }, - "priority": { - "type": "integer", - "description": "MX priority.", - "default": null, - "x-example": null, - "format": "int32" - }, - "comment": { - "type": "string", - "description": "A comment for this record.", - "default": "", - "x-example": "<COMMENT>" - } - }, - "required": [ - "name", - "value", - "ttl", - "priority" - ] - } + "x-example": "<SEARCH>", + "default": "", + "in": "query" } ] - } - }, - "\/domains\/{domainId}\/records\/ns": { + }, "post": { - "summary": "Create a new NS record for the given domain.", - "operationId": "domainsCreateRecordNS", + "summary": "Create a new domain.", + "operationId": "domainsCreate", "consumes": [ "application\/json" ], @@ -20287,23 +20638,23 @@ "tags": [ "domains" ], - "description": " Create a new NS record for the given domain. NS records specify the nameservers that are used \n to resolve the domain name to IP addresses. Each domain can have multiple NS records.", + "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": "DNSRecord", + "description": "Domain", "schema": { - "$ref": "#\/definitions\/dnsRecord" + "$ref": "#\/definitions\/domain" } } }, "deprecated": false, "x-appwrite": { - "method": "createRecordNS", + "method": "create", "group": null, - "weight": 650, + "weight": 642, "cookies": false, "type": "", - "demo": "domains\/create-record-ns.md", + "demo": "domains\/create.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -20323,90 +20674,66 @@ } ], "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "type": "string", - "x-example": "<DOMAIN_ID>", - "in": "path" - }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "name": { + "teamId": { "type": "string", - "description": "Record name (subdomain).", + "description": "Team unique ID.", "default": null, - "x-example": "<NAME>" + "x-example": "<TEAM_ID>" }, - "value": { + "domain": { "type": "string", - "description": "Nameserver target for this NS record.", - "default": null, - "x-example": "<VALUE>" - }, - "ttl": { - "type": "integer", - "description": "Time to live, in seconds. Must be greater than 0.", + "description": "Domain name (e.g. \"example.com\").", "default": null, - "x-example": 1, - "format": "int32" - }, - "comment": { - "type": "string", - "description": "A comment for this record.", - "default": "", - "x-example": "<COMMENT>" + "x-example": null } }, "required": [ - "name", - "value", - "ttl" + "teamId", + "domain" ] } } ] } }, - "\/domains\/{domainId}\/records\/ns\/{recordId}": { - "put": { - "summary": "Update an existing NS record for the given domain.", - "operationId": "domainsUpdateRecordNS", - "consumes": [ - "application\/json" - ], + "\/domains\/price": { + "get": { + "summary": "Get domain price", + "operationId": "domainsGetPrice", + "consumes": [], "produces": [ "application\/json" ], "tags": [ "domains" ], - "description": " Update an existing NS record for the given domain. This endpoint allows you to modify \n the properties of an NS (nameserver) record associated with your domain. You can update \n the record name (subdomain), target nameserver value, TTL, and add or modify comments \n for better record management.", + "description": " Get the registration price for a domain name.", "responses": { "200": { - "description": "DNSRecord", + "description": "DomainPrice", "schema": { - "$ref": "#\/definitions\/dnsRecord" + "$ref": "#\/definitions\/domainPrice" } } }, "deprecated": false, "x-appwrite": { - "method": "updateRecordNS", + "method": "getPrice", "group": null, - "weight": 651, + "weight": 645, "cookies": false, "type": "", - "demo": "domains\/update-record-ns.md", + "demo": "domains\/get-price.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "domains.read", "platforms": [ "console" ], @@ -20423,67 +20750,45 @@ ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "domain", + "description": "Domain name to get price for.", "required": true, "type": "string", - "x-example": "<DOMAIN_ID>", - "in": "path" + "in": "query" }, { - "name": "recordId", - "description": "DNS record unique ID.", - "required": true, - "type": "string", - "x-example": "<RECORD_ID>", - "in": "path" + "name": "periodYears", + "description": "Number of years to calculate the domain price for. Must be at least 1.", + "required": false, + "type": "integer", + "format": "uint32", + "default": 1, + "in": "query" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Record name (subdomain).", - "default": null, - "x-example": "<NAME>" - }, - "value": { - "type": "string", - "description": "Nameserver target for this NS record.", - "default": null, - "x-example": "<VALUE>" - }, - "ttl": { - "type": "integer", - "description": "Time to live, in seconds. Must be greater than 0.", - "default": null, - "x-example": 1, - "format": "int32" - }, - "comment": { - "type": "string", - "description": "A comment for this record.", - "default": "", - "x-example": "<COMMENT>" - } - }, - "required": [ - "name", - "value", - "ttl" - ] - } + "name": "registrationType", + "description": "Type of registration pricing to fetch. Allowed values: new, transfer, renewal, trade.", + "required": false, + "type": "string", + "x-example": "new", + "enum": [ + "new", + "transfer", + "renewal", + "trade" + ], + "x-enum-name": null, + "x-enum-keys": [], + "default": "new", + "in": "query" } ] } }, - "\/domains\/{domainId}\/records\/srv": { + "\/domains\/purchases": { "post": { - "summary": "Create a new SRV record for the given domain.", - "operationId": "domainsCreateRecordSRV", + "summary": "Create a domain purchase", + "operationId": "domainsCreatePurchase", "consumes": [ "application\/json" ], @@ -20493,27 +20798,27 @@ "tags": [ "domains" ], - "description": " Create a new SRV record for the given domain. SRV records are used to define the location \n of servers for specific services. For example, they can be used to specify which server \n handles a specific service like SIP or XMPP for the domain.", + "description": " Create a domain purchase with registrant information.", "responses": { "201": { - "description": "DNSRecord", + "description": "Domain", "schema": { - "$ref": "#\/definitions\/dnsRecord" + "$ref": "#\/definitions\/domain" } } }, "deprecated": false, "x-appwrite": { - "method": "createRecordSRV", + "method": "createPurchase", "group": null, - "weight": 652, + "weight": 690, "cookies": false, "type": "", - "demo": "domains\/create-record-srv.md", + "demo": "domains\/create-purchase.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "billing.write", "platforms": [ "console" ], @@ -20529,114 +20834,129 @@ } ], "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "type": "string", - "x-example": "<DOMAIN_ID>", - "in": "path" - }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "name": { + "domain": { "type": "string", - "description": "Record name (service name).", + "description": "Fully qualified domain name to purchase (for example, example.com).", "default": null, - "x-example": "<NAME>" + "x-example": null }, - "value": { + "organizationId": { "type": "string", - "description": "Target hostname for this SRV record.", + "description": "Team ID that will own the domain.", "default": null, - "x-example": "<VALUE>" + "x-example": "<ORGANIZATION_ID>" }, - "ttl": { - "type": "integer", - "description": "Time to live, in seconds. Must be greater than 0.", + "firstName": { + "type": "string", + "description": "Registrant first name used for domain registration.", "default": null, - "x-example": 1, - "format": "int32" + "x-example": "<FIRST_NAME>" }, - "priority": { - "type": "integer", - "description": "Record priority.", + "lastName": { + "type": "string", + "description": "Registrant last name used for domain registration.", "default": null, - "x-example": null, - "format": "int32" + "x-example": "<LAST_NAME>" }, - "weight": { - "type": "integer", - "description": "Record weight.", + "email": { + "type": "string", + "description": "Registrant email address for registration and notices.", "default": null, - "x-example": null, - "format": "int32" + "x-example": "email@example.com", + "format": "email" }, - "port": { - "type": "integer", - "description": "Port number for the service.", + "phone": { + "type": "string", + "description": "Registrant phone number in E.164 format (for example, +15555551234).", "default": null, - "x-example": null, - "format": "int32" + "x-example": "+12065550100", + "format": "phone" }, - "comment": { + "billingAddressId": { "type": "string", - "description": "A comment for this record.", + "description": "Billing address ID used for registration contact details.", + "default": null, + "x-example": "<BILLING_ADDRESS_ID>" + }, + "addressLine3": { + "type": "string", + "description": "Additional address line for the registrant (line 3).", "default": "", - "x-example": "<COMMENT>" + "x-example": "<ADDRESS_LINE3>" + }, + "companyName": { + "type": "string", + "description": "Company or organization name for the registrant.", + "default": "", + "x-example": "<COMPANY_NAME>" + }, + "periodYears": { + "type": "integer", + "description": "Registration term in years (1-10).", + "default": 1, + "x-example": 1, + "format": "int32" + }, + "paymentMethodId": { + "type": "string", + "description": "Payment method ID to authorize and capture the purchase.", + "default": null, + "x-example": "<PAYMENT_METHOD_ID>" } }, "required": [ - "name", - "value", - "ttl", - "priority", - "weight", - "port" + "domain", + "organizationId", + "firstName", + "lastName", + "email", + "phone", + "billingAddressId", + "paymentMethodId" ] } } ] } }, - "\/domains\/{domainId}\/records\/srv\/{recordId}": { - "put": { - "summary": "Update an existing SRV record for the given domain.", - "operationId": "domainsUpdateRecordSRV", - "consumes": [ - "application\/json" - ], + "\/domains\/suggestions": { + "get": { + "summary": "List domain suggestions", + "operationId": "domainsListSuggestions", + "consumes": [], "produces": [ "application\/json" ], "tags": [ "domains" ], - "description": " Update an existing SRV record for the given domain.\n \n Required 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 \n Optional parameters:\n - comment: A comment for this record", + "description": " List domain suggestions.", "responses": { "200": { - "description": "DNSRecord", + "description": "Domain suggestions list", "schema": { - "$ref": "#\/definitions\/dnsRecord" + "$ref": "#\/definitions\/domainSuggestionsList" } } }, "deprecated": false, "x-appwrite": { - "method": "updateRecordSRV", + "method": "listSuggestions", "group": null, - "weight": 653, + "weight": 689, "cookies": false, "type": "", - "demo": "domains\/update-record-srv.md", - "rate-limit": 0, + "demo": "domains\/list-suggestions.md", + "rate-limit": 50, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "domains.read", "platforms": [ "console" ], @@ -20653,91 +20973,70 @@ ], "parameters": [ { - "name": "domainId", - "description": "Domain unique ID.", + "name": "query", + "description": "Query to find available domains and suggestions. Max length: 256 chars.", "required": true, "type": "string", - "x-example": "<DOMAIN_ID>", - "in": "path" + "x-example": "<QUERY>", + "in": "query" }, { - "name": "recordId", - "description": "DNS record unique ID.", - "required": true, + "name": "tlds", + "description": "TLDs to suggest.", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + }, + { + "name": "limit", + "description": "Maximum number of suggestions to return.", + "required": false, + "type": "integer", + "format": "int32", + "in": "query" + }, + { + "name": "filterType", + "description": "Filter type: premium, suggestion.", + "required": false, "type": "string", - "x-example": "<RECORD_ID>", - "in": "path" + "x-example": "premium", + "enum": [ + "premium", + "suggestion" + ], + "x-enum-name": null, + "x-enum-keys": [], + "in": "query" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Record name (service name).", - "default": null, - "x-example": "<NAME>" - }, - "value": { - "type": "string", - "description": "Target hostname for this SRV record.", - "default": null, - "x-example": "<VALUE>" - }, - "ttl": { - "type": "integer", - "description": "Time to live, in seconds. Must be greater than 0.", - "default": null, - "x-example": 1, - "format": "int32" - }, - "priority": { - "type": "integer", - "description": "Record priority.", - "default": null, - "x-example": null, - "format": "int32" - }, - "weight": { - "type": "integer", - "description": "Record weight.", - "default": null, - "x-example": null, - "format": "int32" - }, - "port": { - "type": "integer", - "description": "Port number for the service.", - "default": null, - "x-example": null, - "format": "int32" - }, - "comment": { - "type": "string", - "description": "A comment for this record.", - "default": "", - "x-example": "<COMMENT>" - } - }, - "required": [ - "name", - "value", - "ttl", - "priority", - "weight", - "port" - ] - } + "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, + "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, + "type": "integer", + "format": "int32", + "in": "query" } ] } }, - "\/domains\/{domainId}\/records\/txt": { + "\/domains\/transfers\/in": { "post": { - "summary": "Create a new TXT record for the given domain.", - "operationId": "domainsCreateRecordTXT", + "summary": "Create a domain transfer in.", + "operationId": "domainsCreateTransferIn", "consumes": [ "application\/json" ], @@ -20747,27 +21046,27 @@ "tags": [ "domains" ], - "description": " Create a new TXT record for the given domain. TXT records can be used \n to provide additional information about your domain, such as domain \n verification records, SPF records, or DKIM records.", + "description": " Create a domain transfer in with authorization code and registrant information.", "responses": { "201": { - "description": "DNSRecord", + "description": "Domain", "schema": { - "$ref": "#\/definitions\/dnsRecord" + "$ref": "#\/definitions\/domain" } } }, "deprecated": false, "x-appwrite": { - "method": "createRecordTXT", + "method": "createTransferIn", "group": null, - "weight": 654, + "weight": 651, "cookies": false, "type": "", - "demo": "domains\/create-record-txt.md", + "demo": "domains\/create-transfer-in.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "billing.write", "platforms": [ "console" ], @@ -20783,59 +21082,52 @@ } ], "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "type": "string", - "x-example": "<DOMAIN_ID>", - "in": "path" - }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "name": { + "domain": { "type": "string", - "description": "Record name (subdomain) for the TXT record.", + "description": "Domain name to transfer in.", "default": null, - "x-example": "<NAME>" + "x-example": null }, - "value": { + "organizationId": { "type": "string", - "description": "TXT record value.", - "default": "", - "x-example": "<VALUE>" + "description": "Organization ID that this domain will belong to.", + "default": null, + "x-example": "<ORGANIZATION_ID>" }, - "ttl": { - "type": "integer", - "description": "Time to live, in seconds. Must be greater than 0.", + "authCode": { + "type": "string", + "description": "Authorization code for the domain transfer.", "default": null, - "x-example": 1, - "format": "int32" + "x-example": "<AUTH_CODE>" }, - "comment": { + "paymentMethodId": { "type": "string", - "description": "A comment for this record.", - "default": "", - "x-example": "<COMMENT>" + "description": "Payment method ID to authorize and capture the transfer.", + "default": null, + "x-example": "<PAYMENT_METHOD_ID>" } }, "required": [ - "name", - "ttl" + "domain", + "organizationId", + "authCode", + "paymentMethodId" ] } } ] } }, - "\/domains\/{domainId}\/records\/txt\/{recordId}": { - "put": { - "summary": "Update an existing TXT record for the given domain.", - "operationId": "domainsUpdateRecordTXT", + "\/domains\/transfers\/out": { + "post": { + "summary": "Create a domain transfer out.", + "operationId": "domainsCreateTransferOut", "consumes": [ "application\/json" ], @@ -20845,27 +21137,27 @@ "tags": [ "domains" ], - "description": " Update an existing TXT record for the given domain.\n \n Update the TXT record details for a specific domain by providing the domain ID,\n record ID, and the new record configuration including name, value, TTL, and an optional comment.", + "description": " Create a domain transfer out and return the authorization code.", "responses": { - "200": { - "description": "DNSRecord", + "202": { + "description": "domainTransferOut", "schema": { - "$ref": "#\/definitions\/dnsRecord" + "$ref": "#\/definitions\/domainTransferOut" } } }, "deprecated": false, "x-appwrite": { - "method": "updateRecordTXT", + "method": "createTransferOut", "group": null, - "weight": 655, + "weight": 652, "cookies": false, "type": "", - "demo": "domains\/update-record-txt.md", + "demo": "domains\/create-transfer-out.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.write", + "scope": "billing.write", "platforms": [ "console" ], @@ -20881,68 +21173,38 @@ } ], "parameters": [ - { - "name": "domainId", - "description": "Domain unique ID.", - "required": true, - "type": "string", - "x-example": "<DOMAIN_ID>", - "in": "path" - }, - { - "name": "recordId", - "description": "DNS record unique ID.", - "required": true, - "type": "string", - "x-example": "<RECORD_ID>", - "in": "path" - }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "name": { + "domainId": { "type": "string", - "description": "Record name (subdomain) for the TXT record.", + "description": "Domain unique ID.", "default": null, - "x-example": "<NAME>" + "x-example": "<DOMAIN_ID>" }, - "value": { + "organizationId": { "type": "string", - "description": "TXT record value.", - "default": null, - "x-example": "<VALUE>" - }, - "ttl": { - "type": "integer", - "description": "Time to live, in seconds. Must be greater than 0.", + "description": "Organization ID that this domain belongs to.", "default": null, - "x-example": 1, - "format": "int32" - }, - "comment": { - "type": "string", - "description": "A comment for this record.", - "default": "", - "x-example": "<COMMENT>" + "x-example": "<ORGANIZATION_ID>" } }, "required": [ - "name", - "value", - "ttl" + "domainId", + "organizationId" ] } } ] } }, - "\/domains\/{domainId}\/records\/{recordId}": { + "\/domains\/{domainId}": { "get": { - "summary": "Get a single DNS record for a given domain by record ID.", - "operationId": "domainsGetRecord", + "summary": "Get a single domain by its unique ID.", + "operationId": "domainsGet", "consumes": [], "produces": [ "application\/json" @@ -20950,23 +21212,23 @@ "tags": [ "domains" ], - "description": " Get a single DNS record for a given domain by record ID.\n \n This endpoint allows you to retrieve a specific DNS record associated with a domain\n using its unique identifier. The record contains information about the DNS configuration\n such as type, value, and TTL settings.", + "description": " Get a domain by its unique ID.", "responses": { "200": { - "description": "DNSRecord", + "description": "Domain", "schema": { - "$ref": "#\/definitions\/dnsRecord" + "$ref": "#\/definitions\/domain" } } }, "deprecated": false, "x-appwrite": { - "method": "getRecord", + "method": "get", "group": null, - "weight": 657, + "weight": 644, "cookies": false, "type": "", - "demo": "domains\/get-record.md", + "demo": "domains\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -20993,20 +21255,12 @@ "type": "string", "x-example": "<DOMAIN_ID>", "in": "path" - }, - { - "name": "recordId", - "description": "DNS record unique ID.", - "required": true, - "type": "string", - "x-example": "<RECORD_ID>", - "in": "path" } ] }, "delete": { - "summary": "Delete a DNS record for the given domain.", - "operationId": "domainsDeleteRecord", + "summary": "Delete a domain by its unique ID.", + "operationId": "domainsDelete", "consumes": [ "application\/json" ], @@ -21016,7 +21270,7 @@ "tags": [ "domains" ], - "description": " Delete a DNS record for the given domain. This endpoint allows you to delete an existing DNS record \n from a specific domain.", + "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" @@ -21024,12 +21278,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteRecord", + "method": "delete", "group": null, - "weight": 656, + "weight": 643, "cookies": false, "type": "", - "demo": "domains\/delete-record.md", + "demo": "domains\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -21056,22 +21310,14 @@ "type": "string", "x-example": "<DOMAIN_ID>", "in": "path" - }, - { - "name": "recordId", - "description": "DNS record unique ID.", - "required": true, - "type": "string", - "x-example": "<RECORD_ID>", - "in": "path" } ] } }, - "\/domains\/{domainId}\/team": { + "\/domains\/{domainId}\/nameservers": { "patch": { - "summary": "Update domain team.", - "operationId": "domainsUpdateTeam", + "summary": "Verify which NS records are used and update the domain accordingly.", + "operationId": "domainsUpdateNameservers", "consumes": [ "application\/json" ], @@ -21081,7 +21327,7 @@ "tags": [ "domains" ], - "description": " Update the team ID for a specific domain. This endpoint requires admin access.\n \n Updating the team ID will transfer ownership and access control of the domain\n and all its DNS records to the new team.", + "description": " Verify which NS records are used and update the domain accordingly. This will check the domain's\n nameservers and update the domain's status based on whether the nameservers match the expected\n Appwrite nameservers.", "responses": { "200": { "description": "Domain", @@ -21092,12 +21338,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateTeam", + "method": "updateNameservers", "group": null, - "weight": 635, + "weight": 648, "cookies": false, "type": "", - "demo": "domains\/update-team.md", + "demo": "domains\/update-nameservers.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -21124,32 +21370,14 @@ "type": "string", "x-example": "<DOMAIN_ID>", "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "teamId": { - "type": "string", - "description": "New team unique ID.", - "default": null, - "x-example": "<TEAM_ID>" - } - }, - "required": [ - "teamId" - ] - } } ] } }, - "\/domains\/{domainId}\/zone": { + "\/domains\/{domainId}\/presets\/google-workspace": { "get": { - "summary": "Retrieve the DNS zone file for the given domain.", - "operationId": "domainsGetZone", + "summary": "Get Google Workspace preset (Records)", + "operationId": "domainsGetPresetGoogleWorkspace", "consumes": [], "produces": [ "application\/json" @@ -21157,27 +21385,27 @@ "tags": [ "domains" ], - "description": " Retrieve the DNS zone file for the given domain. This endpoint will return the DNS\n zone file in a standardized format that can be used to configure DNS servers.", + "description": " List Google Workspace DNS records.", "responses": { - "200": { - "description": "File", + "201": { + "description": "DNS records list", "schema": { - "type": "file" + "$ref": "#\/definitions\/dnsRecordsList" } } }, "deprecated": false, "x-appwrite": { - "method": "getZone", + "method": "getPresetGoogleWorkspace", "group": null, - "weight": 631, + "weight": 678, "cookies": false, "type": "", - "demo": "domains\/get-zone.md", + "demo": "domains\/get-preset-google-workspace.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "domains.read", + "scope": "domains.write", "platforms": [ "console" ], @@ -21203,9 +21431,9 @@ } ] }, - "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", + "post": { + "summary": "Create Google Workspace preset (Records)", + "operationId": "domainsCreatePresetGoogleWorkspace", "consumes": [ "application\/json" ], @@ -21215,23 +21443,23 @@ "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.", + "description": " Add Google Workspace DNS records to the domain. This will create the required MX records \n for Google Workspace email hosting.", "responses": { "201": { - "description": "Domain", + "description": "DNS records list", "schema": { - "$ref": "#\/definitions\/domain" + "$ref": "#\/definitions\/dnsRecordsList" } } }, "deprecated": false, "x-appwrite": { - "method": "updateZone", + "method": "createPresetGoogleWorkspace", "group": null, - "weight": 634, + "weight": 677, "cookies": false, "type": "", - "demo": "domains\/update-zone.md", + "demo": "domains\/create-preset-google-workspace.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -21258,63 +21486,160 @@ "type": "string", "x-example": "<DOMAIN_ID>", "in": "path" - }, + } + ] + } + }, + "\/domains\/{domainId}\/presets\/icloud": { + "get": { + "summary": "Get iCloud preset (Records)", + "operationId": "domainsGetPresetICloud", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "domains" + ], + "description": " List iCloud DNS records.", + "responses": { + "201": { + "description": "DNS records list", + "schema": { + "$ref": "#\/definitions\/dnsRecordsList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getPresetICloud", + "group": null, + "weight": 688, + "cookies": false, + "type": "", + "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": { + "Project": [] + } + }, + "security": [ { - "name": "payload", - "in": "body", + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "type": "string", + "x-example": "<DOMAIN_ID>", + "in": "path" + } + ] + }, + "post": { + "summary": "Create iCloud preset (Records)", + "operationId": "domainsCreatePresetICloud", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "domains" + ], + "description": " Add iCloud DNS records to the domain. This will create the required MX and SPF records\n for using iCloud email services with your domain.", + "responses": { + "201": { + "description": "DNS records list", "schema": { - "type": "object", - "properties": { - "content": { - "type": "string", - "description": "DNS zone file content as a string.", - "default": null, - "x-example": "<CONTENT>" - } - }, - "required": [ - "content" - ] + "$ref": "#\/definitions\/dnsRecordsList" } } + }, + "deprecated": false, + "x-appwrite": { + "method": "createPresetICloud", + "group": null, + "weight": 687, + "cookies": false, + "type": "", + "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": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "type": "string", + "x-example": "<DOMAIN_ID>", + "in": "path" + } ] } }, - "\/functions": { + "\/domains\/{domainId}\/presets\/mailgun": { "get": { - "summary": "List functions", - "operationId": "functionsList", + "summary": "Get Mailgun preset (Records)", + "operationId": "domainsGetPresetMailgun", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "functions" + "domains" ], - "description": "Get a list of all the project's functions. You can use the query params to filter your results.", + "description": " List Mailgun DNS records.", "responses": { - "200": { - "description": "Functions List", + "201": { + "description": "DNS records list", "schema": { - "$ref": "#\/definitions\/functionList" + "$ref": "#\/definitions\/dnsRecordsList" } } }, "deprecated": false, "x-appwrite": { - "method": "list", - "group": "functions", - "weight": 561, + "method": "getPresetMailgun", + "group": null, + "weight": 680, "cookies": false, "type": "", - "demo": "functions\/list.md", + "demo": "domains\/get-preset-mailgun.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", + "scope": "domains.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -21324,46 +21649,23 @@ }, "security": [ { - "Project": [], - "Key": [] + "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, enabled, runtime, deploymentId, schedule, scheduleNext, schedulePrevious, timeout, entrypoint, commands, installationId", - "required": false, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, + "name": "domainId", + "description": "Domain unique ID.", + "required": true, "type": "string", - "x-example": "<SEARCH>", - "default": "", - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" + "x-example": "<DOMAIN_ID>", + "in": "path" } ] }, "post": { - "summary": "Create function", - "operationId": "functionsCreate", + "summary": "Create Mailgun preset (Records)", + "operationId": "domainsCreatePresetMailgun", "consumes": [ "application\/json" ], @@ -21371,32 +21673,31 @@ "application\/json" ], "tags": [ - "functions" + "domains" ], - "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.", + "description": " Add Mailgun DNS records to the domain. This endpoint will create the required DNS records \n for Mailgun in the specified domain.", "responses": { "201": { - "description": "Function", + "description": "DNS records list", "schema": { - "$ref": "#\/definitions\/function" + "$ref": "#\/definitions\/dnsRecordsList" } } }, "deprecated": false, "x-appwrite": { - "method": "create", - "group": "functions", - "weight": 558, + "method": "createPresetMailgun", + "group": null, + "weight": 679, "cookies": false, "type": "", - "demo": "functions\/create.md", + "demo": "domains\/create-preset-mailgun.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", + "scope": "domains.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -21406,344 +21707,171 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "payload", - "in": "body", + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "type": "string", + "x-example": "<DOMAIN_ID>", + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/presets\/outlook": { + "get": { + "summary": "Get Outlook preset (Records)", + "operationId": "domainsGetPresetOutlook", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "domains" + ], + "description": " List Outlook DNS records.", + "responses": { + "201": { + "description": "DNS records list", "schema": { - "type": "object", - "properties": { - "functionId": { - "type": "string", - "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.", - "default": null, - "x-example": "<FUNCTION_ID>" - }, - "name": { - "type": "string", - "description": "Function name. Max length: 128 chars.", - "default": null, - "x-example": "<NAME>" - }, - "runtime": { - "type": "string", - "description": "Execution runtime.", - "default": null, - "x-example": "node-14.5", - "enum": [ - "node-14.5", - "node-16.0", - "node-18.0", - "node-19.0", - "node-20.0", - "node-21.0", - "node-22", - "node-23", - "node-24", - "node-25", - "php-8.0", - "php-8.1", - "php-8.2", - "php-8.3", - "php-8.4", - "ruby-3.0", - "ruby-3.1", - "ruby-3.2", - "ruby-3.3", - "ruby-3.4", - "ruby-4.0", - "python-3.8", - "python-3.9", - "python-3.10", - "python-3.11", - "python-3.12", - "python-3.13", - "python-3.14", - "python-ml-3.11", - "python-ml-3.12", - "python-ml-3.13", - "deno-1.21", - "deno-1.24", - "deno-1.35", - "deno-1.40", - "deno-1.46", - "deno-2.0", - "deno-2.5", - "deno-2.6", - "dart-2.15", - "dart-2.16", - "dart-2.17", - "dart-2.18", - "dart-2.19", - "dart-3.0", - "dart-3.1", - "dart-3.3", - "dart-3.5", - "dart-3.8", - "dart-3.9", - "dart-3.10", - "dotnet-6.0", - "dotnet-7.0", - "dotnet-8.0", - "dotnet-10", - "java-8.0", - "java-11.0", - "java-17.0", - "java-18.0", - "java-21.0", - "java-22", - "java-25", - "swift-5.5", - "swift-5.8", - "swift-5.9", - "swift-5.10", - "swift-6.2", - "kotlin-1.6", - "kotlin-1.8", - "kotlin-1.9", - "kotlin-2.0", - "kotlin-2.3", - "cpp-17", - "cpp-20", - "bun-1.0", - "bun-1.1", - "bun-1.2", - "bun-1.3", - "go-1.23", - "go-1.24", - "go-1.25", - "go-1.26", - "static-1", - "flutter-3.24", - "flutter-3.27", - "flutter-3.29", - "flutter-3.32", - "flutter-3.35", - "flutter-3.38" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "execute": { - "type": "array", - "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.", - "default": [], - "x-example": "[\"any\"]", - "items": { - "type": "string" - } - }, - "events": { - "type": "array", - "description": "Events list. Maximum of 100 events are allowed.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "schedule": { - "type": "string", - "description": "Schedule CRON syntax.", - "default": "", - "x-example": null - }, - "timeout": { - "type": "integer", - "description": "Function maximum execution time in seconds.", - "default": 15, - "x-example": 1, - "format": "int32" - }, - "enabled": { - "type": "boolean", - "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.", - "default": true, - "x-example": false - }, - "logging": { - "type": "boolean", - "description": "When disabled, executions will exclude logs and errors, and will be slightly faster.", - "default": true, - "x-example": false - }, - "entrypoint": { - "type": "string", - "description": "Entrypoint File. This path is relative to the \"providerRootDirectory\".", - "default": "", - "x-example": "<ENTRYPOINT>" - }, - "commands": { - "type": "string", - "description": "Build Commands.", - "default": "", - "x-example": "<COMMANDS>" - }, - "scopes": { - "type": "array", - "description": "List of scopes allowed for API key auto-generated for every execution. Maximum of 100 scopes are allowed.", - "default": [], - "x-example": null, - "items": { - "type": "string", - "enum": [ - "sessions.write", - "users.read", - "users.write", - "teams.read", - "teams.write", - "databases.read", - "databases.write", - "collections.read", - "collections.write", - "tables.read", - "tables.write", - "attributes.read", - "attributes.write", - "columns.read", - "columns.write", - "indexes.read", - "indexes.write", - "documents.read", - "documents.write", - "rows.read", - "rows.write", - "files.read", - "files.write", - "buckets.read", - "buckets.write", - "functions.read", - "functions.write", - "sites.read", - "sites.write", - "log.read", - "log.write", - "execution.read", - "execution.write", - "locale.read", - "avatars.read", - "health.read", - "providers.read", - "providers.write", - "messages.read", - "messages.write", - "topics.read", - "topics.write", - "subscribers.read", - "subscribers.write", - "targets.read", - "targets.write", - "rules.read", - "rules.write", - "schedules.read", - "schedules.write", - "migrations.read", - "migrations.write", - "vcs.read", - "vcs.write", - "assistant.read", - "tokens.read", - "tokens.write", - "policies.write", - "policies.read", - "archives.read", - "archives.write", - "restorations.read", - "restorations.write", - "domains.read", - "domains.write", - "events.read" - ], - "x-enum-name": null, - "x-enum-keys": [] - } - }, - "installationId": { - "type": "string", - "description": "Appwrite Installation ID for VCS (Version Control System) deployment.", - "default": "", - "x-example": "<INSTALLATION_ID>" - }, - "providerRepositoryId": { - "type": "string", - "description": "Repository ID of the repo linked to the function.", - "default": "", - "x-example": "<PROVIDER_REPOSITORY_ID>" - }, - "providerBranch": { - "type": "string", - "description": "Production branch for the repo linked to the function.", - "default": "", - "x-example": "<PROVIDER_BRANCH>" - }, - "providerSilentMode": { - "type": "boolean", - "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.", - "default": false, - "x-example": false - }, - "providerRootDirectory": { - "type": "string", - "description": "Path to function code in the linked repo.", - "default": "", - "x-example": "<PROVIDER_ROOT_DIRECTORY>" - }, - "specification": { - "type": "string", - "description": "Runtime specification for the function and builds.", - "default": {}, - "x-example": null - } - }, - "required": [ - "functionId", - "name", - "runtime" - ] + "$ref": "#\/definitions\/dnsRecordsList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getPresetOutlook", + "group": null, + "weight": 686, + "cookies": false, + "type": "", + "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": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "type": "string", + "x-example": "<DOMAIN_ID>", + "in": "path" + } + ] + }, + "post": { + "summary": "Create Outlook preset (Records)", + "operationId": "domainsCreatePresetOutlook", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "domains" + ], + "description": " Add Outlook DNS records to the domain. This will create the required MX records\n for setting up Outlook email hosting for your domain.", + "responses": { + "201": { + "description": "DNS records list", + "schema": { + "$ref": "#\/definitions\/dnsRecordsList" } } + }, + "deprecated": false, + "x-appwrite": { + "method": "createPresetOutlook", + "group": null, + "weight": 685, + "cookies": false, + "type": "", + "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": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "type": "string", + "x-example": "<DOMAIN_ID>", + "in": "path" + } ] } }, - "\/functions\/runtimes": { + "\/domains\/{domainId}\/presets\/proton-mail": { "get": { - "summary": "List runtimes", - "operationId": "functionsListRuntimes", + "summary": "Get ProtonMail preset (Records)", + "operationId": "domainsGetPresetProtonMail", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "functions" + "domains" ], - "description": "Get a list of all runtimes that are currently active on your instance.", + "description": " List ProtonMail DNS records.", "responses": { - "200": { - "description": "Runtimes List", + "201": { + "description": "DNS records list", "schema": { - "$ref": "#\/definitions\/runtimeList" + "$ref": "#\/definitions\/dnsRecordsList" } } }, "deprecated": false, "x-appwrite": { - "method": "listRuntimes", - "group": "runtimes", - "weight": 563, + "method": "getPresetProtonMail", + "group": null, + "weight": 684, "cookies": false, "type": "", - "demo": "functions\/list-runtimes.md", + "demo": "domains\/get-preset-proton-mail.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "domains.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -21753,46 +21881,54 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "type": "string", + "x-example": "<DOMAIN_ID>", + "in": "path" } ] - } - }, - "\/functions\/specifications": { - "get": { - "summary": "List specifications", - "operationId": "functionsListSpecifications", - "consumes": [], + }, + "post": { + "summary": "Create ProtonMail preset (Records)", + "operationId": "domainsCreatePresetProtonMail", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "functions" + "domains" ], - "description": "List allowed function specifications for this instance.", + "description": " Add ProtonMail DNS records to the domain. This will create the required MX records\n for using ProtonMail with your custom domain.", "responses": { - "200": { - "description": "Specifications List", + "201": { + "description": "DNS records list", "schema": { - "$ref": "#\/definitions\/specificationList" + "$ref": "#\/definitions\/dnsRecordsList" } } }, "deprecated": false, "x-appwrite": { - "method": "listSpecifications", - "group": "runtimes", - "weight": 564, + "method": "createPresetProtonMail", + "group": null, + "weight": 683, "cookies": false, "type": "", - "demo": "functions\/list-specifications.md", + "demo": "domains\/create-preset-proton-mail.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", + "scope": "domains.write", "platforms": [ - "server", "console" ], "packaging": false, @@ -21803,44 +21939,53 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "type": "string", + "x-example": "<DOMAIN_ID>", + "in": "path" } ] } }, - "\/functions\/templates": { + "\/domains\/{domainId}\/presets\/zoho": { "get": { - "summary": "List templates", - "operationId": "functionsListTemplates", + "summary": "Get Zoho preset (Records)", + "operationId": "domainsGetPresetZoho", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "functions" + "domains" ], - "description": "List available function templates. You can use template details in [createFunction](\/docs\/references\/cloud\/server-nodejs\/functions#create) method.", + "description": " List Zoho DNS records.", "responses": { - "200": { - "description": "Function Templates List", + "201": { + "description": "DNS records list", "schema": { - "$ref": "#\/definitions\/templateFunctionList" + "$ref": "#\/definitions\/dnsRecordsList" } } }, "deprecated": false, "x-appwrite": { - "method": "listTemplates", - "group": "templates", - "weight": 587, + "method": "getPresetZoho", + "group": null, + "weight": 682, "cookies": false, "type": "", - "demo": "functions\/list-templates.md", + "demo": "domains\/get-preset-zoho.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "domains.write", "platforms": [ "console" ], @@ -21857,197 +22002,178 @@ ], "parameters": [ { - "name": "runtimes", - "description": "List of runtimes allowed for filtering function templates. Maximum of 100 runtimes are allowed.", - "required": false, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string", - "enum": [ - "node-14.5", - "node-16.0", - "node-18.0", - "node-19.0", - "node-20.0", - "node-21.0", - "node-22", - "node-23", - "node-24", - "node-25", - "php-8.0", - "php-8.1", - "php-8.2", - "php-8.3", - "php-8.4", - "ruby-3.0", - "ruby-3.1", - "ruby-3.2", - "ruby-3.3", - "ruby-3.4", - "ruby-4.0", - "python-3.8", - "python-3.9", - "python-3.10", - "python-3.11", - "python-3.12", - "python-3.13", - "python-3.14", - "python-ml-3.11", - "python-ml-3.12", - "python-ml-3.13", - "deno-1.21", - "deno-1.24", - "deno-1.35", - "deno-1.40", - "deno-1.46", - "deno-2.0", - "deno-2.5", - "deno-2.6", - "dart-2.15", - "dart-2.16", - "dart-2.17", - "dart-2.18", - "dart-2.19", - "dart-3.0", - "dart-3.1", - "dart-3.3", - "dart-3.5", - "dart-3.8", - "dart-3.9", - "dart-3.10", - "dotnet-6.0", - "dotnet-7.0", - "dotnet-8.0", - "dotnet-10", - "java-8.0", - "java-11.0", - "java-17.0", - "java-18.0", - "java-21.0", - "java-22", - "java-25", - "swift-5.5", - "swift-5.8", - "swift-5.9", - "swift-5.10", - "swift-6.2", - "kotlin-1.6", - "kotlin-1.8", - "kotlin-1.9", - "kotlin-2.0", - "kotlin-2.3", - "cpp-17", - "cpp-20", - "bun-1.0", - "bun-1.1", - "bun-1.2", - "bun-1.3", - "go-1.23", - "go-1.24", - "go-1.25", - "go-1.26", - "static-1", - "flutter-3.24", - "flutter-3.27", - "flutter-3.29", - "flutter-3.32", - "flutter-3.35", - "flutter-3.38" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "default": [], - "in": "query" - }, + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "type": "string", + "x-example": "<DOMAIN_ID>", + "in": "path" + } + ] + }, + "post": { + "summary": "Create Zoho Mail preset (Records)", + "operationId": "domainsCreatePresetZoho", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "domains" + ], + "description": " Add Zoho Mail DNS records to the domain. This will create the required MX records\n for setting up Zoho Mail on your domain.", + "responses": { + "201": { + "description": "DNS records list", + "schema": { + "$ref": "#\/definitions\/dnsRecordsList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createPresetZoho", + "group": null, + "weight": 681, + "cookies": false, + "type": "", + "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": { + "Project": [] + } + }, + "security": [ { - "name": "useCases", - "description": "List of use cases allowed for filtering function templates. Maximum of 100 use cases are allowed.", + "Project": [] + } + ], + "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "type": "string", + "x-example": "<DOMAIN_ID>", + "in": "path" + } + ] + } + }, + "\/domains\/{domainId}\/records": { + "get": { + "summary": "List DNS records for a given domain.", + "operationId": "domainsListRecords", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "domains" + ], + "description": " List DNS records for a given domain. You can use this endpoint to list all the DNS records\n associated with your domain.", + "responses": { + "200": { + "description": "DNS records list", + "schema": { + "$ref": "#\/definitions\/dnsRecordsList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listRecords", + "group": null, + "weight": 676, + "cookies": false, + "type": "", + "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": { + "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, "type": "array", "collectionFormat": "multi", "items": { - "type": "string", - "enum": [ - "starter", - "databases", - "ai", - "messaging", - "utilities", - "dev-tools", - "auth" - ], - "x-enum-name": null, - "x-enum-keys": [] + "type": "string" }, "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, - "type": "integer", - "format": "int32", - "x-example": 1, - "default": 25, - "in": "query" - }, - { - "name": "offset", - "description": "Offset the list of returned templates. Maximum offset is 5000.", - "required": false, - "type": "integer", - "format": "int32", - "x-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, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "type": "string", + "x-example": "<DOMAIN_ID>", + "in": "path" } ] } }, - "\/functions\/templates\/{templateId}": { - "get": { - "summary": "Get function template", - "operationId": "functionsGetTemplate", - "consumes": [], + "\/domains\/{domainId}\/records\/a": { + "post": { + "summary": "Create a new A record for the given domain.", + "operationId": "domainsCreateRecordA", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "functions" + "domains" ], - "description": "Get a function template using ID. You can use template details in [createFunction](\/docs\/references\/cloud\/server-nodejs\/functions#create) method.", + "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": { - "200": { - "description": "Template Function", + "201": { + "description": "DNSRecord", "schema": { - "$ref": "#\/definitions\/templateFunction" + "$ref": "#\/definitions\/dnsRecord" } } }, "deprecated": false, "x-appwrite": { - "method": "getTemplate", - "group": "templates", - "weight": 586, + "method": "createRecordA", + "group": null, + "weight": 654, "cookies": false, "type": "", - "demo": "functions\/get-template.md", + "demo": "domains\/create-record-a.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "domains.write", "platforms": [ "console" ], @@ -22064,48 +22190,89 @@ ], "parameters": [ { - "name": "templateId", - "description": "Template ID.", + "name": "domainId", + "description": "Domain unique ID.", "required": true, "type": "string", - "x-example": "<TEMPLATE_ID>", + "x-example": "<DOMAIN_ID>", "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Record name (subdomain).", + "default": null, + "x-example": "<NAME>" + }, + "value": { + "type": "string", + "description": "IPv4 address for this A record.", + "default": null, + "x-example": null + }, + "ttl": { + "type": "integer", + "description": "Time to live, in seconds. Must be greater than 0.", + "default": null, + "x-example": 1, + "format": "int32" + }, + "comment": { + "type": "string", + "description": "A comment explaining what this record is for.", + "default": "", + "x-example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } } ] } }, - "\/functions\/usage": { - "get": { - "summary": "Get functions usage", - "operationId": "functionsListUsage", - "consumes": [], + "\/domains\/{domainId}\/records\/a\/{recordId}": { + "put": { + "summary": "Update an existing A record for the given domain.", + "operationId": "domainsUpdateRecordA", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "functions" + "domains" ], - "description": "Get usage metrics and statistics for all functions in the project. View statistics including total deployments, builds, logs, storage usage, and compute time. The response includes both current totals and historical data for each metric. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, defaults to 30 days.", + "description": " Update an existing A record for the given domain. This endpoint allows you to modify \n the properties of an A record including its name (subdomain), IPv4 address, TTL, \n and optional comment.", "responses": { "200": { - "description": "UsageFunctions", + "description": "DNSRecord", "schema": { - "$ref": "#\/definitions\/usageFunctions" + "$ref": "#\/definitions\/dnsRecord" } } }, "deprecated": false, "x-appwrite": { - "method": "listUsage", + "method": "updateRecordA", "group": null, - "weight": 580, + "weight": 655, "cookies": false, "type": "", - "demo": "functions\/list-usage.md", + "demo": "domains\/update-record-a.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", + "scope": "domains.write", "platforms": [ "console" ], @@ -22122,63 +22289,99 @@ ], "parameters": [ { - "name": "range", - "description": "Date range.", - "required": false, + "name": "domainId", + "description": "Domain unique ID.", + "required": true, "type": "string", - "x-example": "24h", - "enum": [ - "24h", - "30d", - "90d" - ], - "x-enum-name": "UsageRange", - "x-enum-keys": [ - "Twenty Four Hours", - "Thirty Days", - "Ninety Days" - ], - "default": "30d", - "in": "query" + "x-example": "<DOMAIN_ID>", + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "type": "string", + "x-example": "<RECORD_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Record name (subdomain).", + "default": null, + "x-example": "<NAME>" + }, + "value": { + "type": "string", + "description": "IPv4 address for this A record.", + "default": null, + "x-example": null + }, + "ttl": { + "type": "integer", + "description": "Time to live, in seconds. Must be greater than 0.", + "default": null, + "x-example": 1, + "format": "int32" + }, + "comment": { + "type": "string", + "description": "A comment explaining what this record is for.", + "default": "", + "x-example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } } ] } }, - "\/functions\/{functionId}": { - "get": { - "summary": "Get function", - "operationId": "functionsGet", - "consumes": [], + "\/domains\/{domainId}\/records\/aaaa": { + "post": { + "summary": "Create a new AAAA record for the given domain.", + "operationId": "domainsCreateRecordAAAA", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "functions" + "domains" ], - "description": "Get a function by its unique ID.", + "description": " Create a new AAAA record for the given domain. This endpoint allows you to add a new IPv6 DNS record \n to your domain. The record will be used to point a hostname to an IPv6 address.", "responses": { - "200": { - "description": "Function", + "201": { + "description": "DNSRecord", "schema": { - "$ref": "#\/definitions\/function" + "$ref": "#\/definitions\/dnsRecord" } } }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": "functions", - "weight": 559, + "method": "createRecordAAAA", + "group": null, + "weight": 656, "cookies": false, "type": "", - "demo": "functions\/get.md", + "demo": "domains\/create-record-aaaa.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", + "scope": "domains.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -22188,24 +22391,64 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "domainId", + "description": "Domain unique ID.", "required": true, "type": "string", - "x-example": "<FUNCTION_ID>", + "x-example": "<DOMAIN_ID>", "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Record name (subdomain).", + "default": null, + "x-example": "<NAME>" + }, + "value": { + "type": "string", + "description": "IPv6 address for this AAAA record.", + "default": null, + "x-example": null + }, + "ttl": { + "type": "integer", + "description": "Time to live, in seconds. Must be greater than 0.", + "default": null, + "x-example": 1, + "format": "int32" + }, + "comment": { + "type": "string", + "description": "A comment explaining what this record is for.", + "default": "", + "x-example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } } ] - }, + } + }, + "\/domains\/{domainId}\/records\/aaaa\/{recordId}": { "put": { - "summary": "Update function", - "operationId": "functionsUpdate", + "summary": "Update an existing AAAA record for the given domain.", + "operationId": "domainsUpdateRecordAAAA", "consumes": [ "application\/json" ], @@ -22213,32 +22456,31 @@ "application\/json" ], "tags": [ - "functions" + "domains" ], - "description": "Update function by its unique ID.", + "description": " Update an existing AAAA record for the given domain. This endpoint allows you to modify\n the properties of an existing AAAA record, including its name (subdomain), IPv6 address,\n TTL, and optional comment.", "responses": { "200": { - "description": "Function", + "description": "DNSRecord", "schema": { - "$ref": "#\/definitions\/function" + "$ref": "#\/definitions\/dnsRecord" } } }, "deprecated": false, "x-appwrite": { - "method": "update", - "group": "functions", - "weight": 560, + "method": "updateRecordAAAA", + "group": null, + "weight": 657, "cookies": false, "type": "", - "demo": "functions\/update.md", + "demo": "domains\/update-record-aaaa.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", + "scope": "domains.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -22248,17 +22490,24 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "domainId", + "description": "Domain unique ID.", "required": true, "type": "string", - "x-example": "<FUNCTION_ID>", + "x-example": "<DOMAIN_ID>", + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "type": "string", + "x-example": "<RECORD_ID>", "in": "path" }, { @@ -22269,319 +22518,76 @@ "properties": { "name": { "type": "string", - "description": "Function name. Max length: 128 chars.", + "description": "Record name (subdomain).", "default": null, "x-example": "<NAME>" }, - "runtime": { + "value": { "type": "string", - "description": "Execution runtime.", + "description": "IPv6 address for this AAAA record.", + "default": null, + "x-example": null + }, + "ttl": { + "type": "integer", + "description": "Time to live, in seconds. Must be greater than 0.", + "default": null, + "x-example": 1, + "format": "int32" + }, + "comment": { + "type": "string", + "description": "A comment for this record.", "default": "", - "x-example": "node-14.5", - "enum": [ - "node-14.5", - "node-16.0", - "node-18.0", - "node-19.0", - "node-20.0", - "node-21.0", - "node-22", - "node-23", - "node-24", - "node-25", - "php-8.0", - "php-8.1", - "php-8.2", - "php-8.3", - "php-8.4", - "ruby-3.0", - "ruby-3.1", - "ruby-3.2", - "ruby-3.3", - "ruby-3.4", - "ruby-4.0", - "python-3.8", - "python-3.9", - "python-3.10", - "python-3.11", - "python-3.12", - "python-3.13", - "python-3.14", - "python-ml-3.11", - "python-ml-3.12", - "python-ml-3.13", - "deno-1.21", - "deno-1.24", - "deno-1.35", - "deno-1.40", - "deno-1.46", - "deno-2.0", - "deno-2.5", - "deno-2.6", - "dart-2.15", - "dart-2.16", - "dart-2.17", - "dart-2.18", - "dart-2.19", - "dart-3.0", - "dart-3.1", - "dart-3.3", - "dart-3.5", - "dart-3.8", - "dart-3.9", - "dart-3.10", - "dotnet-6.0", - "dotnet-7.0", - "dotnet-8.0", - "dotnet-10", - "java-8.0", - "java-11.0", - "java-17.0", - "java-18.0", - "java-21.0", - "java-22", - "java-25", - "swift-5.5", - "swift-5.8", - "swift-5.9", - "swift-5.10", - "swift-6.2", - "kotlin-1.6", - "kotlin-1.8", - "kotlin-1.9", - "kotlin-2.0", - "kotlin-2.3", - "cpp-17", - "cpp-20", - "bun-1.0", - "bun-1.1", - "bun-1.2", - "bun-1.3", - "go-1.23", - "go-1.24", - "go-1.25", - "go-1.26", - "static-1", - "flutter-3.24", - "flutter-3.27", - "flutter-3.29", - "flutter-3.32", - "flutter-3.35", - "flutter-3.38" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "execute": { - "type": "array", - "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.", - "default": [], - "x-example": "[\"any\"]", - "items": { - "type": "string" - } - }, - "events": { - "type": "array", - "description": "Events list. Maximum of 100 events are allowed.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "schedule": { - "type": "string", - "description": "Schedule CRON syntax.", - "default": "", - "x-example": null - }, - "timeout": { - "type": "integer", - "description": "Maximum execution time in seconds.", - "default": 15, - "x-example": 1, - "format": "int32" - }, - "enabled": { - "type": "boolean", - "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.", - "default": true, - "x-example": false - }, - "logging": { - "type": "boolean", - "description": "When disabled, executions will exclude logs and errors, and will be slightly faster.", - "default": true, - "x-example": false - }, - "entrypoint": { - "type": "string", - "description": "Entrypoint File. This path is relative to the \"providerRootDirectory\".", - "default": "", - "x-example": "<ENTRYPOINT>" - }, - "commands": { - "type": "string", - "description": "Build Commands.", - "default": "", - "x-example": "<COMMANDS>" - }, - "scopes": { - "type": "array", - "description": "List of scopes allowed for API Key auto-generated for every execution. Maximum of 100 scopes are allowed.", - "default": [], - "x-example": null, - "items": { - "type": "string", - "enum": [ - "sessions.write", - "users.read", - "users.write", - "teams.read", - "teams.write", - "databases.read", - "databases.write", - "collections.read", - "collections.write", - "tables.read", - "tables.write", - "attributes.read", - "attributes.write", - "columns.read", - "columns.write", - "indexes.read", - "indexes.write", - "documents.read", - "documents.write", - "rows.read", - "rows.write", - "files.read", - "files.write", - "buckets.read", - "buckets.write", - "functions.read", - "functions.write", - "sites.read", - "sites.write", - "log.read", - "log.write", - "execution.read", - "execution.write", - "locale.read", - "avatars.read", - "health.read", - "providers.read", - "providers.write", - "messages.read", - "messages.write", - "topics.read", - "topics.write", - "subscribers.read", - "subscribers.write", - "targets.read", - "targets.write", - "rules.read", - "rules.write", - "schedules.read", - "schedules.write", - "migrations.read", - "migrations.write", - "vcs.read", - "vcs.write", - "assistant.read", - "tokens.read", - "tokens.write", - "policies.write", - "policies.read", - "archives.read", - "archives.write", - "restorations.read", - "restorations.write", - "domains.read", - "domains.write", - "events.read" - ], - "x-enum-name": null, - "x-enum-keys": [] - } - }, - "installationId": { - "type": "string", - "description": "Appwrite Installation ID for VCS (Version Controle System) deployment.", - "default": "", - "x-example": "<INSTALLATION_ID>" - }, - "providerRepositoryId": { - "type": "string", - "description": "Repository ID of the repo linked to the function", - "default": null, - "x-example": "<PROVIDER_REPOSITORY_ID>", - "x-nullable": true - }, - "providerBranch": { - "type": "string", - "description": "Production branch for the repo linked to the function", - "default": "", - "x-example": "<PROVIDER_BRANCH>" - }, - "providerSilentMode": { - "type": "boolean", - "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.", - "default": false, - "x-example": false - }, - "providerRootDirectory": { - "type": "string", - "description": "Path to function code in the linked repo.", - "default": "", - "x-example": "<PROVIDER_ROOT_DIRECTORY>" - }, - "specification": { - "type": "string", - "description": "Runtime specification for the function and builds.", - "default": {}, - "x-example": null + "x-example": "<COMMENT>" } }, "required": [ - "name" + "name", + "value", + "ttl" ] } } ] - }, - "delete": { - "summary": "Delete function", - "operationId": "functionsDelete", + } + }, + "\/domains\/{domainId}\/records\/alias": { + "post": { + "summary": "Create a new ALIAS record for the given domain.", + "operationId": "domainsCreateRecordAlias", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ - "functions" + "domains" ], - "description": "Delete a function by its unique ID.", + "description": " Create a new ALIAS record for the given domain. This record type can be used to point your domain \n to another domain name that will serve as an alias. This is particularly useful when you want to \n map your domain to a target domain that may change its IP address.", "responses": { - "204": { - "description": "No content" + "201": { + "description": "DNSRecord", + "schema": { + "$ref": "#\/definitions\/dnsRecord" + } } }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": "functions", - "weight": 562, + "method": "createRecordAlias", + "group": null, + "weight": 658, "cookies": false, "type": "", - "demo": "functions\/delete.md", + "demo": "domains\/create-record-alias.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", + "scope": "domains.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -22591,26 +22597,64 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "domainId", + "description": "Domain unique ID.", "required": true, "type": "string", - "x-example": "<FUNCTION_ID>", + "x-example": "<DOMAIN_ID>", "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Record name.", + "default": null, + "x-example": "<NAME>" + }, + "value": { + "type": "string", + "description": "Target domain for this ALIAS record.", + "default": null, + "x-example": "<VALUE>" + }, + "ttl": { + "type": "integer", + "description": "Time to live, in seconds. Must be greater than 0.", + "default": null, + "x-example": 1, + "format": "int32" + }, + "comment": { + "type": "string", + "description": "A comment for this record.", + "default": "", + "x-example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } } ] } }, - "\/functions\/{functionId}\/deployment": { - "patch": { - "summary": "Update function's deployment", - "operationId": "functionsUpdateFunctionDeployment", + "\/domains\/{domainId}\/records\/alias\/{recordId}": { + "put": { + "summary": "Update an existing ALIAS record for the given domain.", + "operationId": "domainsUpdateRecordAlias", "consumes": [ "application\/json" ], @@ -22618,32 +22662,31 @@ "application\/json" ], "tags": [ - "functions" + "domains" ], - "description": "Update the function active deployment. Use this endpoint to switch the code deployment that should be used when visitor opens your function.", + "description": " Update an existing ALIAS record for the specified domain. This endpoint allows you to modify\n the properties of an existing ALIAS record including its name, target domain, TTL, and comment.\n \n The ALIAS record type is similar to a CNAME record but can be used at the zone apex (root domain).\n It provides a way to map one domain name to another.", "responses": { "200": { - "description": "Function", + "description": "DNSRecord", "schema": { - "$ref": "#\/definitions\/function" + "$ref": "#\/definitions\/dnsRecord" } } }, "deprecated": false, "x-appwrite": { - "method": "updateFunctionDeployment", - "group": "functions", - "weight": 567, + "method": "updateRecordAlias", + "group": null, + "weight": 659, "cookies": false, "type": "", - "demo": "functions\/update-function-deployment.md", + "demo": "domains\/update-record-alias.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", + "scope": "domains.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -22653,17 +22696,24 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "domainId", + "description": "Domain unique ID.", "required": true, "type": "string", - "x-example": "<FUNCTION_ID>", + "x-example": "<DOMAIN_ID>", + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "type": "string", + "x-example": "<RECORD_ID>", "in": "path" }, { @@ -22672,56 +22722,78 @@ "schema": { "type": "object", "properties": { - "deploymentId": { + "name": { "type": "string", - "description": "Deployment ID.", + "description": "Record name.", "default": null, - "x-example": "<DEPLOYMENT_ID>" + "x-example": "<NAME>" + }, + "value": { + "type": "string", + "description": "Target domain for this ALIAS record.", + "default": null, + "x-example": "<VALUE>" + }, + "ttl": { + "type": "integer", + "description": "Time to live, in seconds. Must be greater than 0.", + "default": null, + "x-example": 1, + "format": "int32" + }, + "comment": { + "type": "string", + "description": "A comment for this record.", + "default": "", + "x-example": "<COMMENT>" } }, "required": [ - "deploymentId" + "name", + "value", + "ttl" ] } } ] } }, - "\/functions\/{functionId}\/deployments": { - "get": { - "summary": "List deployments", - "operationId": "functionsListDeployments", - "consumes": [], + "\/domains\/{domainId}\/records\/caa": { + "post": { + "summary": "Create a new CAA record for the given domain.", + "operationId": "domainsCreateRecordCAA", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "functions" + "domains" ], - "description": "Get a list of all the function's code deployments. You can use the query params to filter your results.", + "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": { - "200": { - "description": "Deployments List", + "201": { + "description": "DNSRecord", "schema": { - "$ref": "#\/definitions\/deploymentList" + "$ref": "#\/definitions\/dnsRecord" } } }, "deprecated": false, "x-appwrite": { - "method": "listDeployments", - "group": "deployments", - "weight": 568, + "method": "createRecordCAA", + "group": null, + "weight": 660, "cookies": false, "type": "", - "demo": "functions\/list-deployments.md", + "demo": "domains\/create-record-caa.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", + "scope": "domains.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -22731,89 +22803,98 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "domainId", + "description": "Domain unique ID.", "required": true, "type": "string", - "x-example": "<FUNCTION_ID>", + "x-example": "<DOMAIN_ID>", "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, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "type": "string", - "x-example": "<SEARCH>", - "default": "", - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" - } - ] - }, - "post": { - "summary": "Create deployment", - "operationId": "functionsCreateDeployment", - "consumes": [ - "multipart\/form-data" - ], - "produces": [ - "application\/json" - ], - "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.", + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Record name.", + "default": null, + "x-example": null + }, + "value": { + "type": "string", + "description": "CAA value (e.g. issuer domain).", + "default": null, + "x-example": null + }, + "ttl": { + "type": "integer", + "description": "Time to live, in seconds. Must be greater than 0.", + "default": null, + "x-example": 1, + "format": "int32" + }, + "comment": { + "type": "string", + "description": "A comment for this record.", + "default": "", + "x-example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } + } + ] + } + }, + "\/domains\/{domainId}\/records\/caa\/{recordId}": { + "put": { + "summary": "Update an existing CAA record for the given domain.", + "operationId": "domainsUpdateRecordCAA", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "domains" + ], + "description": " Update an existing CAA record for the given domain. A CAA (Certification Authority Authorization) \n record is used to specify which certificate authorities (CAs) are authorized to issue certificates \n for a domain.", "responses": { - "202": { - "description": "Deployment", + "200": { + "description": "DNSRecord", "schema": { - "$ref": "#\/definitions\/deployment" + "$ref": "#\/definitions\/dnsRecord" } } }, "deprecated": false, "x-appwrite": { - "method": "createDeployment", - "group": "deployments", - "weight": 565, + "method": "updateRecordCAA", + "group": null, + "weight": 661, "cookies": false, - "type": "upload", - "demo": "functions\/create-deployment.md", + "type": "", + "demo": "domains\/update-record-caa.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", + "scope": "domains.write", "platforms": [ - "console", - "server" + "console" ], - "packaging": true, + "packaging": false, "public": true, "auth": { "Project": [] @@ -22821,57 +22902,72 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "domainId", + "description": "Domain unique ID.", "required": true, "type": "string", - "x-example": "<FUNCTION_ID>", + "x-example": "<DOMAIN_ID>", "in": "path" }, { - "name": "entrypoint", - "description": "Entrypoint File.", - "required": false, - "type": "string", - "x-example": "<ENTRYPOINT>", - "in": "formData" - }, - { - "name": "commands", - "description": "Build Commands.", - "required": false, - "type": "string", - "x-example": "<COMMANDS>", - "in": "formData" - }, - { - "name": "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.", + "name": "recordId", + "description": "DNS record unique ID.", "required": true, - "type": "file", - "in": "formData" + "type": "string", + "x-example": "<RECORD_ID>", + "in": "path" }, { - "name": "activate", - "description": "Automatically activate the deployment when it is finished building.", - "required": true, - "type": "boolean", - "x-example": false, - "in": "formData" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Record name.", + "default": null, + "x-example": null + }, + "value": { + "type": "string", + "description": "CAA value (e.g. issuer domain).", + "default": null, + "x-example": null + }, + "ttl": { + "type": "integer", + "description": "Time to live, in seconds. Must be greater than 0.", + "default": null, + "x-example": 1, + "format": "int32" + }, + "comment": { + "type": "string", + "description": "A comment for this record.", + "default": "", + "x-example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } } ] } }, - "\/functions\/{functionId}\/deployments\/duplicate": { + "\/domains\/{domainId}\/records\/cname": { "post": { - "summary": "Create duplicate deployment", - "operationId": "functionsCreateDuplicateDeployment", + "summary": "Create a new CNAME record for the given domain.", + "operationId": "domainsCreateRecordCNAME", "consumes": [ "application\/json" ], @@ -22879,32 +22975,31 @@ "application\/json" ], "tags": [ - "functions" + "domains" ], - "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.", + "description": " Create a new CNAME record for the given domain.\n \n A CNAME record maps a subdomain to another domain name, allowing you to create aliases \n for your domain. For example, you can create a CNAME record to point 'blog.example.com' \n to 'example.wordpress.com'.", "responses": { - "202": { - "description": "Deployment", + "201": { + "description": "DNSRecord", "schema": { - "$ref": "#\/definitions\/deployment" + "$ref": "#\/definitions\/dnsRecord" } } }, "deprecated": false, "x-appwrite": { - "method": "createDuplicateDeployment", - "group": "deployments", - "weight": 573, + "method": "createRecordCNAME", + "group": null, + "weight": 662, "cookies": false, "type": "", - "demo": "functions\/create-duplicate-deployment.md", + "demo": "domains\/create-record-cname.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", + "scope": "domains.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -22914,17 +23009,16 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "domainId", + "description": "Domain unique ID.", "required": true, "type": "string", - "x-example": "<FUNCTION_ID>", + "x-example": "<DOMAIN_ID>", "in": "path" }, { @@ -22933,31 +23027,46 @@ "schema": { "type": "object", "properties": { - "deploymentId": { + "name": { "type": "string", - "description": "Deployment ID.", + "description": "Record name (subdomain).", "default": null, - "x-example": "<DEPLOYMENT_ID>" + "x-example": "<NAME>" }, - "buildId": { + "value": { "type": "string", - "description": "Build unique ID.", + "description": "Canonical target for this CNAME record.", + "default": null, + "x-example": "<VALUE>" + }, + "ttl": { + "type": "integer", + "description": "Time to live, in seconds. Must be greater than 0.", + "default": null, + "x-example": 1, + "format": "int32" + }, + "comment": { + "type": "string", + "description": "A comment for this record.", "default": "", - "x-example": "<BUILD_ID>" + "x-example": "<COMMENT>" } }, "required": [ - "deploymentId" + "name", + "value", + "ttl" ] } } ] } }, - "\/functions\/{functionId}\/deployments\/template": { - "post": { - "summary": "Create template deployment", - "operationId": "functionsCreateTemplateDeployment", + "\/domains\/{domainId}\/records\/cname\/{recordId}": { + "put": { + "summary": "Update an existing CNAME record for the given domain.", + "operationId": "domainsUpdateRecordCNAME", "consumes": [ "application\/json" ], @@ -22965,32 +23074,31 @@ "application\/json" ], "tags": [ - "functions" + "domains" ], - "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.", + "description": " Update an existing CNAME record for the given domain.", "responses": { - "202": { - "description": "Deployment", + "200": { + "description": "DNSRecord", "schema": { - "$ref": "#\/definitions\/deployment" + "$ref": "#\/definitions\/dnsRecord" } } }, "deprecated": false, "x-appwrite": { - "method": "createTemplateDeployment", - "group": "deployments", - "weight": 570, + "method": "updateRecordCNAME", + "group": null, + "weight": 663, "cookies": false, "type": "", - "demo": "functions\/create-template-deployment.md", + "demo": "domains\/update-record-cname.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", + "scope": "domains.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -23000,17 +23108,24 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "domainId", + "description": "Domain unique ID.", "required": true, "type": "string", - "x-example": "<FUNCTION_ID>", + "x-example": "<DOMAIN_ID>", + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "type": "string", + "x-example": "<RECORD_ID>", "in": "path" }, { @@ -23019,66 +23134,46 @@ "schema": { "type": "object", "properties": { - "repository": { - "type": "string", - "description": "Repository name of the template.", - "default": null, - "x-example": "<REPOSITORY>" - }, - "owner": { + "name": { "type": "string", - "description": "The name of the owner of the template.", + "description": "Record name (subdomain).", "default": null, - "x-example": "<OWNER>" + "x-example": "<NAME>" }, - "rootDirectory": { + "value": { "type": "string", - "description": "Path to function code in the template repo.", + "description": "Canonical target for this CNAME record.", "default": null, - "x-example": "<ROOT_DIRECTORY>" + "x-example": "<VALUE>" }, - "type": { - "type": "string", - "description": "Type for the reference provided. Can be commit, branch, or tag", + "ttl": { + "type": "integer", + "description": "Time to live, in seconds. Must be greater than 0.", "default": null, - "x-example": "commit", - "enum": [ - "commit", - "branch", - "tag" - ], - "x-enum-name": "TemplateReferenceType", - "x-enum-keys": [] + "x-example": 1, + "format": "int32" }, - "reference": { + "comment": { "type": "string", - "description": "Reference value, can be a commit hash, branch name, or release tag", - "default": null, - "x-example": "<REFERENCE>" - }, - "activate": { - "type": "boolean", - "description": "Automatically activate the deployment when it is finished building.", - "default": false, - "x-example": false + "description": "A comment for this record.", + "default": "", + "x-example": "<COMMENT>" } }, "required": [ - "repository", - "owner", - "rootDirectory", - "type", - "reference" + "name", + "value", + "ttl" ] } } ] } }, - "\/functions\/{functionId}\/deployments\/vcs": { + "\/domains\/{domainId}\/records\/https": { "post": { - "summary": "Create VCS deployment", - "operationId": "functionsCreateVcsDeployment", + "summary": "Create a new HTTPS record for the given domain.", + "operationId": "domainsCreateRecordHTTPS", "consumes": [ "application\/json" ], @@ -23086,32 +23181,31 @@ "application\/json" ], "tags": [ - "functions" + "domains" ], - "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.", + "description": " Create a new HTTPS record for the given domain. This record is used to configure HTTPS \n settings for your domain, enabling secure communication over SSL\/TLS.", "responses": { - "202": { - "description": "Deployment", + "201": { + "description": "DNSRecord", "schema": { - "$ref": "#\/definitions\/deployment" + "$ref": "#\/definitions\/dnsRecord" } } }, "deprecated": false, "x-appwrite": { - "method": "createVcsDeployment", - "group": "deployments", - "weight": 571, + "method": "createRecordHTTPS", + "group": null, + "weight": 664, "cookies": false, "type": "", - "demo": "functions\/create-vcs-deployment.md", + "demo": "domains\/create-record-https.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", + "scope": "domains.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -23121,17 +23215,16 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "domainId", + "description": "Domain unique ID.", "required": true, "type": "string", - "x-example": "<FUNCTION_ID>", + "x-example": "<DOMAIN_ID>", "in": "path" }, { @@ -23140,75 +23233,78 @@ "schema": { "type": "object", "properties": { - "type": { + "name": { "type": "string", - "description": "Type of reference passed. Allowed values are: branch, commit", + "description": "Record name (subdomain).", "default": null, - "x-example": "branch", - "enum": [ - "branch", - "commit" - ], - "x-enum-name": "VCSReferenceType", - "x-enum-keys": [] + "x-example": "<NAME>" }, - "reference": { + "value": { "type": "string", - "description": "VCS reference to create deployment from. Depending on type this can be: branch name, commit hash", + "description": "Target for the HTTPS record.", "default": null, - "x-example": "<REFERENCE>" + "x-example": "<VALUE>" }, - "activate": { - "type": "boolean", - "description": "Automatically activate the deployment when it is finished building.", - "default": false, - "x-example": false + "ttl": { + "type": "integer", + "description": "Time to live, in seconds. Must be greater than 0.", + "default": null, + "x-example": 1, + "format": "int32" + }, + "comment": { + "type": "string", + "description": "A comment for this record.", + "default": "", + "x-example": "<COMMENT>" } }, "required": [ - "type", - "reference" + "name", + "value", + "ttl" ] } } ] } }, - "\/functions\/{functionId}\/deployments\/{deploymentId}": { - "get": { - "summary": "Get deployment", - "operationId": "functionsGetDeployment", - "consumes": [], + "\/domains\/{domainId}\/records\/https\/{recordId}": { + "put": { + "summary": "Update an existing HTTPS record for the given domain.", + "operationId": "domainsUpdateRecordHTTPS", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "functions" + "domains" ], - "description": "Get a function deployment by its unique ID.", + "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": "Deployment", + "description": "DNSRecord", "schema": { - "$ref": "#\/definitions\/deployment" + "$ref": "#\/definitions\/dnsRecord" } } }, "deprecated": false, "x-appwrite": { - "method": "getDeployment", - "group": "deployments", - "weight": 566, + "method": "updateRecordHTTPS", + "group": null, + "weight": 665, "cookies": false, "type": "", - "demo": "functions\/get-deployment.md", + "demo": "domains\/update-record-https.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", + "scope": "domains.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -23218,60 +23314,104 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "domainId", + "description": "Domain unique ID.", "required": true, "type": "string", - "x-example": "<FUNCTION_ID>", + "x-example": "<DOMAIN_ID>", "in": "path" }, { - "name": "deploymentId", - "description": "Deployment ID.", + "name": "recordId", + "description": "DNS record unique ID.", "required": true, "type": "string", - "x-example": "<DEPLOYMENT_ID>", + "x-example": "<RECORD_ID>", "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Record name (subdomain).", + "default": null, + "x-example": "<NAME>" + }, + "value": { + "type": "string", + "description": "Target for the HTTPS record.", + "default": null, + "x-example": "<VALUE>" + }, + "ttl": { + "type": "integer", + "description": "Time to live, in seconds. Must be greater than 0.", + "default": null, + "x-example": 1, + "format": "int32" + }, + "comment": { + "type": "string", + "description": "A comment for this record.", + "default": "", + "x-example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } } ] - }, - "delete": { - "summary": "Delete deployment", - "operationId": "functionsDeleteDeployment", + } + }, + "\/domains\/{domainId}\/records\/mx": { + "post": { + "summary": "Create a new MX record for the given domain.", + "operationId": "domainsCreateRecordMX", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ - "functions" + "domains" ], - "description": "Delete a code deployment by its unique ID.", + "description": " Create a new MX record for the given domain. MX records are used to define the mail servers responsible \n for accepting email messages for the domain. Multiple MX records can be created with different priorities.\n The priority parameter determines the order in which mail servers are used, with lower values indicating \n higher priority.", "responses": { - "204": { - "description": "No content" + "201": { + "description": "DNSRecord", + "schema": { + "$ref": "#\/definitions\/dnsRecord" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteDeployment", - "group": "deployments", - "weight": 569, + "method": "createRecordMX", + "group": null, + "weight": 666, "cookies": false, "type": "", - "demo": "functions\/delete-deployment.md", + "demo": "domains\/create-record-mx.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", + "scope": "domains.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -23281,65 +23421,104 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "domainId", + "description": "Domain unique ID.", "required": true, "type": "string", - "x-example": "<FUNCTION_ID>", + "x-example": "<DOMAIN_ID>", "in": "path" }, { - "name": "deploymentId", - "description": "Deployment ID.", - "required": true, - "type": "string", - "x-example": "<DEPLOYMENT_ID>", - "in": "path" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Record name (subdomain).", + "default": null, + "x-example": "<NAME>" + }, + "value": { + "type": "string", + "description": "Mail server domain for this MX record.", + "default": null, + "x-example": "<VALUE>" + }, + "ttl": { + "type": "integer", + "description": "Time to live, in seconds. Must be greater than 0.", + "default": null, + "x-example": 1, + "format": "int32" + }, + "priority": { + "type": "integer", + "description": "MX priority.", + "default": null, + "x-example": null, + "format": "int32" + }, + "comment": { + "type": "string", + "description": "A comment for this record.", + "default": "", + "x-example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl", + "priority" + ] + } } ] } }, - "\/functions\/{functionId}\/deployments\/{deploymentId}\/download": { - "get": { - "summary": "Get deployment download", - "operationId": "functionsGetDeploymentDownload", - "consumes": [], + "\/domains\/{domainId}\/records\/mx\/{recordId}": { + "put": { + "summary": "Update an existing MX record for the given domain.", + "operationId": "domainsUpdateRecordMX", + "consumes": [ + "application\/json" + ], "produces": [ - "*\/*" + "application\/json" ], "tags": [ - "functions" + "domains" ], - "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.", + "description": " Update an existing MX record for the given domain.", "responses": { "200": { - "description": "File", + "description": "DNSRecord", "schema": { - "type": "file" + "$ref": "#\/definitions\/dnsRecord" } } }, "deprecated": false, "x-appwrite": { - "method": "getDeploymentDownload", - "group": "deployments", - "weight": 572, + "method": "updateRecordMX", + "group": null, + "weight": 667, "cookies": false, - "type": "location", - "demo": "functions\/get-deployment-download.md", + "type": "", + "demo": "domains\/update-record-mx.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", + "scope": "domains.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -23349,50 +23528,80 @@ }, "security": [ { - "Project": [], - "Key": [], - "JWT": [] + "Project": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "domainId", + "description": "Domain unique ID.", "required": true, "type": "string", - "x-example": "<FUNCTION_ID>", + "x-example": "<DOMAIN_ID>", "in": "path" }, { - "name": "deploymentId", - "description": "Deployment ID.", + "name": "recordId", + "description": "DNS record unique ID.", "required": true, "type": "string", - "x-example": "<DEPLOYMENT_ID>", + "x-example": "<RECORD_ID>", "in": "path" }, { - "name": "type", - "description": "Deployment file to download. Can be: \"source\", \"output\".", - "required": false, - "type": "string", - "x-example": "source", - "enum": [ - "source", - "output" - ], - "x-enum-name": "DeploymentDownloadType", - "x-enum-keys": [], - "default": "source", - "in": "query" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Record name (subdomain).", + "default": null, + "x-example": "<NAME>" + }, + "value": { + "type": "string", + "description": "Mail server domain for this MX record.", + "default": null, + "x-example": "<VALUE>" + }, + "ttl": { + "type": "integer", + "description": "Time to live, in seconds. Must be greater than 0.", + "default": null, + "x-example": 1, + "format": "int32" + }, + "priority": { + "type": "integer", + "description": "MX priority.", + "default": null, + "x-example": null, + "format": "int32" + }, + "comment": { + "type": "string", + "description": "A comment for this record.", + "default": "", + "x-example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl", + "priority" + ] + } } ] } }, - "\/functions\/{functionId}\/deployments\/{deploymentId}\/status": { - "patch": { - "summary": "Update deployment status", - "operationId": "functionsUpdateDeploymentStatus", + "\/domains\/{domainId}\/records\/ns": { + "post": { + "summary": "Create a new NS record for the given domain.", + "operationId": "domainsCreateRecordNS", "consumes": [ "application\/json" ], @@ -23400,32 +23609,31 @@ "application\/json" ], "tags": [ - "functions" + "domains" ], - "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.", + "description": " Create a new NS record for the given domain. NS records specify the nameservers that are used \n to resolve the domain name to IP addresses. Each domain can have multiple NS records.", "responses": { - "200": { - "description": "Deployment", + "201": { + "description": "DNSRecord", "schema": { - "$ref": "#\/definitions\/deployment" + "$ref": "#\/definitions\/dnsRecord" } } }, "deprecated": false, "x-appwrite": { - "method": "updateDeploymentStatus", - "group": "deployments", - "weight": 574, + "method": "createRecordNS", + "group": null, + "weight": 668, "cookies": false, "type": "", - "demo": "functions\/update-deployment-status.md", + "demo": "domains\/create-record-ns.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", + "scope": "domains.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -23435,66 +23643,96 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "domainId", + "description": "Domain unique ID.", "required": true, "type": "string", - "x-example": "<FUNCTION_ID>", + "x-example": "<DOMAIN_ID>", "in": "path" }, { - "name": "deploymentId", - "description": "Deployment ID.", - "required": true, - "type": "string", - "x-example": "<DEPLOYMENT_ID>", - "in": "path" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Record name (subdomain).", + "default": null, + "x-example": "<NAME>" + }, + "value": { + "type": "string", + "description": "Nameserver target for this NS record.", + "default": null, + "x-example": "<VALUE>" + }, + "ttl": { + "type": "integer", + "description": "Time to live, in seconds. Must be greater than 0.", + "default": null, + "x-example": 1, + "format": "int32" + }, + "comment": { + "type": "string", + "description": "A comment for this record.", + "default": "", + "x-example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } } ] } }, - "\/functions\/{functionId}\/executions": { - "get": { - "summary": "List executions", - "operationId": "functionsListExecutions", - "consumes": [], + "\/domains\/{domainId}\/records\/ns\/{recordId}": { + "put": { + "summary": "Update an existing NS record for the given domain.", + "operationId": "domainsUpdateRecordNS", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "functions" + "domains" ], - "description": "Get a list of all the current user function execution logs. You can use the query params to filter your results.", + "description": " Update an existing NS record for the given domain. This endpoint allows you to modify \n the properties of an NS (nameserver) record associated with your domain. You can update \n the record name (subdomain), target nameserver value, TTL, and add or modify comments \n for better record management.", "responses": { "200": { - "description": "Executions List", + "description": "DNSRecord", "schema": { - "$ref": "#\/definitions\/executionList" + "$ref": "#\/definitions\/dnsRecord" } } }, "deprecated": false, "x-appwrite": { - "method": "listExecutions", - "group": "executions", - "weight": 577, + "method": "updateRecordNS", + "group": null, + "weight": 669, "cookies": false, "type": "", - "demo": "functions\/list-executions.md", + "demo": "domains\/update-record-ns.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "execution.read", + "scope": "domains.write", "platforms": [ - "console", - "client", - "server" + "console" ], "packaging": false, "public": true, @@ -23504,80 +23742,104 @@ }, "security": [ { - "Project": [], - "Key": [], - "JWT": [] + "Project": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "domainId", + "description": "Domain unique ID.", "required": true, "type": "string", - "x-example": "<FUNCTION_ID>", + "x-example": "<DOMAIN_ID>", "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, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "type": "string", + "x-example": "<RECORD_ID>", + "in": "path" }, { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Record name (subdomain).", + "default": null, + "x-example": "<NAME>" + }, + "value": { + "type": "string", + "description": "Nameserver target for this NS record.", + "default": null, + "x-example": "<VALUE>" + }, + "ttl": { + "type": "integer", + "description": "Time to live, in seconds. Must be greater than 0.", + "default": null, + "x-example": 1, + "format": "int32" + }, + "comment": { + "type": "string", + "description": "A comment for this record.", + "default": "", + "x-example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } } ] - }, + } + }, + "\/domains\/{domainId}\/records\/srv": { "post": { - "summary": "Create execution", - "operationId": "functionsCreateExecution", + "summary": "Create a new SRV record for the given domain.", + "operationId": "domainsCreateRecordSRV", "consumes": [ "application\/json" ], "produces": [ - "multipart\/form-data" + "application\/json" ], "tags": [ - "functions" + "domains" ], - "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.", + "description": " Create a new SRV record for the given domain. SRV records are used to define the location \n of servers for specific services. For example, they can be used to specify which server \n handles a specific service like SIP or XMPP for the domain.", "responses": { "201": { - "description": "Execution", + "description": "DNSRecord", "schema": { - "$ref": "#\/definitions\/execution" + "$ref": "#\/definitions\/dnsRecord" } } }, "deprecated": false, "x-appwrite": { - "method": "createExecution", - "group": "executions", - "weight": 575, + "method": "createRecordSRV", + "group": null, + "weight": 670, "cookies": false, "type": "", - "demo": "functions\/create-execution.md", + "demo": "domains\/create-record-srv.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "execution.write", + "scope": "domains.write", "platforms": [ - "console", - "client", - "server" + "console" ], "packaging": false, "public": true, @@ -23587,18 +23849,16 @@ }, "security": [ { - "Project": [], - "Key": [], - "JWT": [] + "Project": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "domainId", + "description": "Domain unique ID.", "required": true, "type": "string", - "x-example": "<FUNCTION_ID>", + "x-example": "<DOMAIN_ID>", "in": "path" }, { @@ -23607,96 +23867,102 @@ "schema": { "type": "object", "properties": { - "body": { + "name": { "type": "string", - "description": "HTTP body of execution. Default value is empty string.", - "default": "", - "x-example": "<BODY>" - }, - "async": { - "type": "boolean", - "description": "Execute code in the background. Default value is false.", - "default": false, - "x-example": false + "description": "Record name (service name).", + "default": null, + "x-example": "<NAME>" }, - "path": { + "value": { "type": "string", - "description": "HTTP path of execution. Path can include query params. Default value is \/", - "default": "\/", - "x-example": "<PATH>" + "description": "Target hostname for this SRV record.", + "default": null, + "x-example": "<VALUE>" }, - "method": { - "type": "string", - "description": "HTTP method of execution. Default value is POST.", - "default": "POST", - "x-example": "GET", - "enum": [ - "GET", - "POST", - "PUT", - "PATCH", - "DELETE", - "OPTIONS", - "HEAD" - ], - "x-enum-name": "ExecutionMethod", - "x-enum-keys": [] + "ttl": { + "type": "integer", + "description": "Time to live, in seconds. Must be greater than 0.", + "default": null, + "x-example": 1, + "format": "int32" }, - "headers": { - "type": "object", - "description": "HTTP headers of execution. Defaults to empty.", - "default": [], - "x-example": "{}" + "priority": { + "type": "integer", + "description": "Record priority.", + "default": null, + "x-example": null, + "format": "int32" }, - "scheduledAt": { - "type": "string", - "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.", + "weight": { + "type": "integer", + "description": "Record weight.", "default": null, - "x-example": "<SCHEDULED_AT>", - "x-nullable": true + "x-example": null, + "format": "int32" + }, + "port": { + "type": "integer", + "description": "Port number for the service.", + "default": null, + "x-example": null, + "format": "int32" + }, + "comment": { + "type": "string", + "description": "A comment for this record.", + "default": "", + "x-example": "<COMMENT>" } - } + }, + "required": [ + "name", + "value", + "ttl", + "priority", + "weight", + "port" + ] } } ] } }, - "\/functions\/{functionId}\/executions\/{executionId}": { - "get": { - "summary": "Get execution", - "operationId": "functionsGetExecution", - "consumes": [], + "\/domains\/{domainId}\/records\/srv\/{recordId}": { + "put": { + "summary": "Update an existing SRV record for the given domain.", + "operationId": "domainsUpdateRecordSRV", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "functions" + "domains" ], - "description": "Get a function execution log by its unique ID.", + "description": " Update an existing SRV record for the given domain.\n \n Required 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 \n Optional parameters:\n - comment: A comment for this record", "responses": { "200": { - "description": "Execution", + "description": "DNSRecord", "schema": { - "$ref": "#\/definitions\/execution" + "$ref": "#\/definitions\/dnsRecord" } } }, "deprecated": false, "x-appwrite": { - "method": "getExecution", - "group": "executions", - "weight": 576, + "method": "updateRecordSRV", + "group": null, + "weight": 671, "cookies": false, "type": "", - "demo": "functions\/get-execution.md", + "demo": "domains\/update-record-srv.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "execution.read", + "scope": "domains.write", "platforms": [ - "console", - "client", - "server" + "console" ], "packaging": false, "public": true, @@ -23706,61 +23972,128 @@ }, "security": [ { - "Project": [], - "Key": [], - "JWT": [] + "Project": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "domainId", + "description": "Domain unique ID.", "required": true, "type": "string", - "x-example": "<FUNCTION_ID>", + "x-example": "<DOMAIN_ID>", "in": "path" }, { - "name": "executionId", - "description": "Execution ID.", + "name": "recordId", + "description": "DNS record unique ID.", "required": true, "type": "string", - "x-example": "<EXECUTION_ID>", + "x-example": "<RECORD_ID>", "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Record name (service name).", + "default": null, + "x-example": "<NAME>" + }, + "value": { + "type": "string", + "description": "Target hostname for this SRV record.", + "default": null, + "x-example": "<VALUE>" + }, + "ttl": { + "type": "integer", + "description": "Time to live, in seconds. Must be greater than 0.", + "default": null, + "x-example": 1, + "format": "int32" + }, + "priority": { + "type": "integer", + "description": "Record priority.", + "default": null, + "x-example": null, + "format": "int32" + }, + "weight": { + "type": "integer", + "description": "Record weight.", + "default": null, + "x-example": null, + "format": "int32" + }, + "port": { + "type": "integer", + "description": "Port number for the service.", + "default": null, + "x-example": null, + "format": "int32" + }, + "comment": { + "type": "string", + "description": "A comment for this record.", + "default": "", + "x-example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl", + "priority", + "weight", + "port" + ] + } } ] - }, - "delete": { - "summary": "Delete execution", - "operationId": "functionsDeleteExecution", + } + }, + "\/domains\/{domainId}\/records\/txt": { + "post": { + "summary": "Create a new TXT record for the given domain.", + "operationId": "domainsCreateRecordTXT", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ - "functions" + "domains" ], - "description": "Delete a function execution by its unique ID.", + "description": " Create a new TXT record for the given domain. TXT records can be used \n to provide additional information about your domain, such as domain \n verification records, SPF records, or DKIM records.", "responses": { - "204": { - "description": "No content" + "201": { + "description": "DNSRecord", + "schema": { + "$ref": "#\/definitions\/dnsRecord" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteExecution", - "group": "executions", - "weight": 578, + "method": "createRecordTXT", + "group": null, + "weight": 672, "cookies": false, "type": "", - "demo": "functions\/delete-execution.md", + "demo": "domains\/create-record-txt.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "execution.write", + "scope": "domains.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -23770,62 +24103,93 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "domainId", + "description": "Domain unique ID.", "required": true, "type": "string", - "x-example": "<FUNCTION_ID>", + "x-example": "<DOMAIN_ID>", "in": "path" }, { - "name": "executionId", - "description": "Execution ID.", - "required": true, - "type": "string", - "x-example": "<EXECUTION_ID>", - "in": "path" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Record name (subdomain) for the TXT record.", + "default": null, + "x-example": "<NAME>" + }, + "value": { + "type": "string", + "description": "TXT record value.", + "default": "", + "x-example": "<VALUE>" + }, + "ttl": { + "type": "integer", + "description": "Time to live, in seconds. Must be greater than 0.", + "default": null, + "x-example": 1, + "format": "int32" + }, + "comment": { + "type": "string", + "description": "A comment for this record.", + "default": "", + "x-example": "<COMMENT>" + } + }, + "required": [ + "name", + "ttl" + ] + } } ] } }, - "\/functions\/{functionId}\/usage": { - "get": { - "summary": "Get function usage", - "operationId": "functionsGetUsage", - "consumes": [], + "\/domains\/{domainId}\/records\/txt\/{recordId}": { + "put": { + "summary": "Update an existing TXT record for the given domain.", + "operationId": "domainsUpdateRecordTXT", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "functions" + "domains" ], - "description": "Get usage metrics and statistics for a for a specific function. View statistics including total deployments, builds, executions, storage usage, and compute time. The response includes both current totals and historical data for each metric. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, defaults to 30 days.", + "description": " Update an existing TXT record for the given domain.\n \n Update the TXT record details for a specific domain by providing the domain ID,\n record ID, and the new record configuration including name, value, TTL, and an optional comment.", "responses": { "200": { - "description": "UsageFunction", + "description": "DNSRecord", "schema": { - "$ref": "#\/definitions\/usageFunction" + "$ref": "#\/definitions\/dnsRecord" } } }, "deprecated": false, "x-appwrite": { - "method": "getUsage", + "method": "updateRecordTXT", "group": null, - "weight": 579, + "weight": 673, "cookies": false, "type": "", - "demo": "functions\/get-usage.md", + "demo": "domains\/update-record-txt.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", + "scope": "domains.write", "platforms": [ "console" ], @@ -23842,71 +24206,97 @@ ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "domainId", + "description": "Domain unique ID.", "required": true, "type": "string", - "x-example": "<FUNCTION_ID>", + "x-example": "<DOMAIN_ID>", "in": "path" }, { - "name": "range", - "description": "Date range.", - "required": false, + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, "type": "string", - "x-example": "24h", - "enum": [ - "24h", - "30d", - "90d" - ], - "x-enum-name": "UsageRange", - "x-enum-keys": [ - "Twenty Four Hours", - "Thirty Days", - "Ninety Days" - ], - "default": "30d", - "in": "query" + "x-example": "<RECORD_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Record name (subdomain) for the TXT record.", + "default": null, + "x-example": "<NAME>" + }, + "value": { + "type": "string", + "description": "TXT record value.", + "default": null, + "x-example": "<VALUE>" + }, + "ttl": { + "type": "integer", + "description": "Time to live, in seconds. Must be greater than 0.", + "default": null, + "x-example": 1, + "format": "int32" + }, + "comment": { + "type": "string", + "description": "A comment for this record.", + "default": "", + "x-example": "<COMMENT>" + } + }, + "required": [ + "name", + "value", + "ttl" + ] + } } ] } }, - "\/functions\/{functionId}\/variables": { + "\/domains\/{domainId}\/records\/{recordId}": { "get": { - "summary": "List variables", - "operationId": "functionsListVariables", + "summary": "Get a single DNS record for a given domain by record ID.", + "operationId": "domainsGetRecord", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "functions" + "domains" ], - "description": "Get a list of all variables of a specific function.", + "description": " Get a single DNS record for a given domain by record ID.\n \n This endpoint allows you to retrieve a specific DNS record associated with a domain\n using its unique identifier. The record contains information about the DNS configuration\n such as type, value, and TTL settings.", "responses": { "200": { - "description": "Variables List", + "description": "DNSRecord", "schema": { - "$ref": "#\/definitions\/variableList" + "$ref": "#\/definitions\/dnsRecord" } } }, "deprecated": false, "x-appwrite": { - "method": "listVariables", - "group": "variables", - "weight": 583, + "method": "getRecord", + "group": null, + "weight": 675, "cookies": false, "type": "", - "demo": "functions\/list-variables.md", + "demo": "domains\/get-record.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", + "scope": "domains.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -23916,24 +24306,31 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function unique ID.", + "name": "domainId", + "description": "Domain unique ID.", "required": true, "type": "string", - "x-example": "<FUNCTION_ID>", + "x-example": "<DOMAIN_ID>", + "in": "path" + }, + { + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "type": "string", + "x-example": "<RECORD_ID>", "in": "path" } ] }, - "post": { - "summary": "Create variable", - "operationId": "functionsCreateVariable", + "delete": { + "summary": "Delete a DNS record for the given domain.", + "operationId": "domainsDeleteRecord", "consumes": [ "application\/json" ], @@ -23941,32 +24338,28 @@ "application\/json" ], "tags": [ - "functions" + "domains" ], - "description": "Create a new function environment variable. These variables can be accessed in the function at runtime as environment variables.", + "description": " Delete a DNS record for the given domain. This endpoint allows you to delete an existing DNS record \n from a specific domain.", "responses": { - "201": { - "description": "Variable", - "schema": { - "$ref": "#\/definitions\/variable" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "createVariable", - "group": "variables", - "weight": 581, + "method": "deleteRecord", + "group": null, + "weight": 674, "cookies": false, "type": "", - "demo": "functions\/create-variable.md", + "demo": "domains\/delete-record.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", + "scope": "domains.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -23976,88 +24369,65 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function unique ID.", + "name": "domainId", + "description": "Domain unique ID.", "required": true, "type": "string", - "x-example": "<FUNCTION_ID>", + "x-example": "<DOMAIN_ID>", "in": "path" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Variable key. Max length: 255 chars.", - "default": null, - "x-example": "<KEY>" - }, - "value": { - "type": "string", - "description": "Variable value. Max length: 8192 chars.", - "default": null, - "x-example": "<VALUE>" - }, - "secret": { - "type": "boolean", - "description": "Secret variables can be updated or deleted, but only functions can read them during build and runtime.", - "default": true, - "x-example": false - } - }, - "required": [ - "key", - "value" - ] - } + "name": "recordId", + "description": "DNS record unique ID.", + "required": true, + "type": "string", + "x-example": "<RECORD_ID>", + "in": "path" } ] } }, - "\/functions\/{functionId}\/variables\/{variableId}": { - "get": { - "summary": "Get variable", - "operationId": "functionsGetVariable", - "consumes": [], + "\/domains\/{domainId}\/team": { + "patch": { + "summary": "Update domain team.", + "operationId": "domainsUpdateTeam", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "functions" + "domains" ], - "description": "Get a variable by its unique ID.", + "description": " Update the team ID for a specific domain. This endpoint requires admin access.\n \n Updating the team ID will transfer ownership and access control of the domain\n and all its DNS records to the new team.", "responses": { "200": { - "description": "Variable", + "description": "Domain", "schema": { - "$ref": "#\/definitions\/variable" + "$ref": "#\/definitions\/domain" } } }, "deprecated": false, "x-appwrite": { - "method": "getVariable", - "group": "variables", - "weight": 582, + "method": "updateTeam", + "group": null, + "weight": 650, "cookies": false, "type": "", - "demo": "functions\/get-variable.md", + "demo": "domains\/update-team.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", + "scope": "domains.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -24067,65 +24437,73 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function unique ID.", + "name": "domainId", + "description": "Domain unique ID.", "required": true, "type": "string", - "x-example": "<FUNCTION_ID>", + "x-example": "<DOMAIN_ID>", "in": "path" }, { - "name": "variableId", - "description": "Variable unique ID.", - "required": true, - "type": "string", - "x-example": "<VARIABLE_ID>", - "in": "path" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "teamId": { + "type": "string", + "description": "New team unique ID.", + "default": null, + "x-example": "<TEAM_ID>" + } + }, + "required": [ + "teamId" + ] + } } ] - }, - "put": { - "summary": "Update variable", - "operationId": "functionsUpdateVariable", - "consumes": [ - "application\/json" - ], + } + }, + "\/domains\/{domainId}\/transfers\/status": { + "get": { + "summary": "Get domain transfer status.", + "operationId": "domainsGetTransferStatus", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "functions" + "domains" ], - "description": "Update variable by its unique ID.", + "description": " Get the transfer status for a domain.", "responses": { "200": { - "description": "Variable", + "description": "domainTransferStatus", "schema": { - "$ref": "#\/definitions\/variable" + "$ref": "#\/definitions\/domainTransferStatus" } } }, "deprecated": false, "x-appwrite": { - "method": "updateVariable", - "group": "variables", - "weight": 584, + "method": "getTransferStatus", + "group": null, + "weight": 653, "cookies": false, "type": "", - "demo": "functions\/update-variable.md", + "demo": "domains\/get-transfer-status.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", + "scope": "domains.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -24135,92 +24513,55 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function unique ID.", - "required": true, - "type": "string", - "x-example": "<FUNCTION_ID>", - "in": "path" - }, - { - "name": "variableId", - "description": "Variable unique ID.", + "name": "domainId", + "description": "Domain unique ID.", "required": true, "type": "string", - "x-example": "<VARIABLE_ID>", + "x-example": "<DOMAIN_ID>", "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Variable key. Max length: 255 chars.", - "default": null, - "x-example": "<KEY>" - }, - "value": { - "type": "string", - "description": "Variable value. Max length: 8192 chars.", - "default": null, - "x-example": "<VALUE>", - "x-nullable": true - }, - "secret": { - "type": "boolean", - "description": "Secret variables can be updated or deleted, but only functions can read them during build and runtime.", - "default": null, - "x-example": false, - "x-nullable": true - } - }, - "required": [ - "key" - ] - } } ] - }, - "delete": { - "summary": "Delete variable", - "operationId": "functionsDeleteVariable", - "consumes": [ + } + }, + "\/domains\/{domainId}\/zone": { + "get": { + "summary": "Retrieve the DNS zone file for the given domain.", + "operationId": "domainsGetZone", + "consumes": [], + "produces": [ "application\/json" ], - "produces": [], "tags": [ - "functions" + "domains" ], - "description": "Delete a variable by its unique ID.", + "description": " Retrieve the DNS zone file for the given domain. This endpoint will return the DNS\n zone file in a standardized format that can be used to configure DNS servers.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "File", + "schema": { + "type": "file" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteVariable", - "group": "variables", - "weight": 585, + "method": "getZone", + "group": null, + "weight": 646, "cookies": false, "type": "", - "demo": "functions\/delete-variable.md", + "demo": "domains\/get-zone.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", + "scope": "domains.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, @@ -24230,34 +24571,23 @@ }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function unique ID.", - "required": true, - "type": "string", - "x-example": "<FUNCTION_ID>", - "in": "path" - }, - { - "name": "variableId", - "description": "Variable unique ID.", + "name": "domainId", + "description": "Domain unique ID.", "required": true, "type": "string", - "x-example": "<VARIABLE_ID>", + "x-example": "<DOMAIN_ID>", "in": "path" } ] - } - }, - "\/graphql": { - "post": { - "summary": "GraphQL endpoint", - "operationId": "graphqlQuery", + }, + "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", "consumes": [ "application\/json" ], @@ -24265,337 +24595,111 @@ "application\/json" ], "tags": [ - "graphql" + "domains" ], - "description": "Execute a GraphQL mutation.", + "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": { - "200": { - "description": "Any", + "201": { + "description": "Domain", "schema": { - "$ref": "#\/definitions\/any" + "$ref": "#\/definitions\/domain" } } }, "deprecated": false, "x-appwrite": { - "method": "query", - "group": "graphql", - "weight": 176, + "method": "updateZone", + "group": null, + "weight": 649, "cookies": false, - "type": "graphql", - "demo": "graphql\/query.md", - "rate-limit": 60, - "rate-time": 60, + "type": "", + "demo": "domains\/update-zone.md", + "rate-limit": 0, + "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "graphql", + "scope": "domains.write", "platforms": [ - "console", - "server", - "client" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/graphql\/post.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "query": { - "type": "object", - "description": "The query or queries to execute.", - "default": {}, - "x-example": "{}" - } - }, - "required": [ - "query" - ] - } - } - ] - } - }, - "\/graphql\/mutation": { - "post": { - "summary": "GraphQL endpoint", - "operationId": "graphqlMutation", - "consumes": [ - "application\/json" - ], - "produces": [ - "application\/json" - ], - "tags": [ - "graphql" - ], - "description": "Execute a GraphQL mutation.", - "responses": { - "200": { - "description": "Any", - "schema": { - "$ref": "#\/definitions\/any" - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "mutation", - "group": "graphql", - "weight": 175, - "cookies": false, - "type": "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, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/graphql\/post.md", - "auth": { "Project": [] } - }, - "security": [ - { - "Project": [], - "Key": [], - "JWT": [] - } ], "parameters": [ + { + "name": "domainId", + "description": "Domain unique ID.", + "required": true, + "type": "string", + "x-example": "<DOMAIN_ID>", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "query": { - "type": "object", - "description": "The query or queries to execute.", - "default": {}, - "x-example": "{}" + "content": { + "type": "string", + "description": "DNS zone file content as a string.", + "default": null, + "x-example": "<CONTENT>" } }, "required": [ - "query" + "content" ] } } ] } }, - "\/health": { - "get": { - "summary": "Get HTTP", - "operationId": "healthGet", - "consumes": [], - "produces": [ - "application\/json" - ], - "tags": [ - "health" - ], - "description": "Check the Appwrite HTTP server is up and responsive.", - "responses": { - "200": { - "description": "Health Status", - "schema": { - "$ref": "#\/definitions\/healthStatus" - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "get", - "group": "health", - "weight": 450, - "cookies": false, - "type": "", - "demo": "health\/get.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ] - } - }, - "\/health\/anti-virus": { - "get": { - "summary": "Get antivirus", - "operationId": "healthGetAntivirus", - "consumes": [], - "produces": [ - "application\/json" - ], - "tags": [ - "health" - ], - "description": "Check the Appwrite Antivirus server is up and connection is successful.", - "responses": { - "200": { - "description": "Health Antivirus", - "schema": { - "$ref": "#\/definitions\/healthAntivirus" - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "getAntivirus", - "group": "health", - "weight": 459, - "cookies": false, - "type": "", - "demo": "health\/get-antivirus.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-storage-anti-virus.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ] - } - }, - "\/health\/cache": { - "get": { - "summary": "Get cache", - "operationId": "healthGetCache", - "consumes": [], - "produces": [ - "application\/json" - ], - "tags": [ - "health" - ], - "description": "Check the Appwrite in-memory cache servers are up and connection is successful.", - "responses": { - "200": { - "description": "Status List", - "schema": { - "$ref": "#\/definitions\/healthStatusList" - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "getCache", - "group": "health", - "weight": 453, - "cookies": false, - "type": "", - "demo": "health\/get-cache.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-cache.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ] - } - }, - "\/health\/certificate": { + "\/functions": { "get": { - "summary": "Get the SSL certificate for a domain", - "operationId": "healthGetCertificate", + "summary": "List functions", + "operationId": "functionsList", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "health" + "functions" ], - "description": "Get the SSL certificate for a domain", + "description": "Get a list of all the project's functions. You can use the query params to filter your results.", "responses": { "200": { - "description": "Health Certificate", + "description": "Functions List", "schema": { - "$ref": "#\/definitions\/healthCertificate" + "$ref": "#\/definitions\/functionList" } } }, "deprecated": false, "x-appwrite": { - "method": "getCertificate", - "group": "health", - "weight": 456, + "method": "list", + "group": "functions", + "weight": 477, "cookies": false, "type": "", - "demo": "health\/get-certificate.md", + "demo": "functions\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-certificate.md", "auth": { "Project": [] } @@ -24608,156 +24712,76 @@ ], "parameters": [ { - "name": "domain", - "description": "string", + "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, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", "required": false, "type": "string", + "x-example": "<SEARCH>", + "default": "", + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "type": "boolean", + "x-example": false, + "default": true, "in": "query" } ] - } - }, - "\/health\/db": { - "get": { - "summary": "Get DB", - "operationId": "healthGetDB", - "consumes": [], - "produces": [ + }, + "post": { + "summary": "Create function", + "operationId": "functionsCreate", + "consumes": [ "application\/json" ], - "tags": [ - "health" - ], - "description": "Check the Appwrite database servers are up and connection is successful.", - "responses": { - "200": { - "description": "Status List", - "schema": { - "$ref": "#\/definitions\/healthStatusList" - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "getDB", - "group": "health", - "weight": 452, - "cookies": false, - "type": "", - "demo": "health\/get-db.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-db.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ] - } - }, - "\/health\/pubsub": { - "get": { - "summary": "Get pubsub", - "operationId": "healthGetPubSub", - "consumes": [], "produces": [ "application\/json" ], "tags": [ - "health" + "functions" ], - "description": "Check the Appwrite pub-sub servers are up and connection is successful.", + "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": { - "200": { - "description": "Status List", + "201": { + "description": "Function", "schema": { - "$ref": "#\/definitions\/healthStatusList" + "$ref": "#\/definitions\/function" } } }, "deprecated": false, "x-appwrite": { - "method": "getPubSub", - "group": "health", - "weight": 454, + "method": "create", + "group": "functions", + "weight": 626, "cookies": false, "type": "", - "demo": "health\/get-pub-sub.md", + "demo": "functions\/create.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-pubsub.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ] - } - }, - "\/health\/queue\/audits": { - "get": { - "summary": "Get audits queue", - "operationId": "healthGetQueueAudits", - "consumes": [], - "produces": [ - "application\/json" - ], - "tags": [ - "health" - ], - "description": "Get the number of audit logs that are waiting to be processed in the Appwrite internal queue server.", - "responses": { - "200": { - "description": "Health Queue", - "schema": { - "$ref": "#\/definitions\/healthQueue" - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "getQueueAudits", - "group": "queue", - "weight": 460, - "cookies": false, - "type": "", - "demo": "health\/get-queue-audits.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-audits.md", "auth": { "Project": [] } @@ -24770,118 +24794,341 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, - "type": "integer", - "format": "int32", - "default": 5000, - "in": "query" - } - ] - } - }, - "\/health\/queue\/billing-project-aggregation": { - "get": { - "summary": "Get billing project aggregation queue", - "operationId": "healthGetQueueBillingProjectAggregation", - "consumes": [], - "produces": [ - "application\/json" - ], - "tags": [ - "health" - ], - "description": "Get billing project aggregation queue.", - "responses": { - "200": { - "description": "Health Queue", + "name": "payload", + "in": "body", "schema": { - "$ref": "#\/definitions\/healthQueue" + "type": "object", + "properties": { + "functionId": { + "type": "string", + "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.", + "default": null, + "x-example": "<FUNCTION_ID>" + }, + "name": { + "type": "string", + "description": "Function name. Max length: 128 chars.", + "default": null, + "x-example": "<NAME>" + }, + "runtime": { + "type": "string", + "description": "Execution runtime.", + "default": null, + "x-example": "node-14.5", + "enum": [ + "node-14.5", + "node-16.0", + "node-18.0", + "node-19.0", + "node-20.0", + "node-21.0", + "node-22", + "node-23", + "node-24", + "node-25", + "php-8.0", + "php-8.1", + "php-8.2", + "php-8.3", + "php-8.4", + "ruby-3.0", + "ruby-3.1", + "ruby-3.2", + "ruby-3.3", + "ruby-3.4", + "ruby-4.0", + "python-3.8", + "python-3.9", + "python-3.10", + "python-3.11", + "python-3.12", + "python-3.13", + "python-3.14", + "python-ml-3.11", + "python-ml-3.12", + "python-ml-3.13", + "deno-1.21", + "deno-1.24", + "deno-1.35", + "deno-1.40", + "deno-1.46", + "deno-2.0", + "deno-2.5", + "deno-2.6", + "dart-2.15", + "dart-2.16", + "dart-2.17", + "dart-2.18", + "dart-2.19", + "dart-3.0", + "dart-3.1", + "dart-3.3", + "dart-3.5", + "dart-3.8", + "dart-3.9", + "dart-3.10", + "dotnet-6.0", + "dotnet-7.0", + "dotnet-8.0", + "dotnet-10", + "java-8.0", + "java-11.0", + "java-17.0", + "java-18.0", + "java-21.0", + "java-22", + "java-25", + "swift-5.5", + "swift-5.8", + "swift-5.9", + "swift-5.10", + "swift-6.2", + "kotlin-1.6", + "kotlin-1.8", + "kotlin-1.9", + "kotlin-2.0", + "kotlin-2.3", + "cpp-17", + "cpp-20", + "bun-1.0", + "bun-1.1", + "bun-1.2", + "bun-1.3", + "go-1.23", + "go-1.24", + "go-1.25", + "go-1.26", + "static-1", + "flutter-3.24", + "flutter-3.27", + "flutter-3.29", + "flutter-3.32", + "flutter-3.35", + "flutter-3.38" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "execute": { + "type": "array", + "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.", + "default": [], + "x-example": "[\"any\"]", + "items": { + "type": "string" + } + }, + "events": { + "type": "array", + "description": "Events list. Maximum of 100 events are allowed.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "schedule": { + "type": "string", + "description": "Schedule CRON syntax.", + "default": "", + "x-example": null + }, + "timeout": { + "type": "integer", + "description": "Function maximum execution time in seconds.", + "default": 15, + "x-example": 1, + "format": "int32" + }, + "enabled": { + "type": "boolean", + "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.", + "default": true, + "x-example": false + }, + "logging": { + "type": "boolean", + "description": "When disabled, executions will exclude logs and errors, and will be slightly faster.", + "default": true, + "x-example": false + }, + "entrypoint": { + "type": "string", + "description": "Entrypoint File. This path is relative to the \"providerRootDirectory\".", + "default": "", + "x-example": "<ENTRYPOINT>" + }, + "commands": { + "type": "string", + "description": "Build Commands.", + "default": "", + "x-example": "<COMMANDS>" + }, + "scopes": { + "type": "array", + "description": "List of scopes allowed for API key auto-generated for every execution. Maximum of 100 scopes are allowed.", + "default": [], + "x-example": null, + "items": { + "type": "string", + "enum": [ + "sessions.write", + "users.read", + "users.write", + "teams.read", + "teams.write", + "databases.read", + "databases.write", + "collections.read", + "collections.write", + "tables.read", + "tables.write", + "attributes.read", + "attributes.write", + "columns.read", + "columns.write", + "indexes.read", + "indexes.write", + "documents.read", + "documents.write", + "rows.read", + "rows.write", + "files.read", + "files.write", + "buckets.read", + "buckets.write", + "functions.read", + "functions.write", + "sites.read", + "sites.write", + "log.read", + "log.write", + "execution.read", + "execution.write", + "locale.read", + "avatars.read", + "health.read", + "providers.read", + "providers.write", + "messages.read", + "messages.write", + "topics.read", + "topics.write", + "subscribers.read", + "subscribers.write", + "targets.read", + "targets.write", + "rules.read", + "rules.write", + "schedules.read", + "schedules.write", + "migrations.read", + "migrations.write", + "vcs.read", + "vcs.write", + "assistant.read", + "tokens.read", + "tokens.write", + "policies.write", + "policies.read", + "archives.read", + "archives.write", + "restorations.read", + "restorations.write", + "domains.read", + "domains.write", + "events.read" + ], + "x-enum-name": null, + "x-enum-keys": [] + } + }, + "installationId": { + "type": "string", + "description": "Appwrite Installation ID for VCS (Version Control System) deployment.", + "default": "", + "x-example": "<INSTALLATION_ID>" + }, + "providerRepositoryId": { + "type": "string", + "description": "Repository ID of the repo linked to the function.", + "default": "", + "x-example": "<PROVIDER_REPOSITORY_ID>" + }, + "providerBranch": { + "type": "string", + "description": "Production branch for the repo linked to the function.", + "default": "", + "x-example": "<PROVIDER_BRANCH>" + }, + "providerSilentMode": { + "type": "boolean", + "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.", + "default": false, + "x-example": false + }, + "providerRootDirectory": { + "type": "string", + "description": "Path to function code in the linked repo.", + "default": "", + "x-example": "<PROVIDER_ROOT_DIRECTORY>" + }, + "specification": { + "type": "string", + "description": "Runtime specification for the function and builds.", + "default": {}, + "x-example": null + } + }, + "required": [ + "functionId", + "name", + "runtime" + ] } } - }, - "deprecated": false, - "x-appwrite": { - "method": "getQueueBillingProjectAggregation", - "group": null, - "weight": 734, - "cookies": false, - "type": "", - "demo": "health\/get-queue-billing-project-aggregation.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-billing-project-aggregation.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, - "type": "integer", - "format": "int32", - "default": 10000, - "in": "query" - } ] } }, - "\/health\/queue\/billing-team-aggregation": { + "\/functions\/runtimes": { "get": { - "summary": "Get billing team aggregation queue", - "operationId": "healthGetQueueBillingTeamAggregation", + "summary": "List runtimes", + "operationId": "functionsListRuntimes", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "health" + "functions" ], - "description": "Get billing team aggregation queue.", + "description": "Get a list of all runtimes that are currently active on your instance.", "responses": { "200": { - "description": "Health Queue", + "description": "Runtimes List", "schema": { - "$ref": "#\/definitions\/healthQueue" + "$ref": "#\/definitions\/runtimeList" } } }, "deprecated": false, "x-appwrite": { - "method": "getQueueBillingTeamAggregation", - "group": null, - "weight": 733, + "method": "listRuntimes", + "group": "runtimes", + "weight": 479, "cookies": false, "type": "", - "demo": "health\/get-queue-billing-team-aggregation.md", + "demo": "functions\/list-runtimes.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "public", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-billing-team-aggregation.md", "auth": { "Project": [] } @@ -24891,59 +25138,47 @@ "Project": [], "Key": [] } - ], - "parameters": [ - { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, - "type": "integer", - "format": "int32", - "default": 10000, - "in": "query" - } ] } }, - "\/health\/queue\/builds": { + "\/functions\/specifications": { "get": { - "summary": "Get builds queue", - "operationId": "healthGetQueueBuilds", + "summary": "List specifications", + "operationId": "functionsListSpecifications", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "health" + "functions" ], - "description": "Get the number of builds that are waiting to be processed in the Appwrite internal queue server.", + "description": "List allowed function specifications for this instance.", "responses": { "200": { - "description": "Health Queue", + "description": "Specifications List", "schema": { - "$ref": "#\/definitions\/healthQueue" + "$ref": "#\/definitions\/specificationList" } } }, "deprecated": false, "x-appwrite": { - "method": "getQueueBuilds", - "group": "queue", - "weight": 464, + "method": "listSpecifications", + "group": "runtimes", + "weight": 480, "cookies": false, "type": "", - "demo": "health\/get-queue-builds.md", + "demo": "functions\/list-specifications.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.read", "platforms": [ - "console", - "server" + "server", + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-builds.md", "auth": { "Project": [] } @@ -24953,465 +25188,382 @@ "Project": [], "Key": [] } - ], - "parameters": [ - { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, - "type": "integer", - "format": "int32", - "default": 5000, - "in": "query" - } ] } }, - "\/health\/queue\/builds-priority": { + "\/functions\/templates": { "get": { - "summary": "Get billing aggregation queue", - "operationId": "healthGetQueuePriorityBuilds", + "summary": "List templates", + "operationId": "functionsListTemplates", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "health" + "functions" ], - "description": "Get the priority builds queue size.", + "description": "List available function templates. You can use template details in [createFunction](\/docs\/references\/cloud\/server-nodejs\/functions#create) method.", "responses": { "200": { - "description": "Health Queue", + "description": "Function Templates List", "schema": { - "$ref": "#\/definitions\/healthQueue" + "$ref": "#\/definitions\/templateFunctionList" } } }, "deprecated": false, "x-appwrite": { - "method": "getQueuePriorityBuilds", - "group": null, - "weight": 735, + "method": "listTemplates", + "group": "templates", + "weight": 503, "cookies": false, "type": "", - "demo": "health\/get-queue-priority-builds.md", + "demo": "functions\/list-templates.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "public", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-priority-builds.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 500.", + "name": "runtimes", + "description": "List of runtimes allowed for filtering function templates. Maximum of 100 runtimes are allowed.", "required": false, - "type": "integer", - "format": "int32", - "default": 500, - "in": "query" - } - ] - } - }, - "\/health\/queue\/certificates": { - "get": { - "summary": "Get certificates queue", - "operationId": "healthGetQueueCertificates", - "consumes": [], - "produces": [ - "application\/json" - ], - "tags": [ - "health" - ], - "description": "Get the number of certificates that are waiting to be issued against [Letsencrypt](https:\/\/letsencrypt.org\/) in the Appwrite internal queue server.", - "responses": { - "200": { - "description": "Health Queue", - "schema": { - "$ref": "#\/definitions\/healthQueue" - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "getQueueCertificates", - "group": "queue", - "weight": 463, - "cookies": false, - "type": "", - "demo": "health\/get-queue-certificates.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-certificates.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, - "type": "integer", - "format": "int32", - "default": 5000, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string", + "enum": [ + "node-14.5", + "node-16.0", + "node-18.0", + "node-19.0", + "node-20.0", + "node-21.0", + "node-22", + "node-23", + "node-24", + "node-25", + "php-8.0", + "php-8.1", + "php-8.2", + "php-8.3", + "php-8.4", + "ruby-3.0", + "ruby-3.1", + "ruby-3.2", + "ruby-3.3", + "ruby-3.4", + "ruby-4.0", + "python-3.8", + "python-3.9", + "python-3.10", + "python-3.11", + "python-3.12", + "python-3.13", + "python-3.14", + "python-ml-3.11", + "python-ml-3.12", + "python-ml-3.13", + "deno-1.21", + "deno-1.24", + "deno-1.35", + "deno-1.40", + "deno-1.46", + "deno-2.0", + "deno-2.5", + "deno-2.6", + "dart-2.15", + "dart-2.16", + "dart-2.17", + "dart-2.18", + "dart-2.19", + "dart-3.0", + "dart-3.1", + "dart-3.3", + "dart-3.5", + "dart-3.8", + "dart-3.9", + "dart-3.10", + "dotnet-6.0", + "dotnet-7.0", + "dotnet-8.0", + "dotnet-10", + "java-8.0", + "java-11.0", + "java-17.0", + "java-18.0", + "java-21.0", + "java-22", + "java-25", + "swift-5.5", + "swift-5.8", + "swift-5.9", + "swift-5.10", + "swift-6.2", + "kotlin-1.6", + "kotlin-1.8", + "kotlin-1.9", + "kotlin-2.0", + "kotlin-2.3", + "cpp-17", + "cpp-20", + "bun-1.0", + "bun-1.1", + "bun-1.2", + "bun-1.3", + "go-1.23", + "go-1.24", + "go-1.25", + "go-1.26", + "static-1", + "flutter-3.24", + "flutter-3.27", + "flutter-3.29", + "flutter-3.32", + "flutter-3.35", + "flutter-3.38" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "default": [], "in": "query" - } - ] - } - }, - "\/health\/queue\/databases": { - "get": { - "summary": "Get databases queue", - "operationId": "healthGetQueueDatabases", - "consumes": [], - "produces": [ - "application\/json" - ], - "tags": [ - "health" - ], - "description": "Get the number of database changes that are waiting to be processed in the Appwrite internal queue server.", - "responses": { - "200": { - "description": "Health Queue", - "schema": { - "$ref": "#\/definitions\/healthQueue" - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "getQueueDatabases", - "group": "queue", - "weight": 465, - "cookies": false, - "type": "", - "demo": "health\/get-queue-databases.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-databases.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ + }, { - "name": "name", - "description": "Queue name for which to check the queue size", + "name": "useCases", + "description": "List of use cases allowed for filtering function templates. Maximum of 100 use cases are allowed.", "required": false, - "type": "string", - "x-example": "<NAME>", - "default": "database_db_main", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string", + "enum": [ + "starter", + "databases", + "ai", + "messaging", + "utilities", + "dev-tools", + "auth" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "default": [], "in": "query" }, { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "name": "limit", + "description": "Limit the number of templates returned in the response. Default limit is 25, and maximum limit is 5000.", "required": false, "type": "integer", "format": "int32", - "default": 5000, + "x-example": 1, + "default": 25, "in": "query" - } - ] - } - }, - "\/health\/queue\/deletes": { - "get": { - "summary": "Get deletes queue", - "operationId": "healthGetQueueDeletes", - "consumes": [], - "produces": [ - "application\/json" - ], - "tags": [ - "health" - ], - "description": "Get the number of background destructive changes that are waiting to be processed in the Appwrite internal queue server.", - "responses": { - "200": { - "description": "Health Queue", - "schema": { - "$ref": "#\/definitions\/healthQueue" - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "getQueueDeletes", - "group": "queue", - "weight": 466, - "cookies": false, - "type": "", - "demo": "health\/get-queue-deletes.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-deletes.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ + }, { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "name": "offset", + "description": "Offset the list of returned templates. Maximum offset is 5000.", "required": false, "type": "integer", "format": "int32", - "default": 5000, + "x-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, + "type": "boolean", + "x-example": false, + "default": true, "in": "query" } ] } }, - "\/health\/queue\/failed\/{name}": { + "\/functions\/templates\/{templateId}": { "get": { - "summary": "Get number of failed queue jobs", - "operationId": "healthGetFailedJobs", + "summary": "Get function template", + "operationId": "functionsGetTemplate", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "health" + "functions" ], - "description": "Returns the amount of failed jobs in a given queue.\n", + "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": "Health Queue", + "description": "Template Function", "schema": { - "$ref": "#\/definitions\/healthQueue" + "$ref": "#\/definitions\/templateFunction" } } }, "deprecated": false, "x-appwrite": { - "method": "getFailedJobs", - "group": "queue", - "weight": 473, + "method": "getTemplate", + "group": "templates", + "weight": 502, "cookies": false, "type": "", - "demo": "health\/get-failed-jobs.md", + "demo": "functions\/get-template.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "public", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-failed-queue-jobs.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "name", - "description": "The name of the queue", + "name": "templateId", + "description": "Template ID.", "required": true, "type": "string", - "x-example": "v1-database", - "enum": [ - "v1-database", - "v1-deletes", - "v1-audits", - "v1-mails", - "v1-functions", - "v1-stats-resources", - "v1-stats-usage", - "v1-webhooks", - "v1-certificates", - "v1-builds", - "v1-screenshots", - "v1-messaging", - "v1-migrations" - ], - "x-enum-name": null, - "x-enum-keys": [], + "x-example": "<TEMPLATE_ID>", "in": "path" - }, - { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, - "type": "integer", - "format": "int32", - "default": 5000, - "in": "query" } ] } }, - "\/health\/queue\/functions": { + "\/functions\/usage": { "get": { - "summary": "Get functions queue", - "operationId": "healthGetQueueFunctions", + "summary": "Get functions usage", + "operationId": "functionsListUsage", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "health" + "functions" ], - "description": "Get the number of function executions that are waiting to be processed in the Appwrite internal queue server.", + "description": "Get usage metrics and statistics for all functions in the project. View statistics including total deployments, builds, logs, storage usage, and compute time. The response includes both current totals and historical data for each metric. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, defaults to 30 days.", "responses": { "200": { - "description": "Health Queue", + "description": "UsageFunctions", "schema": { - "$ref": "#\/definitions\/healthQueue" + "$ref": "#\/definitions\/usageFunctions" } } }, "deprecated": false, "x-appwrite": { - "method": "getQueueFunctions", - "group": "queue", - "weight": 470, + "method": "listUsage", + "group": null, + "weight": 496, "cookies": false, "type": "", - "demo": "health\/get-queue-functions.md", + "demo": "functions\/list-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-functions.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "name": "range", + "description": "Date range.", "required": false, - "type": "integer", - "format": "int32", - "default": 5000, + "type": "string", + "x-example": "24h", + "enum": [ + "24h", + "30d", + "90d" + ], + "x-enum-name": "UsageRange", + "x-enum-keys": [ + "Twenty Four Hours", + "Thirty Days", + "Ninety Days" + ], + "default": "30d", "in": "query" } ] } }, - "\/health\/queue\/logs": { + "\/functions\/{functionId}": { "get": { - "summary": "Get logs queue", - "operationId": "healthGetQueueLogs", + "summary": "Get function", + "operationId": "functionsGet", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "health" + "functions" ], - "description": "Get the number of logs that are waiting to be processed in the Appwrite internal queue server.", + "description": "Get a function by its unique ID.", "responses": { "200": { - "description": "Health Queue", + "description": "Function", "schema": { - "$ref": "#\/definitions\/healthQueue" + "$ref": "#\/definitions\/function" } } }, "deprecated": false, "x-appwrite": { - "method": "getQueueLogs", - "group": "queue", - "weight": 462, + "method": "get", + "group": "functions", + "weight": 475, "cookies": false, "type": "", - "demo": "health\/get-queue-logs.md", + "demo": "functions\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-logs.md", "auth": { "Project": [] } @@ -25424,56 +25576,54 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, - "type": "integer", - "format": "int32", - "default": 5000, - "in": "query" + "name": "functionId", + "description": "Function ID.", + "required": true, + "type": "string", + "x-example": "<FUNCTION_ID>", + "in": "path" } ] - } - }, - "\/health\/queue\/mails": { - "get": { - "summary": "Get mails queue", - "operationId": "healthGetQueueMails", - "consumes": [], + }, + "put": { + "summary": "Update function", + "operationId": "functionsUpdate", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "health" + "functions" ], - "description": "Get the number of mails that are waiting to be processed in the Appwrite internal queue server.", + "description": "Update function by its unique ID.", "responses": { "200": { - "description": "Health Queue", + "description": "Function", "schema": { - "$ref": "#\/definitions\/healthQueue" + "$ref": "#\/definitions\/function" } } }, "deprecated": false, "x-appwrite": { - "method": "getQueueMails", - "group": "queue", - "weight": 467, + "method": "update", + "group": "functions", + "weight": 627, "cookies": false, "type": "", - "demo": "health\/get-queue-mails.md", + "demo": "functions\/update.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-mails.md", "auth": { "Project": [] } @@ -25486,56 +25636,337 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, - "type": "integer", - "format": "int32", - "default": 5000, - "in": "query" - } - ] - } - }, - "\/health\/queue\/messaging": { - "get": { - "summary": "Get messaging queue", - "operationId": "healthGetQueueMessaging", - "consumes": [], - "produces": [ + "name": "functionId", + "description": "Function ID.", + "required": true, + "type": "string", + "x-example": "<FUNCTION_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Function name. Max length: 128 chars.", + "default": null, + "x-example": "<NAME>" + }, + "runtime": { + "type": "string", + "description": "Execution runtime.", + "default": "", + "x-example": "node-14.5", + "enum": [ + "node-14.5", + "node-16.0", + "node-18.0", + "node-19.0", + "node-20.0", + "node-21.0", + "node-22", + "node-23", + "node-24", + "node-25", + "php-8.0", + "php-8.1", + "php-8.2", + "php-8.3", + "php-8.4", + "ruby-3.0", + "ruby-3.1", + "ruby-3.2", + "ruby-3.3", + "ruby-3.4", + "ruby-4.0", + "python-3.8", + "python-3.9", + "python-3.10", + "python-3.11", + "python-3.12", + "python-3.13", + "python-3.14", + "python-ml-3.11", + "python-ml-3.12", + "python-ml-3.13", + "deno-1.21", + "deno-1.24", + "deno-1.35", + "deno-1.40", + "deno-1.46", + "deno-2.0", + "deno-2.5", + "deno-2.6", + "dart-2.15", + "dart-2.16", + "dart-2.17", + "dart-2.18", + "dart-2.19", + "dart-3.0", + "dart-3.1", + "dart-3.3", + "dart-3.5", + "dart-3.8", + "dart-3.9", + "dart-3.10", + "dotnet-6.0", + "dotnet-7.0", + "dotnet-8.0", + "dotnet-10", + "java-8.0", + "java-11.0", + "java-17.0", + "java-18.0", + "java-21.0", + "java-22", + "java-25", + "swift-5.5", + "swift-5.8", + "swift-5.9", + "swift-5.10", + "swift-6.2", + "kotlin-1.6", + "kotlin-1.8", + "kotlin-1.9", + "kotlin-2.0", + "kotlin-2.3", + "cpp-17", + "cpp-20", + "bun-1.0", + "bun-1.1", + "bun-1.2", + "bun-1.3", + "go-1.23", + "go-1.24", + "go-1.25", + "go-1.26", + "static-1", + "flutter-3.24", + "flutter-3.27", + "flutter-3.29", + "flutter-3.32", + "flutter-3.35", + "flutter-3.38" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "execute": { + "type": "array", + "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.", + "default": [], + "x-example": "[\"any\"]", + "items": { + "type": "string" + } + }, + "events": { + "type": "array", + "description": "Events list. Maximum of 100 events are allowed.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "schedule": { + "type": "string", + "description": "Schedule CRON syntax.", + "default": "", + "x-example": null + }, + "timeout": { + "type": "integer", + "description": "Maximum execution time in seconds.", + "default": 15, + "x-example": 1, + "format": "int32" + }, + "enabled": { + "type": "boolean", + "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.", + "default": true, + "x-example": false + }, + "logging": { + "type": "boolean", + "description": "When disabled, executions will exclude logs and errors, and will be slightly faster.", + "default": true, + "x-example": false + }, + "entrypoint": { + "type": "string", + "description": "Entrypoint File. This path is relative to the \"providerRootDirectory\".", + "default": "", + "x-example": "<ENTRYPOINT>" + }, + "commands": { + "type": "string", + "description": "Build Commands.", + "default": "", + "x-example": "<COMMANDS>" + }, + "scopes": { + "type": "array", + "description": "List of scopes allowed for API Key auto-generated for every execution. Maximum of 100 scopes are allowed.", + "default": [], + "x-example": null, + "items": { + "type": "string", + "enum": [ + "sessions.write", + "users.read", + "users.write", + "teams.read", + "teams.write", + "databases.read", + "databases.write", + "collections.read", + "collections.write", + "tables.read", + "tables.write", + "attributes.read", + "attributes.write", + "columns.read", + "columns.write", + "indexes.read", + "indexes.write", + "documents.read", + "documents.write", + "rows.read", + "rows.write", + "files.read", + "files.write", + "buckets.read", + "buckets.write", + "functions.read", + "functions.write", + "sites.read", + "sites.write", + "log.read", + "log.write", + "execution.read", + "execution.write", + "locale.read", + "avatars.read", + "health.read", + "providers.read", + "providers.write", + "messages.read", + "messages.write", + "topics.read", + "topics.write", + "subscribers.read", + "subscribers.write", + "targets.read", + "targets.write", + "rules.read", + "rules.write", + "schedules.read", + "schedules.write", + "migrations.read", + "migrations.write", + "vcs.read", + "vcs.write", + "assistant.read", + "tokens.read", + "tokens.write", + "policies.write", + "policies.read", + "archives.read", + "archives.write", + "restorations.read", + "restorations.write", + "domains.read", + "domains.write", + "events.read" + ], + "x-enum-name": null, + "x-enum-keys": [] + } + }, + "installationId": { + "type": "string", + "description": "Appwrite Installation ID for VCS (Version Controle System) deployment.", + "default": "", + "x-example": "<INSTALLATION_ID>" + }, + "providerRepositoryId": { + "type": "string", + "description": "Repository ID of the repo linked to the function", + "default": null, + "x-example": "<PROVIDER_REPOSITORY_ID>", + "x-nullable": true + }, + "providerBranch": { + "type": "string", + "description": "Production branch for the repo linked to the function", + "default": "", + "x-example": "<PROVIDER_BRANCH>" + }, + "providerSilentMode": { + "type": "boolean", + "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.", + "default": false, + "x-example": false + }, + "providerRootDirectory": { + "type": "string", + "description": "Path to function code in the linked repo.", + "default": "", + "x-example": "<PROVIDER_ROOT_DIRECTORY>" + }, + "specification": { + "type": "string", + "description": "Runtime specification for the function and builds.", + "default": {}, + "x-example": null + } + }, + "required": [ + "name" + ] + } + } + ] + }, + "delete": { + "summary": "Delete function", + "operationId": "functionsDelete", + "consumes": [ "application\/json" ], + "produces": [], "tags": [ - "health" + "functions" ], - "description": "Get the number of messages that are waiting to be processed in the Appwrite internal queue server.", + "description": "Delete a function by its unique ID.", "responses": { - "200": { - "description": "Health Queue", - "schema": { - "$ref": "#\/definitions\/healthQueue" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "getQueueMessaging", - "group": "queue", - "weight": 468, + "method": "delete", + "group": "functions", + "weight": 478, "cookies": false, "type": "", - "demo": "health\/get-queue-messaging.md", + "demo": "functions\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-messaging.md", "auth": { "Project": [] } @@ -25548,56 +25979,56 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, - "type": "integer", - "format": "int32", - "default": 5000, - "in": "query" + "name": "functionId", + "description": "Function ID.", + "required": true, + "type": "string", + "x-example": "<FUNCTION_ID>", + "in": "path" } ] } }, - "\/health\/queue\/migrations": { - "get": { - "summary": "Get migrations queue", - "operationId": "healthGetQueueMigrations", - "consumes": [], + "\/functions\/{functionId}\/deployment": { + "patch": { + "summary": "Update function's deployment", + "operationId": "functionsUpdateFunctionDeployment", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "health" + "functions" ], - "description": "Get the number of migrations that are waiting to be processed in the Appwrite internal queue server.", + "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": "Health Queue", + "description": "Function", "schema": { - "$ref": "#\/definitions\/healthQueue" + "$ref": "#\/definitions\/function" } } }, "deprecated": false, "x-appwrite": { - "method": "getQueueMigrations", - "group": "queue", - "weight": 469, + "method": "updateFunctionDeployment", + "group": "functions", + "weight": 483, "cookies": false, "type": "", - "demo": "health\/get-queue-migrations.md", + "demo": "functions\/update-function-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-migrations.md", "auth": { "Project": [] } @@ -25610,56 +26041,72 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, - "type": "integer", - "format": "int32", - "default": 5000, - "in": "query" + "name": "functionId", + "description": "Function ID.", + "required": true, + "type": "string", + "x-example": "<FUNCTION_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "deploymentId": { + "type": "string", + "description": "Deployment ID.", + "default": null, + "x-example": "<DEPLOYMENT_ID>" + } + }, + "required": [ + "deploymentId" + ] + } } ] } }, - "\/health\/queue\/region-manager": { + "\/functions\/{functionId}\/deployments": { "get": { - "summary": "Get region manager queue", - "operationId": "healthGetQueueRegionManager", + "summary": "List deployments", + "operationId": "functionsListDeployments", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "health" + "functions" ], - "description": "Get region manager queue.", + "description": "Get a list of all the function's code deployments. You can use the query params to filter your results.", "responses": { "200": { - "description": "Health Queue", + "description": "Deployments List", "schema": { - "$ref": "#\/definitions\/healthQueue" + "$ref": "#\/definitions\/deploymentList" } } }, "deprecated": false, "x-appwrite": { - "method": "getQueueRegionManager", - "group": null, - "weight": 736, + "method": "listDeployments", + "group": "deployments", + "weight": 484, "cookies": false, "type": "", - "demo": "health\/get-queue-region-manager.md", + "demo": "functions\/list-deployments.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-region-manager.md", "auth": { "Project": [] } @@ -25672,56 +26119,84 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 100.", + "name": "functionId", + "description": "Function ID.", + "required": true, + "type": "string", + "x-example": "<FUNCTION_ID>", + "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, - "type": "integer", - "format": "int32", - "default": 100, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "type": "string", + "x-example": "<SEARCH>", + "default": "", + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "type": "boolean", + "x-example": false, + "default": true, "in": "query" } ] - } - }, - "\/health\/queue\/stats-resources": { - "get": { - "summary": "Get stats resources queue", - "operationId": "healthGetQueueStatsResources", - "consumes": [], + }, + "post": { + "summary": "Create deployment", + "operationId": "functionsCreateDeployment", + "consumes": [ + "multipart\/form-data" + ], "produces": [ "application\/json" ], "tags": [ - "health" + "functions" ], - "description": "Get the number of metrics that are waiting to be processed in the Appwrite stats resources queue.", + "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": { - "200": { - "description": "Health Queue", + "202": { + "description": "Deployment", "schema": { - "$ref": "#\/definitions\/healthQueue" + "$ref": "#\/definitions\/deployment" } } }, "deprecated": false, "x-appwrite": { - "method": "getQueueStatsResources", - "group": "queue", - "weight": 471, + "method": "createDeployment", + "group": "deployments", + "weight": 481, "cookies": false, - "type": "", - "demo": "health\/get-queue-stats-resources.md", + "type": "upload", + "demo": "functions\/create-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.write", "platforms": [ "console", "server" ], - "packaging": false, + "packaging": true, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-stats-resources.md", "auth": { "Project": [] } @@ -25734,56 +26209,87 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "name": "functionId", + "description": "Function ID.", + "required": true, + "type": "string", + "x-example": "<FUNCTION_ID>", + "in": "path" + }, + { + "name": "entrypoint", + "description": "Entrypoint File.", "required": false, - "type": "integer", - "format": "int32", - "default": 5000, - "in": "query" + "type": "string", + "x-example": "<ENTRYPOINT>", + "in": "formData" + }, + { + "name": "commands", + "description": "Build Commands.", + "required": false, + "type": "string", + "x-example": "<COMMANDS>", + "in": "formData" + }, + { + "name": "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.", + "required": true, + "type": "file", + "in": "formData" + }, + { + "name": "activate", + "description": "Automatically activate the deployment when it is finished building.", + "required": true, + "type": "boolean", + "x-example": false, + "in": "formData" } ] } }, - "\/health\/queue\/stats-usage": { - "get": { - "summary": "Get stats usage queue", - "operationId": "healthGetQueueUsage", - "consumes": [], + "\/functions\/{functionId}\/deployments\/duplicate": { + "post": { + "summary": "Create duplicate deployment", + "operationId": "functionsCreateDuplicateDeployment", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "health" + "functions" ], - "description": "Get the number of metrics that are waiting to be processed in the Appwrite internal queue server.", + "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": { - "200": { - "description": "Health Queue", + "202": { + "description": "Deployment", "schema": { - "$ref": "#\/definitions\/healthQueue" + "$ref": "#\/definitions\/deployment" } } }, "deprecated": false, "x-appwrite": { - "method": "getQueueUsage", - "group": "queue", - "weight": 472, + "method": "createDuplicateDeployment", + "group": "deployments", + "weight": 489, "cookies": false, "type": "", - "demo": "health\/get-queue-usage.md", + "demo": "functions\/create-duplicate-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-stats-usage.md", "auth": { "Project": [] } @@ -25796,56 +26302,80 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, - "type": "integer", - "format": "int32", - "default": 5000, - "in": "query" + "name": "functionId", + "description": "Function ID.", + "required": true, + "type": "string", + "x-example": "<FUNCTION_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "deploymentId": { + "type": "string", + "description": "Deployment ID.", + "default": null, + "x-example": "<DEPLOYMENT_ID>" + }, + "buildId": { + "type": "string", + "description": "Build unique ID.", + "default": "", + "x-example": "<BUILD_ID>" + } + }, + "required": [ + "deploymentId" + ] + } } ] } }, - "\/health\/queue\/threats": { - "get": { - "summary": "Get threats queue", - "operationId": "healthGetQueueThreats", - "consumes": [], + "\/functions\/{functionId}\/deployments\/template": { + "post": { + "summary": "Create template deployment", + "operationId": "functionsCreateTemplateDeployment", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "health" + "functions" ], - "description": "Get threats queue.", + "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": { - "200": { - "description": "Health Queue", + "202": { + "description": "Deployment", "schema": { - "$ref": "#\/definitions\/healthQueue" + "$ref": "#\/definitions\/deployment" } } }, "deprecated": false, "x-appwrite": { - "method": "getQueueThreats", - "group": null, - "weight": 737, + "method": "createTemplateDeployment", + "group": "deployments", + "weight": 486, "cookies": false, "type": "", - "demo": "health\/get-queue-threats.md", + "demo": "functions\/create-template-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-threats.md", "auth": { "Project": [] } @@ -25858,56 +26388,115 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 100.", - "required": false, - "type": "integer", - "format": "int32", - "default": 100, - "in": "query" + "name": "functionId", + "description": "Function ID.", + "required": true, + "type": "string", + "x-example": "<FUNCTION_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "repository": { + "type": "string", + "description": "Repository name of the template.", + "default": null, + "x-example": "<REPOSITORY>" + }, + "owner": { + "type": "string", + "description": "The name of the owner of the template.", + "default": null, + "x-example": "<OWNER>" + }, + "rootDirectory": { + "type": "string", + "description": "Path to function code in the template repo.", + "default": null, + "x-example": "<ROOT_DIRECTORY>" + }, + "type": { + "type": "string", + "description": "Type for the reference provided. Can be commit, branch, or tag", + "default": null, + "x-example": "commit", + "enum": [ + "commit", + "branch", + "tag" + ], + "x-enum-name": "TemplateReferenceType", + "x-enum-keys": [] + }, + "reference": { + "type": "string", + "description": "Reference value, can be a commit hash, branch name, or release tag", + "default": null, + "x-example": "<REFERENCE>" + }, + "activate": { + "type": "boolean", + "description": "Automatically activate the deployment when it is finished building.", + "default": false, + "x-example": false + } + }, + "required": [ + "repository", + "owner", + "rootDirectory", + "type", + "reference" + ] + } } ] } }, - "\/health\/queue\/webhooks": { - "get": { - "summary": "Get webhooks queue", - "operationId": "healthGetQueueWebhooks", - "consumes": [], + "\/functions\/{functionId}\/deployments\/vcs": { + "post": { + "summary": "Create VCS deployment", + "operationId": "functionsCreateVcsDeployment", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "health" + "functions" ], - "description": "Get the number of webhooks that are waiting to be processed in the Appwrite internal queue server.", + "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": { - "200": { - "description": "Health Queue", + "202": { + "description": "Deployment", "schema": { - "$ref": "#\/definitions\/healthQueue" + "$ref": "#\/definitions\/deployment" } } }, "deprecated": false, "x-appwrite": { - "method": "getQueueWebhooks", - "group": "queue", - "weight": 461, + "method": "createVcsDeployment", + "group": "deployments", + "weight": 487, "cookies": false, "type": "", - "demo": "health\/get-queue-webhooks.md", + "demo": "functions\/create-vcs-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-webhooks.md", "auth": { "Project": [] } @@ -25920,56 +26509,91 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, - "type": "integer", - "format": "int32", - "default": 5000, - "in": "query" + "name": "functionId", + "description": "Function ID.", + "required": true, + "type": "string", + "x-example": "<FUNCTION_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Type of reference passed. Allowed values are: branch, commit", + "default": null, + "x-example": "branch", + "enum": [ + "branch", + "commit" + ], + "x-enum-name": "VCSReferenceType", + "x-enum-keys": [] + }, + "reference": { + "type": "string", + "description": "VCS reference to create deployment from. Depending on type this can be: branch name, commit hash", + "default": null, + "x-example": "<REFERENCE>" + }, + "activate": { + "type": "boolean", + "description": "Automatically activate the deployment when it is finished building.", + "default": false, + "x-example": false + } + }, + "required": [ + "type", + "reference" + ] + } } ] } }, - "\/health\/storage": { + "\/functions\/{functionId}\/deployments\/{deploymentId}": { "get": { - "summary": "Get storage", - "operationId": "healthGetStorage", + "summary": "Get deployment", + "operationId": "functionsGetDeployment", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "health" + "functions" ], - "description": "Check the Appwrite storage device is up and connection is successful.", + "description": "Get a function deployment by its unique ID.", "responses": { "200": { - "description": "Health Status", + "description": "Deployment", "schema": { - "$ref": "#\/definitions\/healthStatus" + "$ref": "#\/definitions\/deployment" } } }, "deprecated": false, "x-appwrite": { - "method": "getStorage", - "group": "storage", - "weight": 458, + "method": "getDeployment", + "group": "deployments", + "weight": 482, "cookies": false, "type": "", - "demo": "health\/get-storage.md", + "demo": "functions\/get-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-storage.md", "auth": { "Project": [] } @@ -25979,48 +26603,60 @@ "Project": [], "Key": [] } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "type": "string", + "x-example": "<FUNCTION_ID>", + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "type": "string", + "x-example": "<DEPLOYMENT_ID>", + "in": "path" + } ] - } - }, - "\/health\/storage\/local": { - "get": { - "summary": "Get local storage", - "operationId": "healthGetStorageLocal", - "consumes": [], - "produces": [ + }, + "delete": { + "summary": "Delete deployment", + "operationId": "functionsDeleteDeployment", + "consumes": [ "application\/json" ], + "produces": [], "tags": [ - "health" + "functions" ], - "description": "Check the Appwrite local storage device is up and connection is successful.", + "description": "Delete a code deployment by its unique ID.", "responses": { - "200": { - "description": "Health Status", - "schema": { - "$ref": "#\/definitions\/healthStatus" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "getStorageLocal", - "group": "storage", - "weight": 457, + "method": "deleteDeployment", + "group": "deployments", + "weight": 485, "cookies": false, "type": "", - "demo": "health\/get-storage-local.md", + "demo": "functions\/delete-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-storage-local.md", "auth": { "Project": [] } @@ -26030,48 +26666,65 @@ "Project": [], "Key": [] } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "type": "string", + "x-example": "<FUNCTION_ID>", + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "type": "string", + "x-example": "<DEPLOYMENT_ID>", + "in": "path" + } ] } }, - "\/health\/time": { + "\/functions\/{functionId}\/deployments\/{deploymentId}\/download": { "get": { - "summary": "Get time", - "operationId": "healthGetTime", + "summary": "Get deployment download", + "operationId": "functionsGetDeploymentDownload", "consumes": [], "produces": [ - "application\/json" + "*\/*" ], "tags": [ - "health" + "functions" ], - "description": "Check the Appwrite server time is synced with Google remote NTP server. We use this technology to smoothly handle leap seconds with no disruptive events. The [Network Time Protocol](https:\/\/en.wikipedia.org\/wiki\/Network_Time_Protocol) (NTP) is used by hundreds of millions of computers and devices to synchronize their clocks over the Internet. If your computer sets its own clock, it likely uses NTP.", + "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": "Health Time", + "description": "File", "schema": { - "$ref": "#\/definitions\/healthTime" + "type": "file" } } }, "deprecated": false, "x-appwrite": { - "method": "getTime", - "group": "health", - "weight": 455, + "method": "getDeploymentDownload", + "group": "deployments", + "weight": 488, "cookies": false, - "type": "", - "demo": "health\/get-time.md", + "type": "location", + "demo": "functions\/get-deployment-download.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-time.md", "auth": { "Project": [] } @@ -26079,51 +26732,85 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "type": "string", + "x-example": "<FUNCTION_ID>", + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "type": "string", + "x-example": "<DEPLOYMENT_ID>", + "in": "path" + }, + { + "name": "type", + "description": "Deployment file to download. Can be: \"source\", \"output\".", + "required": false, + "type": "string", + "x-example": "source", + "enum": [ + "source", + "output" + ], + "x-enum-name": "DeploymentDownloadType", + "x-enum-keys": [], + "default": "source", + "in": "query" } ] } }, - "\/locale": { - "get": { - "summary": "Get user locale", - "operationId": "localeGet", - "consumes": [], + "\/functions\/{functionId}\/deployments\/{deploymentId}\/status": { + "patch": { + "summary": "Update deployment status", + "operationId": "functionsUpdateDeploymentStatus", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "locale" + "functions" ], - "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))", + "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": "Locale", + "description": "Deployment", "schema": { - "$ref": "#\/definitions\/locale" + "$ref": "#\/definitions\/deployment" } } }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": null, - "weight": 49, + "method": "updateDeploymentStatus", + "group": "deployments", + "weight": 490, "cookies": false, "type": "", - "demo": "locale\/get.md", + "demo": "functions\/update-deployment-status.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "scope": "functions.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-locale.md", "auth": { "Project": [] } @@ -26131,44 +26818,61 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "type": "string", + "x-example": "<FUNCTION_ID>", + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "type": "string", + "x-example": "<DEPLOYMENT_ID>", + "in": "path" } ] } }, - "\/locale\/codes": { + "\/functions\/{functionId}\/executions": { "get": { - "summary": "List locale codes", - "operationId": "localeListCodes", + "summary": "List executions", + "operationId": "functionsListExecutions", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "locale" + "functions" ], - "description": "List of all locale codes in [ISO 639-1](https:\/\/en.wikipedia.org\/wiki\/List_of_ISO_639-1_codes).", + "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": "Locale codes list", + "description": "Executions List", "schema": { - "$ref": "#\/definitions\/localeCodeList" + "$ref": "#\/definitions\/executionList" } } }, "deprecated": false, "x-appwrite": { - "method": "listCodes", - "group": null, - "weight": 50, - "cookies": false, + "method": "listExecutions", + "group": "executions", + "weight": 493, + "cookies": false, "type": "", - "demo": "locale\/list-codes.md", + "demo": "functions\/list-executions.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "scope": "execution.read", "platforms": [ "console", "client", @@ -26176,7 +26880,6 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-locale-codes.md", "auth": { "Project": [] } @@ -26187,41 +26890,72 @@ "Key": [], "JWT": [] } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "type": "string", + "x-example": "<FUNCTION_ID>", + "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, + "type": "array", + "collectionFormat": "multi", + "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, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" + } ] - } - }, - "\/locale\/continents": { - "get": { - "summary": "List continents", - "operationId": "localeListContinents", - "consumes": [], - "produces": [ + }, + "post": { + "summary": "Create execution", + "operationId": "functionsCreateExecution", + "consumes": [ "application\/json" ], + "produces": [ + "multipart\/form-data" + ], "tags": [ - "locale" + "functions" ], - "description": "List of all continents. You can use the locale header to get the data in a supported language.", + "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": { - "200": { - "description": "Continents List", + "201": { + "description": "Execution", "schema": { - "$ref": "#\/definitions\/continentList" + "$ref": "#\/definitions\/execution" } } }, "deprecated": false, "x-appwrite": { - "method": "listContinents", - "group": null, - "weight": 54, + "method": "createExecution", + "group": "executions", + "weight": 491, "cookies": false, "type": "", - "demo": "locale\/list-continents.md", + "demo": "functions\/create-execution.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "scope": "execution.write", "platforms": [ "console", "client", @@ -26229,7 +26963,6 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-continents.md", "auth": { "Project": [] } @@ -26240,41 +26973,108 @@ "Key": [], "JWT": [] } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "type": "string", + "x-example": "<FUNCTION_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "body": { + "type": "string", + "description": "HTTP body of execution. Default value is empty string.", + "default": "", + "x-example": "<BODY>" + }, + "async": { + "type": "boolean", + "description": "Execute code in the background. Default value is false.", + "default": false, + "x-example": false + }, + "path": { + "type": "string", + "description": "HTTP path of execution. Path can include query params. Default value is \/", + "default": "\/", + "x-example": "<PATH>" + }, + "method": { + "type": "string", + "description": "HTTP method of execution. Default value is POST.", + "default": "POST", + "x-example": "GET", + "enum": [ + "GET", + "POST", + "PUT", + "PATCH", + "DELETE", + "OPTIONS", + "HEAD" + ], + "x-enum-name": "ExecutionMethod", + "x-enum-keys": [] + }, + "headers": { + "type": "object", + "description": "HTTP headers of execution. Defaults to empty.", + "default": [], + "x-example": "{}" + }, + "scheduledAt": { + "type": "string", + "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.", + "default": null, + "x-example": "<SCHEDULED_AT>", + "x-nullable": true + } + } + } + } ] } }, - "\/locale\/countries": { + "\/functions\/{functionId}\/executions\/{executionId}": { "get": { - "summary": "List countries", - "operationId": "localeListCountries", + "summary": "Get execution", + "operationId": "functionsGetExecution", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "locale" + "functions" ], - "description": "List of all countries. You can use the locale header to get the data in a supported language.", + "description": "Get a function execution log by its unique ID.", "responses": { "200": { - "description": "Countries List", + "description": "Execution", "schema": { - "$ref": "#\/definitions\/countryList" + "$ref": "#\/definitions\/execution" } } }, "deprecated": false, "x-appwrite": { - "method": "listCountries", - "group": null, - "weight": 51, + "method": "getExecution", + "group": "executions", + "weight": 492, "cookies": false, "type": "", - "demo": "locale\/list-countries.md", + "demo": "functions\/get-execution.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "scope": "execution.read", "platforms": [ "console", "client", @@ -26282,7 +27082,6 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries.md", "auth": { "Project": [] } @@ -26293,49 +27092,60 @@ "Key": [], "JWT": [] } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "type": "string", + "x-example": "<FUNCTION_ID>", + "in": "path" + }, + { + "name": "executionId", + "description": "Execution ID.", + "required": true, + "type": "string", + "x-example": "<EXECUTION_ID>", + "in": "path" + } ] - } - }, - "\/locale\/countries\/eu": { - "get": { - "summary": "List EU countries", - "operationId": "localeListCountriesEU", - "consumes": [], - "produces": [ + }, + "delete": { + "summary": "Delete execution", + "operationId": "functionsDeleteExecution", + "consumes": [ "application\/json" ], + "produces": [], "tags": [ - "locale" + "functions" ], - "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.", + "description": "Delete a function execution by its unique ID.", "responses": { - "200": { - "description": "Countries List", - "schema": { - "$ref": "#\/definitions\/countryList" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "listCountriesEU", - "group": null, - "weight": 52, + "method": "deleteExecution", + "group": "executions", + "weight": 494, "cookies": false, "type": "", - "demo": "locale\/list-countries-eu.md", + "demo": "functions\/delete-execution.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "scope": "execution.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries-eu.md", "auth": { "Project": [] } @@ -26343,105 +27153,145 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "type": "string", + "x-example": "<FUNCTION_ID>", + "in": "path" + }, + { + "name": "executionId", + "description": "Execution ID.", + "required": true, + "type": "string", + "x-example": "<EXECUTION_ID>", + "in": "path" } ] } }, - "\/locale\/countries\/phones": { + "\/functions\/{functionId}\/usage": { "get": { - "summary": "List countries phone codes", - "operationId": "localeListCountriesPhones", + "summary": "Get function usage", + "operationId": "functionsGetUsage", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "locale" + "functions" ], - "description": "List of all countries phone codes. You can use the locale header to get the data in a supported language.", + "description": "Get usage metrics and statistics for a for a specific function. View statistics including total deployments, builds, executions, storage usage, and compute time. The response includes both current totals and historical data for each metric. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, defaults to 30 days.", "responses": { "200": { - "description": "Phones List", + "description": "UsageFunction", "schema": { - "$ref": "#\/definitions\/phoneList" + "$ref": "#\/definitions\/usageFunction" } } }, "deprecated": false, "x-appwrite": { - "method": "listCountriesPhones", + "method": "getUsage", "group": null, - "weight": 53, + "weight": 495, "cookies": false, "type": "", - "demo": "locale\/list-countries-phones.md", + "demo": "functions\/get-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "scope": "functions.read", "platforms": [ - "console", - "client", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries-phones.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [], - "JWT": [] + "Project": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "type": "string", + "x-example": "<FUNCTION_ID>", + "in": "path" + }, + { + "name": "range", + "description": "Date range.", + "required": false, + "type": "string", + "x-example": "24h", + "enum": [ + "24h", + "30d", + "90d" + ], + "x-enum-name": "UsageRange", + "x-enum-keys": [ + "Twenty Four Hours", + "Thirty Days", + "Ninety Days" + ], + "default": "30d", + "in": "query" } ] } }, - "\/locale\/currencies": { + "\/functions\/{functionId}\/variables": { "get": { - "summary": "List currencies", - "operationId": "localeListCurrencies", + "summary": "List variables", + "operationId": "functionsListVariables", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "locale" + "functions" ], - "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.", + "description": "Get a list of all variables of a specific function.", "responses": { "200": { - "description": "Currencies List", + "description": "Variables List", "schema": { - "$ref": "#\/definitions\/currencyList" + "$ref": "#\/definitions\/variableList" } } }, "deprecated": false, "x-appwrite": { - "method": "listCurrencies", - "group": null, - "weight": 55, + "method": "listVariables", + "group": "variables", + "weight": 499, "cookies": false, "type": "", - "demo": "locale\/list-currencies.md", + "demo": "functions\/list-variables.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "scope": "functions.read", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-currencies.md", "auth": { "Project": [] } @@ -26449,52 +27299,59 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function unique ID.", + "required": true, + "type": "string", + "x-example": "<FUNCTION_ID>", + "in": "path" } ] - } - }, - "\/locale\/languages": { - "get": { - "summary": "List languages", - "operationId": "localeListLanguages", - "consumes": [], + }, + "post": { + "summary": "Create variable", + "operationId": "functionsCreateVariable", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "locale" + "functions" ], - "description": "List of all languages classified by ISO 639-1 including 2-letter code, name in English, and name in the respective language.", + "description": "Create a new function environment variable. These variables can be accessed in the function at runtime as environment variables.", "responses": { - "200": { - "description": "Languages List", + "201": { + "description": "Variable", "schema": { - "$ref": "#\/definitions\/languageList" + "$ref": "#\/definitions\/variable" } } }, "deprecated": false, "x-appwrite": { - "method": "listLanguages", - "group": null, - "weight": 56, + "method": "createVariable", + "group": "variables", + "weight": 628, "cookies": false, "type": "", - "demo": "locale\/list-languages.md", + "demo": "functions\/create-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "scope": "functions.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-languages.md", "auth": { "Project": [] } @@ -26502,51 +27359,90 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function unique ID.", + "required": true, + "type": "string", + "x-example": "<FUNCTION_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Variable key. Max length: 255 chars.", + "default": null, + "x-example": "<KEY>" + }, + "value": { + "type": "string", + "description": "Variable value. Max length: 8192 chars.", + "default": null, + "x-example": "<VALUE>" + }, + "secret": { + "type": "boolean", + "description": "Secret variables can be updated or deleted, but only functions can read them during build and runtime.", + "default": true, + "x-example": false + } + }, + "required": [ + "key", + "value" + ] + } } ] } }, - "\/messaging\/messages": { + "\/functions\/{functionId}\/variables\/{variableId}": { "get": { - "summary": "List messages", - "operationId": "messagingListMessages", + "summary": "Get variable", + "operationId": "functionsGetVariable", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "functions" ], - "description": "Get a list of all messages from the current Appwrite project.", + "description": "Get a variable by its unique ID.", "responses": { "200": { - "description": "Message list", + "description": "Variable", "schema": { - "$ref": "#\/definitions\/messageList" + "$ref": "#\/definitions\/variable" } } }, "deprecated": false, "x-appwrite": { - "method": "listMessages", - "group": "messages", - "weight": 231, + "method": "getVariable", + "group": "variables", + "weight": 498, "cookies": false, "type": "", - "demo": "messaging\/list-messages.md", + "demo": "functions\/get-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.read", + "scope": "functions.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-messages.md", "auth": { "Project": [] } @@ -26559,42 +27455,26 @@ ], "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: scheduledAt, deliveredAt, deliveredTotal, status, description, providerType", - "required": false, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, + "name": "functionId", + "description": "Function unique ID.", + "required": true, "type": "string", - "x-example": "<SEARCH>", - "default": "", - "in": "query" + "x-example": "<FUNCTION_ID>", + "in": "path" }, { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "type": "string", + "x-example": "<VARIABLE_ID>", + "in": "path" } ] - } - }, - "\/messaging\/messages\/email": { - "post": { - "summary": "Create email", - "operationId": "messagingCreateEmail", + }, + "put": { + "summary": "Update variable", + "operationId": "functionsUpdateVariable", "consumes": [ "application\/json" ], @@ -26602,36 +27482,35 @@ "application\/json" ], "tags": [ - "messaging" + "functions" ], - "description": "Create a new email message.", + "description": "Update variable by its unique ID.", "responses": { - "201": { - "description": "Message", + "200": { + "description": "Variable", "schema": { - "$ref": "#\/definitions\/message" + "$ref": "#\/definitions\/variable" } } }, "deprecated": false, "x-appwrite": { - "method": "createEmail", - "group": "messages", - "weight": 228, + "method": "updateVariable", + "group": "variables", + "weight": 500, "cookies": false, "type": "", - "demo": "messaging\/create-email.md", + "demo": "functions\/update-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", + "scope": "functions.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-email.md", "auth": { "Project": [] } @@ -26644,154 +27523,89 @@ ], "parameters": [ { - "name": "payload", - "in": "body", - "schema": { + "name": "functionId", + "description": "Function unique ID.", + "required": true, + "type": "string", + "x-example": "<FUNCTION_ID>", + "in": "path" + }, + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "type": "string", + "x-example": "<VARIABLE_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { "type": "object", "properties": { - "messageId": { - "type": "string", - "description": "Message ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": null, - "x-example": "<MESSAGE_ID>" - }, - "subject": { + "key": { "type": "string", - "description": "Email Subject.", + "description": "Variable key. Max length: 255 chars.", "default": null, - "x-example": "<SUBJECT>" + "x-example": "<KEY>" }, - "content": { + "value": { "type": "string", - "description": "Email Content.", + "description": "Variable value. Max length: 8192 chars.", "default": null, - "x-example": "<CONTENT>" - }, - "topics": { - "type": "array", - "description": "List of Topic IDs.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "users": { - "type": "array", - "description": "List of User IDs.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "targets": { - "type": "array", - "description": "List of Targets IDs.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "cc": { - "type": "array", - "description": "Array of target IDs to be added as CC.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "bcc": { - "type": "array", - "description": "Array of target IDs to be added as BCC.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "attachments": { - "type": "array", - "description": "Array of compound ID strings of bucket IDs and file IDs to be attached to the email. They should be formatted as <BUCKET_ID>:<FILE_ID>.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "draft": { - "type": "boolean", - "description": "Is message a draft", - "default": false, - "x-example": false + "x-example": "<VALUE>", + "x-nullable": true }, - "html": { + "secret": { "type": "boolean", - "description": "Is content of type HTML", - "default": false, - "x-example": false - }, - "scheduledAt": { - "type": "string", - "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", + "description": "Secret variables can be updated or deleted, but only functions can read them during build and runtime.", "default": null, - "x-example": null, + "x-example": false, "x-nullable": true } }, "required": [ - "messageId", - "subject", - "content" + "key" ] } } ] - } - }, - "\/messaging\/messages\/email\/{messageId}": { - "patch": { - "summary": "Update email", - "operationId": "messagingUpdateEmail", + }, + "delete": { + "summary": "Delete variable", + "operationId": "functionsDeleteVariable", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ - "messaging" + "functions" ], - "description": "Update an email message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", + "description": "Delete a variable by its unique ID.", "responses": { - "200": { - "description": "Message", - "schema": { - "$ref": "#\/definitions\/message" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateEmail", - "group": "messages", - "weight": 235, + "method": "deleteVariable", + "group": "variables", + "weight": 501, "cookies": false, "type": "", - "demo": "messaging\/update-email.md", + "demo": "functions\/delete-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", + "scope": "functions.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-email.md", "auth": { "Project": [] } @@ -26804,124 +27618,28 @@ ], "parameters": [ { - "name": "messageId", - "description": "Message ID.", + "name": "functionId", + "description": "Function unique ID.", "required": true, "type": "string", - "x-example": "<MESSAGE_ID>", + "x-example": "<FUNCTION_ID>", "in": "path" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "topics": { - "type": "array", - "description": "List of Topic IDs.", - "default": null, - "x-example": null, - "x-nullable": true, - "items": { - "type": "string" - } - }, - "users": { - "type": "array", - "description": "List of User IDs.", - "default": null, - "x-example": null, - "x-nullable": true, - "items": { - "type": "string" - } - }, - "targets": { - "type": "array", - "description": "List of Targets IDs.", - "default": null, - "x-example": null, - "x-nullable": true, - "items": { - "type": "string" - } - }, - "subject": { - "type": "string", - "description": "Email Subject.", - "default": null, - "x-example": "<SUBJECT>", - "x-nullable": true - }, - "content": { - "type": "string", - "description": "Email Content.", - "default": null, - "x-example": "<CONTENT>", - "x-nullable": true - }, - "draft": { - "type": "boolean", - "description": "Is message a draft", - "default": null, - "x-example": false, - "x-nullable": true - }, - "html": { - "type": "boolean", - "description": "Is content of type HTML", - "default": null, - "x-example": false, - "x-nullable": true - }, - "cc": { - "type": "array", - "description": "Array of target IDs to be added as CC.", - "default": null, - "x-example": null, - "x-nullable": true, - "items": { - "type": "string" - } - }, - "bcc": { - "type": "array", - "description": "Array of target IDs to be added as BCC.", - "default": null, - "x-example": null, - "x-nullable": true, - "items": { - "type": "string" - } - }, - "scheduledAt": { - "type": "string", - "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", - "default": null, - "x-example": null, - "x-nullable": true - }, - "attachments": { - "type": "array", - "description": "Array of compound ID strings of bucket IDs and file IDs to be attached to the email. They should be formatted as <BUCKET_ID>:<FILE_ID>.", - "default": null, - "x-example": null, - "x-nullable": true, - "items": { - "type": "string" - } - } - } - } + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "type": "string", + "x-example": "<VARIABLE_ID>", + "in": "path" } ] } }, - "\/messaging\/messages\/push": { + "\/graphql": { "post": { - "summary": "Create push notification", - "operationId": "messagingCreatePush", + "summary": "GraphQL endpoint", + "operationId": "graphqlQuery", "consumes": [ "application\/json" ], @@ -26929,36 +27647,37 @@ "application\/json" ], "tags": [ - "messaging" + "graphql" ], - "description": "Create a new push notification.", + "description": "Execute a GraphQL mutation.", "responses": { - "201": { - "description": "Message", + "200": { + "description": "Any", "schema": { - "$ref": "#\/definitions\/message" + "$ref": "#\/definitions\/any" } } }, "deprecated": false, "x-appwrite": { - "method": "createPush", - "group": "messages", - "weight": 230, + "method": "query", + "group": "graphql", + "weight": 160, "cookies": false, - "type": "", - "demo": "messaging\/create-push.md", - "rate-limit": 0, - "rate-time": 3600, + "type": "graphql", + "demo": "graphql\/query.md", + "rate-limit": 60, + "rate-time": 60, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", + "scope": "graphql", "platforms": [ "console", - "server" + "server", + "client" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-push.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/graphql\/post.md", "auth": { "Project": [] } @@ -26966,7 +27685,8 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ @@ -26976,151 +27696,25 @@ "schema": { "type": "object", "properties": { - "messageId": { - "type": "string", - "description": "Message ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": null, - "x-example": "<MESSAGE_ID>" - }, - "title": { - "type": "string", - "description": "Title for push notification.", - "default": "", - "x-example": "<TITLE>" - }, - "body": { - "type": "string", - "description": "Body for push notification.", - "default": "", - "x-example": "<BODY>" - }, - "topics": { - "type": "array", - "description": "List of Topic IDs.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "users": { - "type": "array", - "description": "List of User IDs.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "targets": { - "type": "array", - "description": "List of Targets IDs.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "data": { + "query": { "type": "object", - "description": "Additional key-value pair data for push notification.", + "description": "The query or queries to execute.", "default": {}, - "x-example": "{}", - "x-nullable": true - }, - "action": { - "type": "string", - "description": "Action for push notification.", - "default": "", - "x-example": "<ACTION>" - }, - "image": { - "type": "string", - "description": "Image for push notification. Must be a compound bucket ID to file ID of a jpeg, png, or bmp image in Appwrite Storage. It should be formatted as <BUCKET_ID>:<FILE_ID>.", - "default": "", - "x-example": "<ID1:ID2>" - }, - "icon": { - "type": "string", - "description": "Icon for push notification. Available only for Android and Web Platform.", - "default": "", - "x-example": "<ICON>" - }, - "sound": { - "type": "string", - "description": "Sound for push notification. Available only for Android and iOS Platform.", - "default": "", - "x-example": "<SOUND>" - }, - "color": { - "type": "string", - "description": "Color for push notification. Available only for Android Platform.", - "default": "", - "x-example": "<COLOR>" - }, - "tag": { - "type": "string", - "description": "Tag for push notification. Available only for Android Platform.", - "default": "", - "x-example": "<TAG>" - }, - "badge": { - "type": "integer", - "description": "Badge for push notification. Available only for iOS Platform.", - "default": -1, - "x-example": null, - "format": "int32" - }, - "draft": { - "type": "boolean", - "description": "Is message a draft", - "default": false, - "x-example": false - }, - "scheduledAt": { - "type": "string", - "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", - "default": null, - "x-example": null, - "x-nullable": true - }, - "contentAvailable": { - "type": "boolean", - "description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.", - "default": false, - "x-example": false - }, - "critical": { - "type": "boolean", - "description": "If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.", - "default": false, - "x-example": false - }, - "priority": { - "type": "string", - "description": "Set the notification priority. \"normal\" will consider device state and may not deliver notifications immediately. \"high\" will always attempt to immediately deliver the notification.", - "default": "high", - "x-example": "normal", - "enum": [ - "normal", - "high" - ], - "x-enum-name": "MessagePriority", - "x-enum-keys": [] + "x-example": "{}" } }, "required": [ - "messageId" + "query" ] } } ] } }, - "\/messaging\/messages\/push\/{messageId}": { - "patch": { - "summary": "Update push notification", - "operationId": "messagingUpdatePush", + "\/graphql\/mutation": { + "post": { + "summary": "GraphQL endpoint", + "operationId": "graphqlMutation", "consumes": [ "application\/json" ], @@ -27128,36 +27722,37 @@ "application\/json" ], "tags": [ - "messaging" + "graphql" ], - "description": "Update a push notification by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", + "description": "Execute a GraphQL mutation.", "responses": { "200": { - "description": "Message", + "description": "Any", "schema": { - "$ref": "#\/definitions\/message" + "$ref": "#\/definitions\/any" } } }, "deprecated": false, "x-appwrite": { - "method": "updatePush", - "group": "messages", - "weight": 237, + "method": "mutation", + "group": "graphql", + "weight": 159, "cookies": false, - "type": "", - "demo": "messaging\/update-push.md", - "rate-limit": 0, - "rate-time": 3600, + "type": "graphql", + "demo": "graphql\/mutation.md", + "rate-limit": 60, + "rate-time": 60, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", + "scope": "graphql", "platforms": [ "console", - "server" + "server", + "client" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-push.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/graphql\/post.md", "auth": { "Project": [] } @@ -27165,283 +27760,71 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ - { - "name": "messageId", - "description": "Message ID.", - "required": true, - "type": "string", - "x-example": "<MESSAGE_ID>", - "in": "path" - }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "topics": { - "type": "array", - "description": "List of Topic IDs.", - "default": null, - "x-example": null, - "x-nullable": true, - "items": { - "type": "string" - } - }, - "users": { - "type": "array", - "description": "List of User IDs.", - "default": null, - "x-example": null, - "x-nullable": true, - "items": { - "type": "string" - } - }, - "targets": { - "type": "array", - "description": "List of Targets IDs.", - "default": null, - "x-example": null, - "x-nullable": true, - "items": { - "type": "string" - } - }, - "title": { - "type": "string", - "description": "Title for push notification.", - "default": null, - "x-example": "<TITLE>", - "x-nullable": true - }, - "body": { - "type": "string", - "description": "Body for push notification.", - "default": null, - "x-example": "<BODY>", - "x-nullable": true - }, - "data": { + "query": { "type": "object", - "description": "Additional Data for push notification.", + "description": "The query or queries to execute.", "default": {}, - "x-example": "{}", - "x-nullable": true - }, - "action": { - "type": "string", - "description": "Action for push notification.", - "default": null, - "x-example": "<ACTION>", - "x-nullable": true - }, - "image": { - "type": "string", - "description": "Image for push notification. Must be a compound bucket ID to file ID of a jpeg, png, or bmp image in Appwrite Storage. It should be formatted as <BUCKET_ID>:<FILE_ID>.", - "default": null, - "x-example": "<ID1:ID2>", - "x-nullable": true - }, - "icon": { - "type": "string", - "description": "Icon for push notification. Available only for Android and Web platforms.", - "default": null, - "x-example": "<ICON>", - "x-nullable": true - }, - "sound": { - "type": "string", - "description": "Sound for push notification. Available only for Android and iOS platforms.", - "default": null, - "x-example": "<SOUND>", - "x-nullable": true - }, - "color": { - "type": "string", - "description": "Color for push notification. Available only for Android platforms.", - "default": null, - "x-example": "<COLOR>", - "x-nullable": true - }, - "tag": { - "type": "string", - "description": "Tag for push notification. Available only for Android platforms.", - "default": null, - "x-example": "<TAG>", - "x-nullable": true - }, - "badge": { - "type": "integer", - "description": "Badge for push notification. Available only for iOS platforms.", - "default": null, - "x-example": null, - "format": "int32", - "x-nullable": true - }, - "draft": { - "type": "boolean", - "description": "Is message a draft", - "default": null, - "x-example": false, - "x-nullable": true - }, - "scheduledAt": { - "type": "string", - "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", - "default": null, - "x-example": null, - "x-nullable": true - }, - "contentAvailable": { - "type": "boolean", - "description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.", - "default": null, - "x-example": false, - "x-nullable": true - }, - "critical": { - "type": "boolean", - "description": "If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.", - "default": null, - "x-example": false, - "x-nullable": true - }, - "priority": { - "type": "string", - "description": "Set the notification priority. \"normal\" will consider device battery state and may send notifications later. \"high\" will always attempt to immediately deliver the notification.", - "default": null, - "x-example": "normal", - "enum": [ - "normal", - "high" - ], - "x-enum-name": "MessagePriority", - "x-enum-keys": [], - "x-nullable": true + "x-example": "{}" } - } + }, + "required": [ + "query" + ] } } ] } }, - "\/messaging\/messages\/sms": { - "post": { - "summary": "Create SMS", - "operationId": "messagingCreateSms", - "consumes": [ - "application\/json" - ], + "\/health": { + "get": { + "summary": "Get HTTP", + "operationId": "healthGet", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "health" ], - "description": "Create a new SMS message.", + "description": "Check the Appwrite HTTP server is up and responsive.", "responses": { - "201": { - "description": "Message", + "200": { + "description": "Health Status", "schema": { - "$ref": "#\/definitions\/message" + "$ref": "#\/definitions\/healthStatus" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createSms", - "group": "messages", - "weight": 229, + "method": "get", + "group": "health", + "weight": 504, "cookies": false, "type": "", - "demo": "messaging\/create-sms.md", + "demo": "health\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-sms.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createSMS" - }, - "methods": [ - { - "name": "createSms", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "messageId", - "content", - "topics", - "users", - "targets", - "draft", - "scheduledAt" - ], - "required": [ - "messageId", - "content" - ], - "responses": [ - { - "code": 201, - "model": "#\/definitions\/message" - } - ], - "description": "Create a new SMS message.", - "demo": "messaging\/create-sms.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createSMS" - } - }, - { - "name": "createSMS", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "messageId", - "content", - "topics", - "users", - "targets", - "draft", - "scheduledAt" - ], - "required": [ - "messageId", - "content" - ], - "responses": [ - { - "code": 201, - "model": "#\/definitions\/message" - } - ], - "description": "Create a new SMS message.", - "demo": "messaging\/create-sms.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get.md", "auth": { "Project": [] } @@ -27451,185 +27834,48 @@ "Project": [], "Key": [] } - ], - "parameters": [ - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "messageId": { - "type": "string", - "description": "Message ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": null, - "x-example": "<MESSAGE_ID>" - }, - "content": { - "type": "string", - "description": "SMS Content.", - "default": null, - "x-example": "<CONTENT>" - }, - "topics": { - "type": "array", - "description": "List of Topic IDs.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "users": { - "type": "array", - "description": "List of User IDs.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "targets": { - "type": "array", - "description": "List of Targets IDs.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "draft": { - "type": "boolean", - "description": "Is message a draft", - "default": false, - "x-example": false - }, - "scheduledAt": { - "type": "string", - "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", - "default": null, - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "messageId", - "content" - ] - } - } ] } }, - "\/messaging\/messages\/sms\/{messageId}": { - "patch": { - "summary": "Update SMS", - "operationId": "messagingUpdateSms", - "consumes": [ - "application\/json" - ], + "\/health\/anti-virus": { + "get": { + "summary": "Get antivirus", + "operationId": "healthGetAntivirus", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "health" ], - "description": "Update an SMS message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", + "description": "Check the Appwrite Antivirus server is up and connection is successful.", "responses": { "200": { - "description": "Message", + "description": "Health Antivirus", "schema": { - "$ref": "#\/definitions\/message" + "$ref": "#\/definitions\/healthAntivirus" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateSms", - "group": "messages", - "weight": 236, + "method": "getAntivirus", + "group": "health", + "weight": 513, "cookies": false, "type": "", - "demo": "messaging\/update-sms.md", + "demo": "health\/get-antivirus.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-sms.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateSMS" - }, - "methods": [ - { - "name": "updateSms", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "messageId", - "topics", - "users", - "targets", - "content", - "draft", - "scheduledAt" - ], - "required": [ - "messageId" - ], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/message" - } - ], - "description": "Update an SMS message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", - "demo": "messaging\/update-sms.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateSMS" - } - }, - { - "name": "updateSMS", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "messageId", - "topics", - "users", - "targets", - "content", - "draft", - "scheduledAt" - ], - "required": [ - "messageId" - ], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/message" - } - ], - "description": "Update an SMS message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", - "demo": "messaging\/update-sms.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-storage-anti-virus.md", "auth": { "Project": [] } @@ -27639,118 +27885,48 @@ "Project": [], "Key": [] } - ], - "parameters": [ - { - "name": "messageId", - "description": "Message ID.", - "required": true, - "type": "string", - "x-example": "<MESSAGE_ID>", - "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "topics": { - "type": "array", - "description": "List of Topic IDs.", - "default": null, - "x-example": null, - "x-nullable": true, - "items": { - "type": "string" - } - }, - "users": { - "type": "array", - "description": "List of User IDs.", - "default": null, - "x-example": null, - "x-nullable": true, - "items": { - "type": "string" - } - }, - "targets": { - "type": "array", - "description": "List of Targets IDs.", - "default": null, - "x-example": null, - "x-nullable": true, - "items": { - "type": "string" - } - }, - "content": { - "type": "string", - "description": "Email Content.", - "default": null, - "x-example": "<CONTENT>", - "x-nullable": true - }, - "draft": { - "type": "boolean", - "description": "Is message a draft", - "default": null, - "x-example": false, - "x-nullable": true - }, - "scheduledAt": { - "type": "string", - "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", - "default": null, - "x-example": null, - "x-nullable": true - } - } - } - } ] } }, - "\/messaging\/messages\/{messageId}": { + "\/health\/cache": { "get": { - "summary": "Get message", - "operationId": "messagingGetMessage", + "summary": "Get cache", + "operationId": "healthGetCache", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "health" ], - "description": "Get a message by its unique ID.\n", + "description": "Check the Appwrite in-memory cache servers are up and connection is successful.", "responses": { "200": { - "description": "Message", + "description": "Status List", "schema": { - "$ref": "#\/definitions\/message" + "$ref": "#\/definitions\/healthStatusList" } } }, "deprecated": false, "x-appwrite": { - "method": "getMessage", - "group": "messages", - "weight": 234, + "method": "getCache", + "group": "health", + "weight": 507, "cookies": false, "type": "", - "demo": "messaging\/get-message.md", + "demo": "health\/get-cache.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.read", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/get-message.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-cache.md", "auth": { "Project": [] } @@ -27760,53 +27936,48 @@ "Project": [], "Key": [] } - ], - "parameters": [ - { - "name": "messageId", - "description": "Message ID.", - "required": true, - "type": "string", - "x-example": "<MESSAGE_ID>", - "in": "path" - } ] - }, - "delete": { - "summary": "Delete message", - "operationId": "messagingDelete", - "consumes": [ - "application\/json" - ], - "produces": [], - "tags": [ - "messaging" + } + }, + "\/health\/certificate": { + "get": { + "summary": "Get the SSL certificate for a domain", + "operationId": "healthGetCertificate", + "consumes": [], + "produces": [ + "application\/json" ], - "description": "Delete a message. If the message is not a draft or scheduled, but has been sent, this will not recall the message.", + "tags": [ + "health" + ], + "description": "Get the SSL certificate for a domain", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Health Certificate", + "schema": { + "$ref": "#\/definitions\/healthCertificate" + } } }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": "messages", - "weight": 238, + "method": "getCertificate", + "group": "health", + "weight": 510, "cookies": false, "type": "", - "demo": "messaging\/delete.md", + "demo": "health\/get-certificate.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-message.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-certificate.md", "auth": { "Project": [] } @@ -27819,55 +27990,54 @@ ], "parameters": [ { - "name": "messageId", - "description": "Message ID.", - "required": true, + "name": "domain", + "description": "string", + "required": false, "type": "string", - "x-example": "<MESSAGE_ID>", - "in": "path" + "in": "query" } ] } }, - "\/messaging\/messages\/{messageId}\/logs": { + "\/health\/console-pausing": { "get": { - "summary": "List message logs", - "operationId": "messagingListMessageLogs", + "summary": "Get console pausing health", + "operationId": "healthGetConsolePausing", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "health" ], - "description": "Get the message activity logs listed by its unique ID.", + "description": "Get console pausing health status. Monitors projects approaching the pause threshold to detect potential issues with console access tracking.\n", "responses": { "200": { - "description": "Logs List", + "description": "Health Status", "schema": { - "$ref": "#\/definitions\/logList" + "$ref": "#\/definitions\/healthStatus" } } }, "deprecated": false, "x-appwrite": { - "method": "listMessageLogs", - "group": "logs", - "weight": 232, + "method": "getConsolePausing", + "group": null, + "weight": 756, "cookies": false, "type": "", - "demo": "messaging\/list-message-logs.md", + "demo": "health\/get-console-pausing.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.read", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-message-logs.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-console-pausing.md", "auth": { "Project": [] } @@ -27880,76 +28050,65 @@ ], "parameters": [ { - "name": "messageId", - "description": "Message ID.", - "required": true, - "type": "string", - "x-example": "<MESSAGE_ID>", - "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). Only supported methods are limit and offset", + "name": "threshold", + "description": "Percentage threshold of projects approaching pause. When hit (equal or higher), endpoint returns server error. Default value is 10.", "required": false, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], + "type": "integer", + "format": "int32", + "default": 10, "in": "query" }, { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "name": "inactivityDays", + "description": "Number of days of inactivity before a project is paused. Should match the plan's projectInactivityDays setting. Default value is 7.", "required": false, - "type": "boolean", - "x-example": false, - "default": true, + "type": "integer", + "format": "int32", + "default": 7, "in": "query" } ] } }, - "\/messaging\/messages\/{messageId}\/targets": { + "\/health\/db": { "get": { - "summary": "List message targets", - "operationId": "messagingListTargets", + "summary": "Get DB", + "operationId": "healthGetDB", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "health" ], - "description": "Get a list of the targets associated with a message.", + "description": "Check the Appwrite database servers are up and connection is successful.", "responses": { "200": { - "description": "Target list", + "description": "Status List", "schema": { - "$ref": "#\/definitions\/targetList" + "$ref": "#\/definitions\/healthStatusList" } } }, "deprecated": false, "x-appwrite": { - "method": "listTargets", - "group": "messages", - "weight": 233, + "method": "getDB", + "group": "health", + "weight": 506, "cookies": false, "type": "", - "demo": "messaging\/list-targets.md", + "demo": "health\/get-db.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.read", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-message-targets.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-db.md", "auth": { "Project": [] } @@ -27959,79 +28118,99 @@ "Project": [], "Key": [] } + ] + } + }, + "\/health\/pubsub": { + "get": { + "summary": "Get pubsub", + "operationId": "healthGetPubSub", + "consumes": [], + "produces": [ + "application\/json" ], - "parameters": [ - { - "name": "messageId", - "description": "Message ID.", - "required": true, - "type": "string", - "x-example": "<MESSAGE_ID>", - "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: userId, providerId, identifier, providerType", - "required": false, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" - }, + "tags": [ + "health" + ], + "description": "Check the Appwrite pub-sub servers are up and connection is successful.", + "responses": { + "200": { + "description": "Status List", + "schema": { + "$ref": "#\/definitions\/healthStatusList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getPubSub", + "group": "health", + "weight": 508, + "cookies": false, + "type": "", + "demo": "health\/get-pub-sub.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-pubsub.md", + "auth": { + "Project": [] + } + }, + "security": [ { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" + "Project": [], + "Key": [] } ] } }, - "\/messaging\/providers": { + "\/health\/queue\/audits": { "get": { - "summary": "List providers", - "operationId": "messagingListProviders", + "summary": "Get audits queue", + "operationId": "healthGetQueueAudits", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "health" ], - "description": "Get a list of all providers from the current Appwrite project.", + "description": "Get the number of audit logs that are waiting to be processed in the Appwrite internal queue server.", "responses": { "200": { - "description": "Provider list", + "description": "Health Queue", "schema": { - "$ref": "#\/definitions\/providerList" + "$ref": "#\/definitions\/healthQueue" } } }, "deprecated": false, "x-appwrite": { - "method": "listProviders", - "group": "providers", - "weight": 202, + "method": "getQueueAudits", + "group": "queue", + "weight": 514, "cookies": false, "type": "", - "demo": "messaging\/list-providers.md", + "demo": "health\/get-queue-audits.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.read", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-providers.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-audits.md", "auth": { "Project": [] } @@ -28044,151 +28223,118 @@ ], "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, provider, type, enabled", + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", "required": false, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], + "type": "integer", + "format": "int32", + "default": 5000, "in": "query" - }, + } + ] + } + }, + "\/health\/queue\/billing-project-aggregation": { + "get": { + "summary": "Get billing project aggregation queue", + "operationId": "healthGetQueueBillingProjectAggregation", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "health" + ], + "description": "Get billing project aggregation queue.", + "responses": { + "200": { + "description": "Health Queue", + "schema": { + "$ref": "#\/definitions\/healthQueue" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getQueueBillingProjectAggregation", + "group": null, + "weight": 752, + "cookies": false, + "type": "", + "demo": "health\/get-queue-billing-project-aggregation.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-billing-project-aggregation.md", + "auth": { + "Project": [] + } + }, + "security": [ { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "type": "string", - "x-example": "<SEARCH>", - "default": "", - "in": "query" - }, + "Project": [], + "Key": [] + } + ], + "parameters": [ { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", "required": false, - "type": "boolean", - "x-example": false, - "default": true, + "type": "integer", + "format": "int32", + "default": 10000, "in": "query" } ] } }, - "\/messaging\/providers\/apns": { - "post": { - "summary": "Create APNS provider", - "operationId": "messagingCreateApnsProvider", - "consumes": [ - "application\/json" - ], + "\/health\/queue\/billing-team-aggregation": { + "get": { + "summary": "Get billing team aggregation queue", + "operationId": "healthGetQueueBillingTeamAggregation", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "health" ], - "description": "Create a new Apple Push Notification service provider.", + "description": "Get billing team aggregation queue.", "responses": { - "201": { - "description": "Provider", + "200": { + "description": "Health Queue", "schema": { - "$ref": "#\/definitions\/provider" + "$ref": "#\/definitions\/healthQueue" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createApnsProvider", - "group": "providers", - "weight": 201, + "method": "getQueueBillingTeamAggregation", + "group": null, + "weight": 751, "cookies": false, "type": "", - "demo": "messaging\/create-apns-provider.md", + "demo": "health\/get-queue-billing-team-aggregation.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-apns-provider.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createAPNSProvider" - }, - "methods": [ - { - "name": "createApnsProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "providerId", - "name", - "authKey", - "authKeyId", - "teamId", - "bundleId", - "sandbox", - "enabled" - ], - "required": [ - "providerId", - "name" - ], - "responses": [ - { - "code": 201, - "model": "#\/definitions\/provider" - } - ], - "description": "Create a new Apple Push Notification service provider.", - "demo": "messaging\/create-apns-provider.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createAPNSProvider" - } - }, - { - "name": "createAPNSProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "providerId", - "name", - "authKey", - "authKeyId", - "teamId", - "bundleId", - "sandbox", - "enabled" - ], - "required": [ - "providerId", - "name" - ], - "responses": [ - { - "code": 201, - "model": "#\/definitions\/provider" - } - ], - "description": "Create a new Apple Push Notification service provider.", - "demo": "messaging\/create-apns-provider.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-billing-team-aggregation.md", "auth": { "Project": [] } @@ -28201,181 +28347,56 @@ ], "parameters": [ { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "providerId": { - "type": "string", - "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": null, - "x-example": "<PROVIDER_ID>" - }, - "name": { - "type": "string", - "description": "Provider name.", - "default": null, - "x-example": "<NAME>" - }, - "authKey": { - "type": "string", - "description": "APNS authentication key.", - "default": "", - "x-example": "<AUTH_KEY>" - }, - "authKeyId": { - "type": "string", - "description": "APNS authentication key ID.", - "default": "", - "x-example": "<AUTH_KEY_ID>" - }, - "teamId": { - "type": "string", - "description": "APNS team ID.", - "default": "", - "x-example": "<TEAM_ID>" - }, - "bundleId": { - "type": "string", - "description": "APNS bundle ID.", - "default": "", - "x-example": "<BUNDLE_ID>" - }, - "sandbox": { - "type": "boolean", - "description": "Use APNS sandbox environment.", - "default": false, - "x-example": false - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "default": null, - "x-example": false, - "x-nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "type": "integer", + "format": "int32", + "default": 10000, + "in": "query" } ] } }, - "\/messaging\/providers\/apns\/{providerId}": { - "patch": { - "summary": "Update APNS provider", - "operationId": "messagingUpdateApnsProvider", - "consumes": [ - "application\/json" - ], + "\/health\/queue\/builds": { + "get": { + "summary": "Get builds queue", + "operationId": "healthGetQueueBuilds", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "health" ], - "description": "Update a Apple Push Notification service provider by its unique ID.", + "description": "Get the number of builds that are waiting to be processed in the Appwrite internal queue server.", "responses": { "200": { - "description": "Provider", + "description": "Health Queue", "schema": { - "$ref": "#\/definitions\/provider" + "$ref": "#\/definitions\/healthQueue" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateApnsProvider", - "group": "providers", - "weight": 215, + "method": "getQueueBuilds", + "group": "queue", + "weight": 518, "cookies": false, "type": "", - "demo": "messaging\/update-apns-provider.md", + "demo": "health\/get-queue-builds.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-apns-provider.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateAPNSProvider" - }, - "methods": [ - { - "name": "updateApnsProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "providerId", - "name", - "enabled", - "authKey", - "authKeyId", - "teamId", - "bundleId", - "sandbox" - ], - "required": [ - "providerId" - ], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/provider" - } - ], - "description": "Update a Apple Push Notification service provider by its unique ID.", - "demo": "messaging\/update-apns-provider.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateAPNSProvider" - } - }, - { - "name": "updateAPNSProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "providerId", - "name", - "enabled", - "authKey", - "authKeyId", - "teamId", - "bundleId", - "sandbox" - ], - "required": [ - "providerId" - ], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/provider" - } - ], - "description": "Update a Apple Push Notification service provider by its unique ID.", - "demo": "messaging\/update-apns-provider.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-builds.md", "auth": { "Project": [] } @@ -28388,174 +28409,56 @@ ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "type": "string", - "x-example": "<PROVIDER_ID>", - "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "default": "", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "default": null, - "x-example": false, - "x-nullable": true - }, - "authKey": { - "type": "string", - "description": "APNS authentication key.", - "default": "", - "x-example": "<AUTH_KEY>" - }, - "authKeyId": { - "type": "string", - "description": "APNS authentication key ID.", - "default": "", - "x-example": "<AUTH_KEY_ID>" - }, - "teamId": { - "type": "string", - "description": "APNS team ID.", - "default": "", - "x-example": "<TEAM_ID>" - }, - "bundleId": { - "type": "string", - "description": "APNS bundle ID.", - "default": "", - "x-example": "<BUNDLE_ID>" - }, - "sandbox": { - "type": "boolean", - "description": "Use APNS sandbox environment.", - "default": null, - "x-example": false, - "x-nullable": true - } - } - } + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "type": "integer", + "format": "int32", + "default": 5000, + "in": "query" } ] } }, - "\/messaging\/providers\/fcm": { - "post": { - "summary": "Create FCM provider", - "operationId": "messagingCreateFcmProvider", - "consumes": [ - "application\/json" - ], + "\/health\/queue\/builds-priority": { + "get": { + "summary": "Get billing aggregation queue", + "operationId": "healthGetQueuePriorityBuilds", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "health" ], - "description": "Create a new Firebase Cloud Messaging provider.", + "description": "Get the priority builds queue size.", "responses": { - "201": { - "description": "Provider", + "200": { + "description": "Health Queue", "schema": { - "$ref": "#\/definitions\/provider" + "$ref": "#\/definitions\/healthQueue" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createFcmProvider", - "group": "providers", - "weight": 200, + "method": "getQueuePriorityBuilds", + "group": null, + "weight": 753, "cookies": false, "type": "", - "demo": "messaging\/create-fcm-provider.md", + "demo": "health\/get-queue-priority-builds.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-fcm-provider.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createFCMProvider" - }, - "methods": [ - { - "name": "createFcmProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "providerId", - "name", - "serviceAccountJSON", - "enabled" - ], - "required": [ - "providerId", - "name" - ], - "responses": [ - { - "code": 201, - "model": "#\/definitions\/provider" - } - ], - "description": "Create a new Firebase Cloud Messaging provider.", - "demo": "messaging\/create-fcm-provider.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createFCMProvider" - } - }, - { - "name": "createFCMProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "providerId", - "name", - "serviceAccountJSON", - "enabled" - ], - "required": [ - "providerId", - "name" - ], - "responses": [ - { - "code": 201, - "model": "#\/definitions\/provider" - } - ], - "description": "Create a new Firebase Cloud Messaging provider.", - "demo": "messaging\/create-fcm-provider.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-priority-builds.md", "auth": { "Project": [] } @@ -28568,150 +28471,56 @@ ], "parameters": [ { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "providerId": { - "type": "string", - "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": null, - "x-example": "<PROVIDER_ID>" - }, - "name": { - "type": "string", - "description": "Provider name.", - "default": null, - "x-example": "<NAME>" - }, - "serviceAccountJSON": { - "type": "object", - "description": "FCM service account JSON.", - "default": {}, - "x-example": "{}", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "default": null, - "x-example": false, - "x-nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 500.", + "required": false, + "type": "integer", + "format": "int32", + "default": 500, + "in": "query" } ] } }, - "\/messaging\/providers\/fcm\/{providerId}": { - "patch": { - "summary": "Update FCM provider", - "operationId": "messagingUpdateFcmProvider", - "consumes": [ - "application\/json" - ], + "\/health\/queue\/certificates": { + "get": { + "summary": "Get certificates queue", + "operationId": "healthGetQueueCertificates", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "health" ], - "description": "Update a Firebase Cloud Messaging provider by its unique ID.", + "description": "Get the number of certificates that are waiting to be issued against [Letsencrypt](https:\/\/letsencrypt.org\/) in the Appwrite internal queue server.", "responses": { "200": { - "description": "Provider", + "description": "Health Queue", "schema": { - "$ref": "#\/definitions\/provider" + "$ref": "#\/definitions\/healthQueue" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateFcmProvider", - "group": "providers", - "weight": 214, + "method": "getQueueCertificates", + "group": "queue", + "weight": 517, "cookies": false, "type": "", - "demo": "messaging\/update-fcm-provider.md", + "demo": "health\/get-queue-certificates.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-fcm-provider.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateFCMProvider" - }, - "methods": [ - { - "name": "updateFcmProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "providerId", - "name", - "enabled", - "serviceAccountJSON" - ], - "required": [ - "providerId" - ], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/provider" - } - ], - "description": "Update a Firebase Cloud Messaging provider by its unique ID.", - "demo": "messaging\/update-fcm-provider.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateFCMProvider" - } - }, - { - "name": "updateFCMProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "providerId", - "name", - "enabled", - "serviceAccountJSON" - ], - "required": [ - "providerId" - ], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/provider" - } - ], - "description": "Update a Firebase Cloud Messaging provider by its unique ID.", - "demo": "messaging\/update-fcm-provider.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-certificates.md", "auth": { "Project": [] } @@ -28724,86 +28533,56 @@ ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "type": "string", - "x-example": "<PROVIDER_ID>", - "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "default": "", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "default": null, - "x-example": false, - "x-nullable": true - }, - "serviceAccountJSON": { - "type": "object", - "description": "FCM service account JSON.", - "default": {}, - "x-example": "{}", - "x-nullable": true - } - } - } + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "type": "integer", + "format": "int32", + "default": 5000, + "in": "query" } ] } }, - "\/messaging\/providers\/mailgun": { - "post": { - "summary": "Create Mailgun provider", - "operationId": "messagingCreateMailgunProvider", - "consumes": [ - "application\/json" - ], + "\/health\/queue\/databases": { + "get": { + "summary": "Get databases queue", + "operationId": "healthGetQueueDatabases", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "health" ], - "description": "Create a new Mailgun provider.", + "description": "Get the number of database changes that are waiting to be processed in the Appwrite internal queue server.", "responses": { - "201": { - "description": "Provider", + "200": { + "description": "Health Queue", "schema": { - "$ref": "#\/definitions\/provider" + "$ref": "#\/definitions\/healthQueue" } } }, "deprecated": false, "x-appwrite": { - "method": "createMailgunProvider", - "group": "providers", - "weight": 191, + "method": "getQueueDatabases", + "group": "queue", + "weight": 519, "cookies": false, "type": "", - "demo": "messaging\/create-mailgun-provider.md", + "demo": "health\/get-queue-databases.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-mailgun-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-databases.md", "auth": { "Project": [] } @@ -28816,126 +28595,65 @@ ], "parameters": [ { - "name": "payload", - "in": "body", + "name": "name", + "description": "Queue name for which to check the queue size", + "required": false, + "type": "string", + "x-example": "<NAME>", + "default": "database_db_main", + "in": "query" + }, + { + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "type": "integer", + "format": "int32", + "default": 5000, + "in": "query" + } + ] + } + }, + "\/health\/queue\/deletes": { + "get": { + "summary": "Get deletes queue", + "operationId": "healthGetQueueDeletes", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "health" + ], + "description": "Get the number of background destructive changes that are waiting to be processed in the Appwrite internal queue server.", + "responses": { + "200": { + "description": "Health Queue", "schema": { - "type": "object", - "properties": { - "providerId": { - "type": "string", - "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": null, - "x-example": "<PROVIDER_ID>" - }, - "name": { - "type": "string", - "description": "Provider name.", - "default": null, - "x-example": "<NAME>" - }, - "apiKey": { - "type": "string", - "description": "Mailgun API Key.", - "default": "", - "x-example": "<API_KEY>" - }, - "domain": { - "type": "string", - "description": "Mailgun Domain.", - "default": "", - "x-example": "<DOMAIN>" - }, - "isEuRegion": { - "type": "boolean", - "description": "Set as EU region.", - "default": null, - "x-example": false, - "x-nullable": true - }, - "fromName": { - "type": "string", - "description": "Sender Name.", - "default": "", - "x-example": "<FROM_NAME>" - }, - "fromEmail": { - "type": "string", - "description": "Sender email address.", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, - "replyToName": { - "type": "string", - "description": "Name set in the reply to field for the mail. Default value is sender name. Reply to name must have reply to email as well.", - "default": "", - "x-example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "type": "string", - "description": "Email set in the reply to field for the mail. Default value is sender email. Reply to email must have reply to name as well.", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "default": null, - "x-example": false, - "x-nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } - } - ] - } - }, - "\/messaging\/providers\/mailgun\/{providerId}": { - "patch": { - "summary": "Update Mailgun provider", - "operationId": "messagingUpdateMailgunProvider", - "consumes": [ - "application\/json" - ], - "produces": [ - "application\/json" - ], - "tags": [ - "messaging" - ], - "description": "Update a Mailgun provider by its unique ID.", - "responses": { - "200": { - "description": "Provider", - "schema": { - "$ref": "#\/definitions\/provider" + "$ref": "#\/definitions\/healthQueue" } } }, "deprecated": false, "x-appwrite": { - "method": "updateMailgunProvider", - "group": "providers", - "weight": 205, + "method": "getQueueDeletes", + "group": "queue", + "weight": 520, "cookies": false, "type": "", - "demo": "messaging\/update-mailgun-provider.md", + "demo": "health\/get-queue-deletes.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-mailgun-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-deletes.md", "auth": { "Project": [] } @@ -28948,123 +28666,56 @@ ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "type": "string", - "x-example": "<PROVIDER_ID>", - "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "default": "", - "x-example": "<NAME>" - }, - "apiKey": { - "type": "string", - "description": "Mailgun API Key.", - "default": "", - "x-example": "<API_KEY>" - }, - "domain": { - "type": "string", - "description": "Mailgun Domain.", - "default": "", - "x-example": "<DOMAIN>" - }, - "isEuRegion": { - "type": "boolean", - "description": "Set as EU region.", - "default": null, - "x-example": false, - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "default": null, - "x-example": false, - "x-nullable": true - }, - "fromName": { - "type": "string", - "description": "Sender Name.", - "default": "", - "x-example": "<FROM_NAME>" - }, - "fromEmail": { - "type": "string", - "description": "Sender email address.", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, - "replyToName": { - "type": "string", - "description": "Name set in the reply to field for the mail. Default value is sender name.", - "default": "", - "x-example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "type": "string", - "description": "Email set in the reply to field for the mail. Default value is sender email.", - "default": "", - "x-example": "<REPLY_TO_EMAIL>" - } - } - } + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "type": "integer", + "format": "int32", + "default": 5000, + "in": "query" } ] } }, - "\/messaging\/providers\/msg91": { - "post": { - "summary": "Create Msg91 provider", - "operationId": "messagingCreateMsg91Provider", - "consumes": [ - "application\/json" - ], + "\/health\/queue\/failed\/{name}": { + "get": { + "summary": "Get number of failed queue jobs", + "operationId": "healthGetFailedJobs", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "health" ], - "description": "Create a new MSG91 provider.", + "description": "Returns the amount of failed jobs in a given queue.\n", "responses": { - "201": { - "description": "Provider", + "200": { + "description": "Health Queue", "schema": { - "$ref": "#\/definitions\/provider" + "$ref": "#\/definitions\/healthQueue" } } }, "deprecated": false, "x-appwrite": { - "method": "createMsg91Provider", - "group": "providers", - "weight": 195, + "method": "getFailedJobs", + "group": "queue", + "weight": 527, "cookies": false, "type": "", - "demo": "messaging\/create-msg-91-provider.md", + "demo": "health\/get-failed-jobs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-msg91-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-failed-queue-jobs.md", "auth": { "Project": [] } @@ -29077,99 +28728,81 @@ ], "parameters": [ { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "providerId": { - "type": "string", - "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": null, - "x-example": "<PROVIDER_ID>" - }, - "name": { - "type": "string", - "description": "Provider name.", - "default": null, - "x-example": "<NAME>" - }, - "templateId": { - "type": "string", - "description": "Msg91 template ID", - "default": "", - "x-example": "<TEMPLATE_ID>" - }, - "senderId": { - "type": "string", - "description": "Msg91 sender ID.", - "default": "", - "x-example": "<SENDER_ID>" - }, - "authKey": { - "type": "string", - "description": "Msg91 auth key.", - "default": "", - "x-example": "<AUTH_KEY>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "default": null, - "x-example": false, - "x-nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } + "name": "name", + "description": "The name of the queue", + "required": true, + "type": "string", + "x-example": "v1-database", + "enum": [ + "v1-database", + "v1-deletes", + "v1-audits", + "v1-mails", + "v1-functions", + "v1-stats-resources", + "v1-stats-usage", + "v1-webhooks", + "v1-certificates", + "v1-builds", + "v1-screenshots", + "v1-messaging", + "v1-migrations" + ], + "x-enum-name": null, + "x-enum-keys": [], + "in": "path" + }, + { + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "type": "integer", + "format": "int32", + "default": 5000, + "in": "query" } ] } }, - "\/messaging\/providers\/msg91\/{providerId}": { - "patch": { - "summary": "Update Msg91 provider", - "operationId": "messagingUpdateMsg91Provider", - "consumes": [ - "application\/json" - ], + "\/health\/queue\/functions": { + "get": { + "summary": "Get functions queue", + "operationId": "healthGetQueueFunctions", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "health" ], - "description": "Update a MSG91 provider by its unique ID.", + "description": "Get the number of function executions that are waiting to be processed in the Appwrite internal queue server.", "responses": { "200": { - "description": "Provider", + "description": "Health Queue", "schema": { - "$ref": "#\/definitions\/provider" + "$ref": "#\/definitions\/healthQueue" } } }, "deprecated": false, "x-appwrite": { - "method": "updateMsg91Provider", - "group": "providers", - "weight": 209, + "method": "getQueueFunctions", + "group": "queue", + "weight": 524, "cookies": false, "type": "", - "demo": "messaging\/update-msg-91-provider.md", + "demo": "health\/get-queue-functions.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-msg91-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-functions.md", "auth": { "Project": [] } @@ -29182,97 +28815,56 @@ ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "type": "string", - "x-example": "<PROVIDER_ID>", - "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "default": "", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "default": null, - "x-example": false, - "x-nullable": true - }, - "templateId": { - "type": "string", - "description": "Msg91 template ID.", - "default": "", - "x-example": "<TEMPLATE_ID>" - }, - "senderId": { - "type": "string", - "description": "Msg91 sender ID.", - "default": "", - "x-example": "<SENDER_ID>" - }, - "authKey": { - "type": "string", - "description": "Msg91 auth key.", - "default": "", - "x-example": "<AUTH_KEY>" - } - } - } + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "type": "integer", + "format": "int32", + "default": 5000, + "in": "query" } ] } }, - "\/messaging\/providers\/resend": { - "post": { - "summary": "Create Resend provider", - "operationId": "messagingCreateResendProvider", - "consumes": [ - "application\/json" - ], + "\/health\/queue\/logs": { + "get": { + "summary": "Get logs queue", + "operationId": "healthGetQueueLogs", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "health" ], - "description": "Create a new Resend provider.", + "description": "Get the number of logs that are waiting to be processed in the Appwrite internal queue server.", "responses": { - "201": { - "description": "Provider", + "200": { + "description": "Health Queue", "schema": { - "$ref": "#\/definitions\/provider" + "$ref": "#\/definitions\/healthQueue" } } }, "deprecated": false, "x-appwrite": { - "method": "createResendProvider", - "group": "providers", - "weight": 193, + "method": "getQueueLogs", + "group": "queue", + "weight": 516, "cookies": false, "type": "", - "demo": "messaging\/create-resend-provider.md", + "demo": "health\/get-queue-logs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-resend-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-logs.md", "auth": { "Project": [] } @@ -29285,113 +28877,56 @@ ], "parameters": [ { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "providerId": { - "type": "string", - "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": null, - "x-example": "<PROVIDER_ID>" - }, - "name": { - "type": "string", - "description": "Provider name.", - "default": null, - "x-example": "<NAME>" - }, - "apiKey": { - "type": "string", - "description": "Resend API key.", - "default": "", - "x-example": "<API_KEY>" - }, - "fromName": { - "type": "string", - "description": "Sender Name.", - "default": "", - "x-example": "<FROM_NAME>" - }, - "fromEmail": { - "type": "string", - "description": "Sender email address.", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, - "replyToName": { - "type": "string", - "description": "Name set in the reply to field for the mail. Default value is sender name.", - "default": "", - "x-example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "type": "string", - "description": "Email set in the reply to field for the mail. Default value is sender email.", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "default": null, - "x-example": false, - "x-nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "type": "integer", + "format": "int32", + "default": 5000, + "in": "query" } ] } }, - "\/messaging\/providers\/resend\/{providerId}": { - "patch": { - "summary": "Update Resend provider", - "operationId": "messagingUpdateResendProvider", - "consumes": [ - "application\/json" - ], + "\/health\/queue\/mails": { + "get": { + "summary": "Get mails queue", + "operationId": "healthGetQueueMails", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "health" ], - "description": "Update a Resend provider by its unique ID.", + "description": "Get the number of mails that are waiting to be processed in the Appwrite internal queue server.", "responses": { "200": { - "description": "Provider", + "description": "Health Queue", "schema": { - "$ref": "#\/definitions\/provider" + "$ref": "#\/definitions\/healthQueue" } } }, "deprecated": false, "x-appwrite": { - "method": "updateResendProvider", - "group": "providers", - "weight": 207, + "method": "getQueueMails", + "group": "queue", + "weight": 521, "cookies": false, "type": "", - "demo": "messaging\/update-resend-provider.md", + "demo": "health\/get-queue-mails.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-resend-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-mails.md", "auth": { "Project": [] } @@ -29404,110 +28939,56 @@ ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "type": "string", - "x-example": "<PROVIDER_ID>", - "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "default": "", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "default": null, - "x-example": false, - "x-nullable": true - }, - "apiKey": { - "type": "string", - "description": "Resend API key.", - "default": "", - "x-example": "<API_KEY>" - }, - "fromName": { - "type": "string", - "description": "Sender Name.", - "default": "", - "x-example": "<FROM_NAME>" - }, - "fromEmail": { - "type": "string", - "description": "Sender email address.", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, - "replyToName": { - "type": "string", - "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", - "default": "", - "x-example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "type": "string", - "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", - "default": "", - "x-example": "<REPLY_TO_EMAIL>" - } - } - } + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "type": "integer", + "format": "int32", + "default": 5000, + "in": "query" } ] } }, - "\/messaging\/providers\/sendgrid": { - "post": { - "summary": "Create Sendgrid provider", - "operationId": "messagingCreateSendgridProvider", - "consumes": [ - "application\/json" - ], + "\/health\/queue\/messaging": { + "get": { + "summary": "Get messaging queue", + "operationId": "healthGetQueueMessaging", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "health" ], - "description": "Create a new Sendgrid provider.", + "description": "Get the number of messages that are waiting to be processed in the Appwrite internal queue server.", "responses": { - "201": { - "description": "Provider", + "200": { + "description": "Health Queue", "schema": { - "$ref": "#\/definitions\/provider" + "$ref": "#\/definitions\/healthQueue" } } }, "deprecated": false, "x-appwrite": { - "method": "createSendgridProvider", - "group": "providers", - "weight": 192, + "method": "getQueueMessaging", + "group": "queue", + "weight": 522, "cookies": false, "type": "", - "demo": "messaging\/create-sendgrid-provider.md", + "demo": "health\/get-queue-messaging.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-sendgrid-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-messaging.md", "auth": { "Project": [] } @@ -29520,113 +29001,56 @@ ], "parameters": [ { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "providerId": { - "type": "string", - "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": null, - "x-example": "<PROVIDER_ID>" - }, - "name": { - "type": "string", - "description": "Provider name.", - "default": null, - "x-example": "<NAME>" - }, - "apiKey": { - "type": "string", - "description": "Sendgrid API key.", - "default": "", - "x-example": "<API_KEY>" - }, - "fromName": { - "type": "string", - "description": "Sender Name.", - "default": "", - "x-example": "<FROM_NAME>" - }, - "fromEmail": { - "type": "string", - "description": "Sender email address.", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, - "replyToName": { - "type": "string", - "description": "Name set in the reply to field for the mail. Default value is sender name.", - "default": "", - "x-example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "type": "string", - "description": "Email set in the reply to field for the mail. Default value is sender email.", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "default": null, - "x-example": false, - "x-nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "type": "integer", + "format": "int32", + "default": 5000, + "in": "query" } ] } }, - "\/messaging\/providers\/sendgrid\/{providerId}": { - "patch": { - "summary": "Update Sendgrid provider", - "operationId": "messagingUpdateSendgridProvider", - "consumes": [ - "application\/json" - ], + "\/health\/queue\/migrations": { + "get": { + "summary": "Get migrations queue", + "operationId": "healthGetQueueMigrations", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "health" ], - "description": "Update a Sendgrid provider by its unique ID.", + "description": "Get the number of migrations that are waiting to be processed in the Appwrite internal queue server.", "responses": { "200": { - "description": "Provider", + "description": "Health Queue", "schema": { - "$ref": "#\/definitions\/provider" + "$ref": "#\/definitions\/healthQueue" } } }, "deprecated": false, "x-appwrite": { - "method": "updateSendgridProvider", - "group": "providers", - "weight": 206, + "method": "getQueueMigrations", + "group": "queue", + "weight": 523, "cookies": false, "type": "", - "demo": "messaging\/update-sendgrid-provider.md", + "demo": "health\/get-queue-migrations.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-sendgrid-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-migrations.md", "auth": { "Project": [] } @@ -29639,196 +29063,56 @@ ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "type": "string", - "x-example": "<PROVIDER_ID>", - "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "default": "", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "default": null, - "x-example": false, - "x-nullable": true - }, - "apiKey": { - "type": "string", - "description": "Sendgrid API key.", - "default": "", - "x-example": "<API_KEY>" - }, - "fromName": { - "type": "string", - "description": "Sender Name.", - "default": "", - "x-example": "<FROM_NAME>" - }, - "fromEmail": { - "type": "string", - "description": "Sender email address.", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, - "replyToName": { - "type": "string", - "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", - "default": "", - "x-example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "type": "string", - "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", - "default": "", - "x-example": "<REPLY_TO_EMAIL>" - } - } - } + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "type": "integer", + "format": "int32", + "default": 5000, + "in": "query" } ] } }, - "\/messaging\/providers\/smtp": { - "post": { - "summary": "Create SMTP provider", - "operationId": "messagingCreateSmtpProvider", - "consumes": [ - "application\/json" - ], + "\/health\/queue\/region-manager": { + "get": { + "summary": "Get region manager queue", + "operationId": "healthGetQueueRegionManager", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "health" ], - "description": "Create a new SMTP provider.", + "description": "Get region manager queue.", "responses": { - "201": { - "description": "Provider", + "200": { + "description": "Health Queue", "schema": { - "$ref": "#\/definitions\/provider" + "$ref": "#\/definitions\/healthQueue" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createSmtpProvider", - "group": "providers", - "weight": 194, + "method": "getQueueRegionManager", + "group": null, + "weight": 754, "cookies": false, "type": "", - "demo": "messaging\/create-smtp-provider.md", + "demo": "health\/get-queue-region-manager.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-smtp-provider.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createSMTPProvider" - }, - "methods": [ - { - "name": "createSmtpProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "providerId", - "name", - "host", - "port", - "username", - "password", - "encryption", - "autoTLS", - "mailer", - "fromName", - "fromEmail", - "replyToName", - "replyToEmail", - "enabled" - ], - "required": [ - "providerId", - "name", - "host" - ], - "responses": [ - { - "code": 201, - "model": "#\/definitions\/provider" - } - ], - "description": "Create a new SMTP provider.", - "demo": "messaging\/create-smtp-provider.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createSMTPProvider" - } - }, - { - "name": "createSMTPProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "providerId", - "name", - "host", - "port", - "username", - "password", - "encryption", - "autoTLS", - "mailer", - "fromName", - "fromEmail", - "replyToName", - "replyToEmail", - "enabled" - ], - "required": [ - "providerId", - "name", - "host" - ], - "responses": [ - { - "code": 201, - "model": "#\/definitions\/provider" - } - ], - "description": "Create a new SMTP provider.", - "demo": "messaging\/create-smtp-provider.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-region-manager.md", "auth": { "Project": [] } @@ -29841,240 +29125,56 @@ ], "parameters": [ { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "providerId": { - "type": "string", - "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": null, - "x-example": "<PROVIDER_ID>" - }, - "name": { - "type": "string", - "description": "Provider name.", - "default": null, - "x-example": "<NAME>" - }, - "host": { - "type": "string", - "description": "SMTP hosts. Either a single hostname or multiple semicolon-delimited hostnames. You can also specify a different port for each host such as `smtp1.example.com:25;smtp2.example.com`. You can also specify encryption type, for example: `tls:\/\/smtp1.example.com:587;ssl:\/\/smtp2.example.com:465\"`. Hosts will be tried in order.", - "default": null, - "x-example": "<HOST>" - }, - "port": { - "type": "integer", - "description": "The default SMTP server port.", - "default": 587, - "x-example": 1, - "format": "int32" - }, - "username": { - "type": "string", - "description": "Authentication username.", - "default": "", - "x-example": "<USERNAME>" - }, - "password": { - "type": "string", - "description": "Authentication password.", - "default": "", - "x-example": "<PASSWORD>" - }, - "encryption": { - "type": "string", - "description": "Encryption type. Can be omitted, 'ssl', or 'tls'", - "default": "", - "x-example": "none", - "enum": [ - "none", - "ssl", - "tls" - ], - "x-enum-name": "SmtpEncryption", - "x-enum-keys": [] - }, - "autoTLS": { - "type": "boolean", - "description": "Enable SMTP AutoTLS feature.", - "default": true, - "x-example": false - }, - "mailer": { - "type": "string", - "description": "The value to use for the X-Mailer header.", - "default": "", - "x-example": "<MAILER>" - }, - "fromName": { - "type": "string", - "description": "Sender Name.", - "default": "", - "x-example": "<FROM_NAME>" - }, - "fromEmail": { - "type": "string", - "description": "Sender email address.", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, - "replyToName": { - "type": "string", - "description": "Name set in the reply to field for the mail. Default value is sender name.", - "default": "", - "x-example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "type": "string", - "description": "Email set in the reply to field for the mail. Default value is sender email.", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "default": null, - "x-example": false, - "x-nullable": true - } - }, - "required": [ - "providerId", - "name", - "host" - ] - } + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 100.", + "required": false, + "type": "integer", + "format": "int32", + "default": 100, + "in": "query" } ] } }, - "\/messaging\/providers\/smtp\/{providerId}": { - "patch": { - "summary": "Update SMTP provider", - "operationId": "messagingUpdateSmtpProvider", - "consumes": [ - "application\/json" - ], + "\/health\/queue\/stats-resources": { + "get": { + "summary": "Get stats resources queue", + "operationId": "healthGetQueueStatsResources", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "health" ], - "description": "Update a SMTP provider by its unique ID.", + "description": "Get the number of metrics that are waiting to be processed in the Appwrite stats resources queue.", "responses": { "200": { - "description": "Provider", + "description": "Health Queue", "schema": { - "$ref": "#\/definitions\/provider" + "$ref": "#\/definitions\/healthQueue" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateSmtpProvider", - "group": "providers", - "weight": 208, + "method": "getQueueStatsResources", + "group": "queue", + "weight": 525, "cookies": false, "type": "", - "demo": "messaging\/update-smtp-provider.md", + "demo": "health\/get-queue-stats-resources.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-smtp-provider.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateSMTPProvider" - }, - "methods": [ - { - "name": "updateSmtpProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "providerId", - "name", - "host", - "port", - "username", - "password", - "encryption", - "autoTLS", - "mailer", - "fromName", - "fromEmail", - "replyToName", - "replyToEmail", - "enabled" - ], - "required": [ - "providerId" - ], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/provider" - } - ], - "description": "Update a SMTP provider by its unique ID.", - "demo": "messaging\/update-smtp-provider.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateSMTPProvider" - } - }, - { - "name": "updateSMTPProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "providerId", - "name", - "host", - "port", - "username", - "password", - "encryption", - "autoTLS", - "mailer", - "fromName", - "fromEmail", - "replyToName", - "replyToEmail", - "enabled" - ], - "required": [ - "providerId" - ], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/provider" - } - ], - "description": "Update a SMTP provider by its unique ID.", - "demo": "messaging\/update-smtp-provider.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-stats-resources.md", "auth": { "Project": [] } @@ -30087,156 +29187,56 @@ ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "type": "string", - "x-example": "<PROVIDER_ID>", - "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "default": "", - "x-example": "<NAME>" - }, - "host": { - "type": "string", - "description": "SMTP hosts. Either a single hostname or multiple semicolon-delimited hostnames. You can also specify a different port for each host such as `smtp1.example.com:25;smtp2.example.com`. You can also specify encryption type, for example: `tls:\/\/smtp1.example.com:587;ssl:\/\/smtp2.example.com:465\"`. Hosts will be tried in order.", - "default": "", - "x-example": "<HOST>" - }, - "port": { - "type": "integer", - "description": "SMTP port.", - "default": null, - "x-example": 1, - "format": "int32", - "x-nullable": true - }, - "username": { - "type": "string", - "description": "Authentication username.", - "default": "", - "x-example": "<USERNAME>" - }, - "password": { - "type": "string", - "description": "Authentication password.", - "default": "", - "x-example": "<PASSWORD>" - }, - "encryption": { - "type": "string", - "description": "Encryption type. Can be 'ssl' or 'tls'", - "default": "", - "x-example": "none", - "enum": [ - "none", - "ssl", - "tls" - ], - "x-enum-name": "SmtpEncryption", - "x-enum-keys": [] - }, - "autoTLS": { - "type": "boolean", - "description": "Enable SMTP AutoTLS feature.", - "default": null, - "x-example": false, - "x-nullable": true - }, - "mailer": { - "type": "string", - "description": "The value to use for the X-Mailer header.", - "default": "", - "x-example": "<MAILER>" - }, - "fromName": { - "type": "string", - "description": "Sender Name.", - "default": "", - "x-example": "<FROM_NAME>" - }, - "fromEmail": { - "type": "string", - "description": "Sender email address.", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, - "replyToName": { - "type": "string", - "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", - "default": "", - "x-example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "type": "string", - "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", - "default": "", - "x-example": "<REPLY_TO_EMAIL>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "default": null, - "x-example": false, - "x-nullable": true - } - } - } + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "type": "integer", + "format": "int32", + "default": 5000, + "in": "query" } ] } }, - "\/messaging\/providers\/telesign": { - "post": { - "summary": "Create Telesign provider", - "operationId": "messagingCreateTelesignProvider", - "consumes": [ - "application\/json" - ], + "\/health\/queue\/stats-usage": { + "get": { + "summary": "Get stats usage queue", + "operationId": "healthGetQueueUsage", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "health" ], - "description": "Create a new Telesign provider.", + "description": "Get the number of metrics that are waiting to be processed in the Appwrite internal queue server.", "responses": { - "201": { - "description": "Provider", + "200": { + "description": "Health Queue", "schema": { - "$ref": "#\/definitions\/provider" + "$ref": "#\/definitions\/healthQueue" } } }, "deprecated": false, "x-appwrite": { - "method": "createTelesignProvider", - "group": "providers", - "weight": 196, + "method": "getQueueUsage", + "group": "queue", + "weight": 526, "cookies": false, "type": "", - "demo": "messaging\/create-telesign-provider.md", + "demo": "health\/get-queue-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-telesign-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-stats-usage.md", "auth": { "Project": [] } @@ -30249,100 +29249,56 @@ ], "parameters": [ { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "providerId": { - "type": "string", - "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": null, - "x-example": "<PROVIDER_ID>" - }, - "name": { - "type": "string", - "description": "Provider name.", - "default": null, - "x-example": "<NAME>" - }, - "from": { - "type": "string", - "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "default": "", - "x-example": "+12065550100", - "format": "phone" - }, - "customerId": { - "type": "string", - "description": "Telesign customer ID.", - "default": "", - "x-example": "<CUSTOMER_ID>" - }, - "apiKey": { - "type": "string", - "description": "Telesign API key.", - "default": "", - "x-example": "<API_KEY>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "default": null, - "x-example": false, - "x-nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "type": "integer", + "format": "int32", + "default": 5000, + "in": "query" } ] } }, - "\/messaging\/providers\/telesign\/{providerId}": { - "patch": { - "summary": "Update Telesign provider", - "operationId": "messagingUpdateTelesignProvider", - "consumes": [ - "application\/json" - ], + "\/health\/queue\/threats": { + "get": { + "summary": "Get threats queue", + "operationId": "healthGetQueueThreats", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "health" ], - "description": "Update a Telesign provider by its unique ID.", + "description": "Get threats queue.", "responses": { "200": { - "description": "Provider", + "description": "Health Queue", "schema": { - "$ref": "#\/definitions\/provider" + "$ref": "#\/definitions\/healthQueue" } } }, "deprecated": false, "x-appwrite": { - "method": "updateTelesignProvider", - "group": "providers", - "weight": 210, + "method": "getQueueThreats", + "group": null, + "weight": 755, "cookies": false, "type": "", - "demo": "messaging\/update-telesign-provider.md", + "demo": "health\/get-queue-threats.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-telesign-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-threats.md", "auth": { "Project": [] } @@ -30355,97 +29311,56 @@ ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "type": "string", - "x-example": "<PROVIDER_ID>", - "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "default": "", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "default": null, - "x-example": false, - "x-nullable": true - }, - "customerId": { - "type": "string", - "description": "Telesign customer ID.", - "default": "", - "x-example": "<CUSTOMER_ID>" - }, - "apiKey": { - "type": "string", - "description": "Telesign API key.", - "default": "", - "x-example": "<API_KEY>" - }, - "from": { - "type": "string", - "description": "Sender number.", - "default": "", - "x-example": "<FROM>" - } - } - } + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 100.", + "required": false, + "type": "integer", + "format": "int32", + "default": 100, + "in": "query" } ] } }, - "\/messaging\/providers\/textmagic": { - "post": { - "summary": "Create Textmagic provider", - "operationId": "messagingCreateTextmagicProvider", - "consumes": [ - "application\/json" - ], + "\/health\/queue\/webhooks": { + "get": { + "summary": "Get webhooks queue", + "operationId": "healthGetQueueWebhooks", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "health" ], - "description": "Create a new Textmagic provider.", + "description": "Get the number of webhooks that are waiting to be processed in the Appwrite internal queue server.", "responses": { - "201": { - "description": "Provider", + "200": { + "description": "Health Queue", "schema": { - "$ref": "#\/definitions\/provider" + "$ref": "#\/definitions\/healthQueue" } } }, "deprecated": false, "x-appwrite": { - "method": "createTextmagicProvider", - "group": "providers", - "weight": 197, + "method": "getQueueWebhooks", + "group": "queue", + "weight": 515, "cookies": false, "type": "", - "demo": "messaging\/create-textmagic-provider.md", + "demo": "health\/get-queue-webhooks.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-textmagic-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-webhooks.md", "auth": { "Project": [] } @@ -30458,100 +29373,56 @@ ], "parameters": [ { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "providerId": { - "type": "string", - "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": null, - "x-example": "<PROVIDER_ID>" - }, - "name": { - "type": "string", - "description": "Provider name.", - "default": null, - "x-example": "<NAME>" - }, - "from": { - "type": "string", - "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "default": "", - "x-example": "+12065550100", - "format": "phone" - }, - "username": { - "type": "string", - "description": "Textmagic username.", - "default": "", - "x-example": "<USERNAME>" - }, - "apiKey": { - "type": "string", - "description": "Textmagic apiKey.", - "default": "", - "x-example": "<API_KEY>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "default": null, - "x-example": false, - "x-nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "type": "integer", + "format": "int32", + "default": 5000, + "in": "query" } ] } }, - "\/messaging\/providers\/textmagic\/{providerId}": { - "patch": { - "summary": "Update Textmagic provider", - "operationId": "messagingUpdateTextmagicProvider", - "consumes": [ - "application\/json" - ], + "\/health\/storage": { + "get": { + "summary": "Get storage", + "operationId": "healthGetStorage", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "health" ], - "description": "Update a Textmagic provider by its unique ID.", + "description": "Check the Appwrite storage device is up and connection is successful.", "responses": { "200": { - "description": "Provider", + "description": "Health Status", "schema": { - "$ref": "#\/definitions\/provider" + "$ref": "#\/definitions\/healthStatus" } } }, "deprecated": false, "x-appwrite": { - "method": "updateTextmagicProvider", - "group": "providers", - "weight": 211, + "method": "getStorage", + "group": "storage", + "weight": 512, "cookies": false, "type": "", - "demo": "messaging\/update-textmagic-provider.md", + "demo": "health\/get-storage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-textmagic-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-storage.md", "auth": { "Project": [] } @@ -30561,100 +29432,48 @@ "Project": [], "Key": [] } - ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "type": "string", - "x-example": "<PROVIDER_ID>", - "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "default": "", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "default": null, - "x-example": false, - "x-nullable": true - }, - "username": { - "type": "string", - "description": "Textmagic username.", - "default": "", - "x-example": "<USERNAME>" - }, - "apiKey": { - "type": "string", - "description": "Textmagic apiKey.", - "default": "", - "x-example": "<API_KEY>" - }, - "from": { - "type": "string", - "description": "Sender number.", - "default": "", - "x-example": "<FROM>" - } - } - } - } - ] - } - }, - "\/messaging\/providers\/twilio": { - "post": { - "summary": "Create Twilio provider", - "operationId": "messagingCreateTwilioProvider", - "consumes": [ - "application\/json" - ], - "produces": [ - "application\/json" + ] + } + }, + "\/health\/storage\/local": { + "get": { + "summary": "Get local storage", + "operationId": "healthGetStorageLocal", + "consumes": [], + "produces": [ + "application\/json" ], "tags": [ - "messaging" + "health" ], - "description": "Create a new Twilio provider.", + "description": "Check the Appwrite local storage device is up and connection is successful.", "responses": { - "201": { - "description": "Provider", + "200": { + "description": "Health Status", "schema": { - "$ref": "#\/definitions\/provider" + "$ref": "#\/definitions\/healthStatus" } } }, "deprecated": false, "x-appwrite": { - "method": "createTwilioProvider", - "group": "providers", - "weight": 198, + "method": "getStorageLocal", + "group": "storage", + "weight": 511, "cookies": false, "type": "", - "demo": "messaging\/create-twilio-provider.md", + "demo": "health\/get-storage-local.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-twilio-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-storage-local.md", "auth": { "Project": [] } @@ -30664,103 +29483,48 @@ "Project": [], "Key": [] } - ], - "parameters": [ - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "providerId": { - "type": "string", - "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": null, - "x-example": "<PROVIDER_ID>" - }, - "name": { - "type": "string", - "description": "Provider name.", - "default": null, - "x-example": "<NAME>" - }, - "from": { - "type": "string", - "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "default": "", - "x-example": "+12065550100", - "format": "phone" - }, - "accountSid": { - "type": "string", - "description": "Twilio account secret ID.", - "default": "", - "x-example": "<ACCOUNT_SID>" - }, - "authToken": { - "type": "string", - "description": "Twilio authentication token.", - "default": "", - "x-example": "<AUTH_TOKEN>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "default": null, - "x-example": false, - "x-nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } - } ] } }, - "\/messaging\/providers\/twilio\/{providerId}": { - "patch": { - "summary": "Update Twilio provider", - "operationId": "messagingUpdateTwilioProvider", - "consumes": [ - "application\/json" - ], + "\/health\/time": { + "get": { + "summary": "Get time", + "operationId": "healthGetTime", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "health" ], - "description": "Update a Twilio provider by its unique ID.", + "description": "Check the Appwrite server time is synced with Google remote NTP server. We use this technology to smoothly handle leap seconds with no disruptive events. The [Network Time Protocol](https:\/\/en.wikipedia.org\/wiki\/Network_Time_Protocol) (NTP) is used by hundreds of millions of computers and devices to synchronize their clocks over the Internet. If your computer sets its own clock, it likely uses NTP.", "responses": { "200": { - "description": "Provider", + "description": "Health Time", "schema": { - "$ref": "#\/definitions\/provider" + "$ref": "#\/definitions\/healthTime" } } }, "deprecated": false, "x-appwrite": { - "method": "updateTwilioProvider", - "group": "providers", - "weight": 212, + "method": "getTime", + "group": "health", + "weight": 509, "cookies": false, "type": "", - "demo": "messaging\/update-twilio-provider.md", + "demo": "health\/get-time.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-twilio-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-time.md", "auth": { "Project": [] } @@ -30770,100 +29534,49 @@ "Project": [], "Key": [] } - ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "type": "string", - "x-example": "<PROVIDER_ID>", - "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "default": "", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "default": null, - "x-example": false, - "x-nullable": true - }, - "accountSid": { - "type": "string", - "description": "Twilio account secret ID.", - "default": "", - "x-example": "<ACCOUNT_SID>" - }, - "authToken": { - "type": "string", - "description": "Twilio authentication token.", - "default": "", - "x-example": "<AUTH_TOKEN>" - }, - "from": { - "type": "string", - "description": "Sender number.", - "default": "", - "x-example": "<FROM>" - } - } - } - } ] } }, - "\/messaging\/providers\/vonage": { - "post": { - "summary": "Create Vonage provider", - "operationId": "messagingCreateVonageProvider", - "consumes": [ - "application\/json" - ], + "\/locale": { + "get": { + "summary": "Get user locale", + "operationId": "localeGet", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "locale" ], - "description": "Create a new Vonage provider.", + "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": { - "201": { - "description": "Provider", + "200": { + "description": "Locale", "schema": { - "$ref": "#\/definitions\/provider" + "$ref": "#\/definitions\/locale" } } }, "deprecated": false, "x-appwrite": { - "method": "createVonageProvider", - "group": "providers", - "weight": 199, + "method": "get", + "group": null, + "weight": 49, "cookies": false, "type": "", - "demo": "messaging\/create-vonage-provider.md", + "demo": "locale\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "locale.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-vonage-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-locale.md", "auth": { "Project": [] } @@ -30871,105 +29584,52 @@ "security": [ { "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "providerId": { - "type": "string", - "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": null, - "x-example": "<PROVIDER_ID>" - }, - "name": { - "type": "string", - "description": "Provider name.", - "default": null, - "x-example": "<NAME>" - }, - "from": { - "type": "string", - "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "default": "", - "x-example": "+12065550100", - "format": "phone" - }, - "apiKey": { - "type": "string", - "description": "Vonage API key.", - "default": "", - "x-example": "<API_KEY>" - }, - "apiSecret": { - "type": "string", - "description": "Vonage API secret.", - "default": "", - "x-example": "<API_SECRET>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "default": null, - "x-example": false, - "x-nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } + "Key": [], + "JWT": [] } ] } }, - "\/messaging\/providers\/vonage\/{providerId}": { - "patch": { - "summary": "Update Vonage provider", - "operationId": "messagingUpdateVonageProvider", - "consumes": [ - "application\/json" - ], + "\/locale\/codes": { + "get": { + "summary": "List locale codes", + "operationId": "localeListCodes", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "locale" ], - "description": "Update a Vonage provider by its unique ID.", + "description": "List of all locale codes in [ISO 639-1](https:\/\/en.wikipedia.org\/wiki\/List_of_ISO_639-1_codes).", "responses": { "200": { - "description": "Provider", + "description": "Locale codes list", "schema": { - "$ref": "#\/definitions\/provider" + "$ref": "#\/definitions\/localeCodeList" } } }, "deprecated": false, "x-appwrite": { - "method": "updateVonageProvider", - "group": "providers", - "weight": 213, + "method": "listCodes", + "group": null, + "weight": 50, "cookies": false, "type": "", - "demo": "messaging\/update-vonage-provider.md", + "demo": "locale\/list-codes.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "locale.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-vonage-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-locale-codes.md", "auth": { "Project": [] } @@ -30977,100 +29637,52 @@ "security": [ { "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "type": "string", - "x-example": "<PROVIDER_ID>", - "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "default": "", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "default": null, - "x-example": false, - "x-nullable": true - }, - "apiKey": { - "type": "string", - "description": "Vonage API key.", - "default": "", - "x-example": "<API_KEY>" - }, - "apiSecret": { - "type": "string", - "description": "Vonage API secret.", - "default": "", - "x-example": "<API_SECRET>" - }, - "from": { - "type": "string", - "description": "Sender number.", - "default": "", - "x-example": "<FROM>" - } - } - } + "Key": [], + "JWT": [] } ] } }, - "\/messaging\/providers\/{providerId}": { + "\/locale\/continents": { "get": { - "summary": "Get provider", - "operationId": "messagingGetProvider", + "summary": "List continents", + "operationId": "localeListContinents", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "locale" ], - "description": "Get a provider by its unique ID.\n", + "description": "List of all continents. You can use the locale header to get the data in a supported language.", "responses": { "200": { - "description": "Provider", + "description": "Continents List", "schema": { - "$ref": "#\/definitions\/provider" + "$ref": "#\/definitions\/continentList" } } }, "deprecated": false, "x-appwrite": { - "method": "getProvider", - "group": "providers", - "weight": 204, + "method": "listContinents", + "group": null, + "weight": 54, "cookies": false, "type": "", - "demo": "messaging\/get-provider.md", + "demo": "locale\/list-continents.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.read", + "scope": "locale.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/get-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-continents.md", "auth": { "Project": [] } @@ -31078,55 +29690,52 @@ "security": [ { "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "type": "string", - "x-example": "<PROVIDER_ID>", - "in": "path" + "Key": [], + "JWT": [] } ] - }, - "delete": { - "summary": "Delete provider", - "operationId": "messagingDeleteProvider", - "consumes": [ + } + }, + "\/locale\/countries": { + "get": { + "summary": "List countries", + "operationId": "localeListCountries", + "consumes": [], + "produces": [ "application\/json" ], - "produces": [], "tags": [ - "messaging" + "locale" ], - "description": "Delete a provider by its unique ID.", + "description": "List of all countries. You can use the locale header to get the data in a supported language.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Countries List", + "schema": { + "$ref": "#\/definitions\/countryList" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteProvider", - "group": "providers", - "weight": 216, + "method": "listCountries", + "group": null, + "weight": 51, "cookies": false, "type": "", - "demo": "messaging\/delete-provider.md", + "demo": "locale\/list-countries.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "locale.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries.md", "auth": { "Project": [] } @@ -31134,60 +29743,52 @@ "security": [ { "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "type": "string", - "x-example": "<PROVIDER_ID>", - "in": "path" + "Key": [], + "JWT": [] } ] } }, - "\/messaging\/providers\/{providerId}\/logs": { + "\/locale\/countries\/eu": { "get": { - "summary": "List provider logs", - "operationId": "messagingListProviderLogs", + "summary": "List EU countries", + "operationId": "localeListCountriesEU", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "locale" ], - "description": "Get the provider activity logs listed by its unique ID.", + "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": "Logs List", + "description": "Countries List", "schema": { - "$ref": "#\/definitions\/logList" + "$ref": "#\/definitions\/countryList" } } }, "deprecated": false, "x-appwrite": { - "method": "listProviderLogs", - "group": "providers", - "weight": 203, + "method": "listCountriesEU", + "group": null, + "weight": 52, "cookies": false, "type": "", - "demo": "messaging\/list-provider-logs.md", + "demo": "locale\/list-countries-eu.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.read", + "scope": "locale.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-provider-logs.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries-eu.md", "auth": { "Project": [] } @@ -31195,81 +29796,105 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } + ] + } + }, + "\/locale\/countries\/phones": { + "get": { + "summary": "List countries phone codes", + "operationId": "localeListCountriesPhones", + "consumes": [], + "produces": [ + "application\/json" ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "type": "string", - "x-example": "<PROVIDER_ID>", - "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). Only supported methods are limit and offset", - "required": false, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" - }, + "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", + "schema": { + "$ref": "#\/definitions\/phoneList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listCountriesPhones", + "group": null, + "weight": 53, + "cookies": false, + "type": "", + "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries-phones.md", + "auth": { + "Project": [] + } + }, + "security": [ { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" + "Project": [], + "Key": [], + "JWT": [] } ] } }, - "\/messaging\/subscribers\/{subscriberId}\/logs": { + "\/locale\/currencies": { "get": { - "summary": "List subscriber logs", - "operationId": "messagingListSubscriberLogs", + "summary": "List currencies", + "operationId": "localeListCurrencies", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "locale" ], - "description": "Get the subscriber activity logs listed by its unique ID.", + "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": "Logs List", + "description": "Currencies List", "schema": { - "$ref": "#\/definitions\/logList" + "$ref": "#\/definitions\/currencyList" } } }, "deprecated": false, "x-appwrite": { - "method": "listSubscriberLogs", - "group": "subscribers", - "weight": 225, + "method": "listCurrencies", + "group": null, + "weight": 55, "cookies": false, "type": "", - "demo": "messaging\/list-subscriber-logs.md", + "demo": "locale\/list-currencies.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "subscribers.read", + "scope": "locale.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-subscriber-logs.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-currencies.md", "auth": { "Project": [] } @@ -31277,46 +29902,69 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } + ] + } + }, + "\/locale\/languages": { + "get": { + "summary": "List languages", + "operationId": "localeListLanguages", + "consumes": [], + "produces": [ + "application\/json" ], - "parameters": [ - { - "name": "subscriberId", - "description": "Subscriber ID.", - "required": true, - "type": "string", - "x-example": "<SUBSCRIBER_ID>", - "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). Only supported methods are limit and offset", - "required": false, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" - }, + "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", + "schema": { + "$ref": "#\/definitions\/languageList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listLanguages", + "group": null, + "weight": 56, + "cookies": false, + "type": "", + "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-languages.md", + "auth": { + "Project": [] + } + }, + "security": [ { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" + "Project": [], + "Key": [], + "JWT": [] } ] } }, - "\/messaging\/topics": { + "\/messaging\/messages": { "get": { - "summary": "List topics", - "operationId": "messagingListTopics", + "summary": "List messages", + "operationId": "messagingListMessages", "consumes": [], "produces": [ "application\/json" @@ -31324,34 +29972,34 @@ "tags": [ "messaging" ], - "description": "Get a list of all topics from the current Appwrite project.", + "description": "Get a list of all messages from the current Appwrite project.", "responses": { "200": { - "description": "Topic list", + "description": "Message list", "schema": { - "$ref": "#\/definitions\/topicList" + "$ref": "#\/definitions\/messageList" } } }, "deprecated": false, "x-appwrite": { - "method": "listTopics", - "group": "topics", - "weight": 218, + "method": "listMessages", + "group": "messages", + "weight": 215, "cookies": false, "type": "", - "demo": "messaging\/list-topics.md", + "demo": "messaging\/list-messages.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "topics.read", + "scope": "messages.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-topics.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-messages.md", "auth": { "Project": [] } @@ -31365,7 +30013,7 @@ "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, description, emailTotal, smsTotal, pushTotal", + "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: scheduledAt, deliveredAt, deliveredTotal, status, description, providerType", "required": false, "type": "array", "collectionFormat": "multi", @@ -31394,10 +30042,12 @@ "in": "query" } ] - }, + } + }, + "\/messaging\/messages\/email": { "post": { - "summary": "Create topic", - "operationId": "messagingCreateTopic", + "summary": "Create email", + "operationId": "messagingCreateEmail", "consumes": [ "application\/json" ], @@ -31407,34 +30057,34 @@ "tags": [ "messaging" ], - "description": "Create a new topic.", + "description": "Create a new email message.", "responses": { "201": { - "description": "Topic", + "description": "Message", "schema": { - "$ref": "#\/definitions\/topic" + "$ref": "#\/definitions\/message" } } }, "deprecated": false, "x-appwrite": { - "method": "createTopic", - "group": "topics", - "weight": 217, + "method": "createEmail", + "group": "messages", + "weight": 212, "cookies": false, "type": "", - "demo": "messaging\/create-topic.md", + "demo": "messaging\/create-email.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "topics.write", + "scope": "messages.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-topic.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-email.md", "auth": { "Project": [] } @@ -31452,78 +30102,149 @@ "schema": { "type": "object", "properties": { - "topicId": { + "messageId": { "type": "string", - "description": "Topic ID. Choose a custom Topic ID or a new Topic ID.", + "description": "Message ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", "default": null, - "x-example": "<TOPIC_ID>" + "x-example": "<MESSAGE_ID>" }, - "name": { + "subject": { "type": "string", - "description": "Topic Name.", + "description": "Email Subject.", "default": null, - "x-example": "<NAME>" + "x-example": "<SUBJECT>" }, - "subscribe": { + "content": { + "type": "string", + "description": "Email Content.", + "default": null, + "x-example": "<CONTENT>" + }, + "topics": { "type": "array", - "description": "An array of role strings with subscribe permission. By default all users are granted with any subscribe permission. [learn more about roles](https:\/\/appwrite.io\/docs\/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.", - "default": [ - "users" - ], - "x-example": "[\"any\"]", + "description": "List of Topic IDs.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "users": { + "type": "array", + "description": "List of User IDs.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "targets": { + "type": "array", + "description": "List of Targets IDs.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "cc": { + "type": "array", + "description": "Array of target IDs to be added as CC.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "bcc": { + "type": "array", + "description": "Array of target IDs to be added as BCC.", + "default": [], + "x-example": null, "items": { "type": "string" } + }, + "attachments": { + "type": "array", + "description": "Array of compound ID strings of bucket IDs and file IDs to be attached to the email. They should be formatted as <BUCKET_ID>:<FILE_ID>.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "draft": { + "type": "boolean", + "description": "Is message a draft", + "default": false, + "x-example": false + }, + "html": { + "type": "boolean", + "description": "Is content of type HTML", + "default": false, + "x-example": false + }, + "scheduledAt": { + "type": "string", + "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", + "default": null, + "x-example": null, + "x-nullable": true } }, "required": [ - "topicId", - "name" + "messageId", + "subject", + "content" ] } } ] } }, - "\/messaging\/topics\/{topicId}": { - "get": { - "summary": "Get topic", - "operationId": "messagingGetTopic", - "consumes": [], + "\/messaging\/messages\/email\/{messageId}": { + "patch": { + "summary": "Update email", + "operationId": "messagingUpdateEmail", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ "messaging" ], - "description": "Get a topic by its unique ID.\n", + "description": "Update an email message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", "responses": { "200": { - "description": "Topic", + "description": "Message", "schema": { - "$ref": "#\/definitions\/topic" + "$ref": "#\/definitions\/message" } } }, "deprecated": false, "x-appwrite": { - "method": "getTopic", - "group": "topics", - "weight": 220, + "method": "updateEmail", + "group": "messages", + "weight": 219, "cookies": false, "type": "", - "demo": "messaging\/get-topic.md", + "demo": "messaging\/update-email.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "topics.read", + "scope": "messages.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/get-topic.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-email.md", "auth": { "Project": [] } @@ -31536,18 +30257,124 @@ ], "parameters": [ { - "name": "topicId", - "description": "Topic ID.", + "name": "messageId", + "description": "Message ID.", "required": true, "type": "string", - "x-example": "<TOPIC_ID>", + "x-example": "<MESSAGE_ID>", "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "topics": { + "type": "array", + "description": "List of Topic IDs.", + "default": null, + "x-example": null, + "x-nullable": true, + "items": { + "type": "string" + } + }, + "users": { + "type": "array", + "description": "List of User IDs.", + "default": null, + "x-example": null, + "x-nullable": true, + "items": { + "type": "string" + } + }, + "targets": { + "type": "array", + "description": "List of Targets IDs.", + "default": null, + "x-example": null, + "x-nullable": true, + "items": { + "type": "string" + } + }, + "subject": { + "type": "string", + "description": "Email Subject.", + "default": null, + "x-example": "<SUBJECT>", + "x-nullable": true + }, + "content": { + "type": "string", + "description": "Email Content.", + "default": null, + "x-example": "<CONTENT>", + "x-nullable": true + }, + "draft": { + "type": "boolean", + "description": "Is message a draft", + "default": null, + "x-example": false, + "x-nullable": true + }, + "html": { + "type": "boolean", + "description": "Is content of type HTML", + "default": null, + "x-example": false, + "x-nullable": true + }, + "cc": { + "type": "array", + "description": "Array of target IDs to be added as CC.", + "default": null, + "x-example": null, + "x-nullable": true, + "items": { + "type": "string" + } + }, + "bcc": { + "type": "array", + "description": "Array of target IDs to be added as BCC.", + "default": null, + "x-example": null, + "x-nullable": true, + "items": { + "type": "string" + } + }, + "scheduledAt": { + "type": "string", + "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", + "default": null, + "x-example": null, + "x-nullable": true + }, + "attachments": { + "type": "array", + "description": "Array of compound ID strings of bucket IDs and file IDs to be attached to the email. They should be formatted as <BUCKET_ID>:<FILE_ID>.", + "default": null, + "x-example": null, + "x-nullable": true, + "items": { + "type": "string" + } + } + } + } } ] - }, - "patch": { - "summary": "Update topic", - "operationId": "messagingUpdateTopic", + } + }, + "\/messaging\/messages\/push": { + "post": { + "summary": "Create push notification", + "operationId": "messagingCreatePush", "consumes": [ "application\/json" ], @@ -31557,34 +30384,34 @@ "tags": [ "messaging" ], - "description": "Update a topic by its unique ID.\n", + "description": "Create a new push notification.", "responses": { - "200": { - "description": "Topic", + "201": { + "description": "Message", "schema": { - "$ref": "#\/definitions\/topic" + "$ref": "#\/definitions\/message" } } }, "deprecated": false, "x-appwrite": { - "method": "updateTopic", - "group": "topics", - "weight": 221, + "method": "createPush", + "group": "messages", + "weight": 214, "cookies": false, "type": "", - "demo": "messaging\/update-topic.md", + "demo": "messaging\/create-push.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "topics.write", + "scope": "messages.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-topic.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-push.md", "auth": { "Project": [] } @@ -31596,138 +30423,194 @@ } ], "parameters": [ - { - "name": "topicId", - "description": "Topic ID.", - "required": true, - "type": "string", - "x-example": "<TOPIC_ID>", - "in": "path" - }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "name": { + "messageId": { "type": "string", - "description": "Topic Name.", + "description": "Message ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", "default": null, - "x-example": "<NAME>", - "x-nullable": true + "x-example": "<MESSAGE_ID>" }, - "subscribe": { + "title": { + "type": "string", + "description": "Title for push notification.", + "default": "", + "x-example": "<TITLE>" + }, + "body": { + "type": "string", + "description": "Body for push notification.", + "default": "", + "x-example": "<BODY>" + }, + "topics": { "type": "array", - "description": "An array of role strings with subscribe permission. By default all users are granted with any subscribe permission. [learn more about roles](https:\/\/appwrite.io\/docs\/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.", - "default": null, - "x-example": "[\"any\"]", - "x-nullable": true, + "description": "List of Topic IDs.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "users": { + "type": "array", + "description": "List of User IDs.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "targets": { + "type": "array", + "description": "List of Targets IDs.", + "default": [], + "x-example": null, "items": { "type": "string" } + }, + "data": { + "type": "object", + "description": "Additional key-value pair data for push notification.", + "default": {}, + "x-example": "{}", + "x-nullable": true + }, + "action": { + "type": "string", + "description": "Action for push notification.", + "default": "", + "x-example": "<ACTION>" + }, + "image": { + "type": "string", + "description": "Image for push notification. Must be a compound bucket ID to file ID of a jpeg, png, or bmp image in Appwrite Storage. It should be formatted as <BUCKET_ID>:<FILE_ID>.", + "default": "", + "x-example": "<ID1:ID2>" + }, + "icon": { + "type": "string", + "description": "Icon for push notification. Available only for Android and Web Platform.", + "default": "", + "x-example": "<ICON>" + }, + "sound": { + "type": "string", + "description": "Sound for push notification. Available only for Android and iOS Platform.", + "default": "", + "x-example": "<SOUND>" + }, + "color": { + "type": "string", + "description": "Color for push notification. Available only for Android Platform.", + "default": "", + "x-example": "<COLOR>" + }, + "tag": { + "type": "string", + "description": "Tag for push notification. Available only for Android Platform.", + "default": "", + "x-example": "<TAG>" + }, + "badge": { + "type": "integer", + "description": "Badge for push notification. Available only for iOS Platform.", + "default": -1, + "x-example": null, + "format": "int32" + }, + "draft": { + "type": "boolean", + "description": "Is message a draft", + "default": false, + "x-example": false + }, + "scheduledAt": { + "type": "string", + "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", + "default": null, + "x-example": null, + "x-nullable": true + }, + "contentAvailable": { + "type": "boolean", + "description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.", + "default": false, + "x-example": false + }, + "critical": { + "type": "boolean", + "description": "If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.", + "default": false, + "x-example": false + }, + "priority": { + "type": "string", + "description": "Set the notification priority. \"normal\" will consider device state and may not deliver notifications immediately. \"high\" will always attempt to immediately deliver the notification.", + "default": "high", + "x-example": "normal", + "enum": [ + "normal", + "high" + ], + "x-enum-name": "MessagePriority", + "x-enum-keys": [] } - } + }, + "required": [ + "messageId" + ] } } ] - }, - "delete": { - "summary": "Delete topic", - "operationId": "messagingDeleteTopic", + } + }, + "\/messaging\/messages\/push\/{messageId}": { + "patch": { + "summary": "Update push notification", + "operationId": "messagingUpdatePush", "consumes": [ "application\/json" ], - "produces": [], - "tags": [ - "messaging" - ], - "description": "Delete a topic by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "method": "deleteTopic", - "group": "topics", - "weight": 222, - "cookies": false, - "type": "", - "demo": "messaging\/delete-topic.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "topics.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-topic.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "topicId", - "description": "Topic ID.", - "required": true, - "type": "string", - "x-example": "<TOPIC_ID>", - "in": "path" - } - ] - } - }, - "\/messaging\/topics\/{topicId}\/logs": { - "get": { - "summary": "List topic logs", - "operationId": "messagingListTopicLogs", - "consumes": [], "produces": [ "application\/json" ], "tags": [ "messaging" ], - "description": "Get the topic activity logs listed by its unique ID.", + "description": "Update a push notification by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", "responses": { "200": { - "description": "Logs List", + "description": "Message", "schema": { - "$ref": "#\/definitions\/logList" + "$ref": "#\/definitions\/message" } } }, "deprecated": false, "x-appwrite": { - "method": "listTopicLogs", - "group": "topics", - "weight": 219, + "method": "updatePush", + "group": "messages", + "weight": 221, "cookies": false, "type": "", - "demo": "messaging\/list-topic-logs.md", + "demo": "messaging\/update-push.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "topics.read", + "scope": "messages.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-topic-logs.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-push.md", "auth": { "Project": [] } @@ -31740,76 +30623,278 @@ ], "parameters": [ { - "name": "topicId", - "description": "Topic ID.", + "name": "messageId", + "description": "Message ID.", "required": true, "type": "string", - "x-example": "<TOPIC_ID>", + "x-example": "<MESSAGE_ID>", "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). Only supported methods are limit and offset", - "required": false, - "type": "array", - "collectionFormat": "multi", - "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, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "topics": { + "type": "array", + "description": "List of Topic IDs.", + "default": null, + "x-example": null, + "x-nullable": true, + "items": { + "type": "string" + } + }, + "users": { + "type": "array", + "description": "List of User IDs.", + "default": null, + "x-example": null, + "x-nullable": true, + "items": { + "type": "string" + } + }, + "targets": { + "type": "array", + "description": "List of Targets IDs.", + "default": null, + "x-example": null, + "x-nullable": true, + "items": { + "type": "string" + } + }, + "title": { + "type": "string", + "description": "Title for push notification.", + "default": null, + "x-example": "<TITLE>", + "x-nullable": true + }, + "body": { + "type": "string", + "description": "Body for push notification.", + "default": null, + "x-example": "<BODY>", + "x-nullable": true + }, + "data": { + "type": "object", + "description": "Additional Data for push notification.", + "default": {}, + "x-example": "{}", + "x-nullable": true + }, + "action": { + "type": "string", + "description": "Action for push notification.", + "default": null, + "x-example": "<ACTION>", + "x-nullable": true + }, + "image": { + "type": "string", + "description": "Image for push notification. Must be a compound bucket ID to file ID of a jpeg, png, or bmp image in Appwrite Storage. It should be formatted as <BUCKET_ID>:<FILE_ID>.", + "default": null, + "x-example": "<ID1:ID2>", + "x-nullable": true + }, + "icon": { + "type": "string", + "description": "Icon for push notification. Available only for Android and Web platforms.", + "default": null, + "x-example": "<ICON>", + "x-nullable": true + }, + "sound": { + "type": "string", + "description": "Sound for push notification. Available only for Android and iOS platforms.", + "default": null, + "x-example": "<SOUND>", + "x-nullable": true + }, + "color": { + "type": "string", + "description": "Color for push notification. Available only for Android platforms.", + "default": null, + "x-example": "<COLOR>", + "x-nullable": true + }, + "tag": { + "type": "string", + "description": "Tag for push notification. Available only for Android platforms.", + "default": null, + "x-example": "<TAG>", + "x-nullable": true + }, + "badge": { + "type": "integer", + "description": "Badge for push notification. Available only for iOS platforms.", + "default": null, + "x-example": null, + "format": "int32", + "x-nullable": true + }, + "draft": { + "type": "boolean", + "description": "Is message a draft", + "default": null, + "x-example": false, + "x-nullable": true + }, + "scheduledAt": { + "type": "string", + "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", + "default": null, + "x-example": null, + "x-nullable": true + }, + "contentAvailable": { + "type": "boolean", + "description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.", + "default": null, + "x-example": false, + "x-nullable": true + }, + "critical": { + "type": "boolean", + "description": "If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.", + "default": null, + "x-example": false, + "x-nullable": true + }, + "priority": { + "type": "string", + "description": "Set the notification priority. \"normal\" will consider device battery state and may send notifications later. \"high\" will always attempt to immediately deliver the notification.", + "default": null, + "x-example": "normal", + "enum": [ + "normal", + "high" + ], + "x-enum-name": "MessagePriority", + "x-enum-keys": [], + "x-nullable": true + } + } + } } ] } }, - "\/messaging\/topics\/{topicId}\/subscribers": { - "get": { - "summary": "List subscribers", - "operationId": "messagingListSubscribers", - "consumes": [], + "\/messaging\/messages\/sms": { + "post": { + "summary": "Create SMS", + "operationId": "messagingCreateSms", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ "messaging" ], - "description": "Get a list of all subscribers from the current Appwrite project.", + "description": "Create a new SMS message.", "responses": { - "200": { - "description": "Subscriber list", + "201": { + "description": "Message", "schema": { - "$ref": "#\/definitions\/subscriberList" + "$ref": "#\/definitions\/message" } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "listSubscribers", - "group": "subscribers", - "weight": 224, + "method": "createSms", + "group": "messages", + "weight": 213, "cookies": false, "type": "", - "demo": "messaging\/list-subscribers.md", + "demo": "messaging\/create-sms.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "subscribers.read", + "scope": "messages.write", "platforms": [ "console", "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-subscribers.md", + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-sms.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createSMS" + }, + "methods": [ + { + "name": "createSms", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "messageId", + "content", + "topics", + "users", + "targets", + "draft", + "scheduledAt" + ], + "required": [ + "messageId", + "content" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/message" + } + ], + "description": "Create a new SMS message.", + "demo": "messaging\/create-sms.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createSMS" + } + }, + { + "name": "createSMS", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "messageId", + "content", + "topics", + "users", + "targets", + "draft", + "scheduledAt" + ], + "required": [ + "messageId", + "content" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/message" + } + ], + "description": "Create a new SMS message.", + "demo": "messaging\/create-sms.md", + "public": true + } + ], "auth": { "Project": [] } @@ -31822,48 +30907,77 @@ ], "parameters": [ { - "name": "topicId", - "description": "Topic ID. The topic ID subscribed to.", - "required": true, - "type": "string", - "x-example": "<TOPIC_ID>", - "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, provider, type, enabled", - "required": false, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "type": "string", - "x-example": "<SEARCH>", - "default": "", - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "messageId": { + "type": "string", + "description": "Message ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "default": null, + "x-example": "<MESSAGE_ID>" + }, + "content": { + "type": "string", + "description": "SMS Content.", + "default": null, + "x-example": "<CONTENT>" + }, + "topics": { + "type": "array", + "description": "List of Topic IDs.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "users": { + "type": "array", + "description": "List of User IDs.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "targets": { + "type": "array", + "description": "List of Targets IDs.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "draft": { + "type": "boolean", + "description": "Is message a draft", + "default": false, + "x-example": false + }, + "scheduledAt": { + "type": "string", + "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", + "default": null, + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "messageId", + "content" + ] + } } ] - }, - "post": { - "summary": "Create subscriber", - "operationId": "messagingCreateSubscriber", + } + }, + "\/messaging\/messages\/sms\/{messageId}": { + "patch": { + "summary": "Update SMS", + "operationId": "messagingUpdateSms", "consumes": [ "application\/json" ], @@ -31873,35 +30987,102 @@ "tags": [ "messaging" ], - "description": "Create a new subscriber.", + "description": "Update an SMS message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", "responses": { - "201": { - "description": "Subscriber", + "200": { + "description": "Message", "schema": { - "$ref": "#\/definitions\/subscriber" + "$ref": "#\/definitions\/message" } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "createSubscriber", - "group": "subscribers", - "weight": 223, + "method": "updateSms", + "group": "messages", + "weight": 220, "cookies": false, "type": "", - "demo": "messaging\/create-subscriber.md", + "demo": "messaging\/update-sms.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "subscribers.write", + "scope": "messages.write", "platforms": [ - "server", - "client", - "console" + "console", + "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-subscriber.md", + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-sms.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateSMS" + }, + "methods": [ + { + "name": "updateSms", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "messageId", + "topics", + "users", + "targets", + "content", + "draft", + "scheduledAt" + ], + "required": [ + "messageId" + ], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/message" + } + ], + "description": "Update an SMS message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", + "demo": "messaging\/update-sms.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateSMS" + } + }, + { + "name": "updateSMS", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "messageId", + "topics", + "users", + "targets", + "content", + "draft", + "scheduledAt" + ], + "required": [ + "messageId" + ], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/message" + } + ], + "description": "Update an SMS message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", + "demo": "messaging\/update-sms.md", + "public": true + } + ], "auth": { "Project": [] } @@ -31909,17 +31090,16 @@ "security": [ { "Project": [], - "JWT": [], "Key": [] } ], "parameters": [ { - "name": "topicId", - "description": "Topic ID. The topic ID to subscribe to.", + "name": "messageId", + "description": "Message ID.", "required": true, "type": "string", - "x-example": "<TOPIC_ID>", + "x-example": "<MESSAGE_ID>", "in": "path" }, { @@ -31928,32 +31108,67 @@ "schema": { "type": "object", "properties": { - "subscriberId": { + "topics": { + "type": "array", + "description": "List of Topic IDs.", + "default": null, + "x-example": null, + "x-nullable": true, + "items": { + "type": "string" + } + }, + "users": { + "type": "array", + "description": "List of User IDs.", + "default": null, + "x-example": null, + "x-nullable": true, + "items": { + "type": "string" + } + }, + "targets": { + "type": "array", + "description": "List of Targets IDs.", + "default": null, + "x-example": null, + "x-nullable": true, + "items": { + "type": "string" + } + }, + "content": { "type": "string", - "description": "Subscriber ID. Choose a custom Subscriber ID or a new Subscriber ID.", + "description": "Email Content.", "default": null, - "x-example": "<SUBSCRIBER_ID>" + "x-example": "<CONTENT>", + "x-nullable": true }, - "targetId": { + "draft": { + "type": "boolean", + "description": "Is message a draft", + "default": null, + "x-example": false, + "x-nullable": true + }, + "scheduledAt": { "type": "string", - "description": "Target ID. The target ID to link to the specified Topic ID.", + "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", "default": null, - "x-example": "<TARGET_ID>" + "x-example": null, + "x-nullable": true } - }, - "required": [ - "subscriberId", - "targetId" - ] + } } } ] } }, - "\/messaging\/topics\/{topicId}\/subscribers\/{subscriberId}": { + "\/messaging\/messages\/{messageId}": { "get": { - "summary": "Get subscriber", - "operationId": "messagingGetSubscriber", + "summary": "Get message", + "operationId": "messagingGetMessage", "consumes": [], "produces": [ "application\/json" @@ -31961,34 +31176,34 @@ "tags": [ "messaging" ], - "description": "Get a subscriber by its unique ID.\n", + "description": "Get a message by its unique ID.\n", "responses": { "200": { - "description": "Subscriber", + "description": "Message", "schema": { - "$ref": "#\/definitions\/subscriber" + "$ref": "#\/definitions\/message" } } }, "deprecated": false, "x-appwrite": { - "method": "getSubscriber", - "group": "subscribers", - "weight": 226, + "method": "getMessage", + "group": "messages", + "weight": 218, "cookies": false, "type": "", - "demo": "messaging\/get-subscriber.md", + "demo": "messaging\/get-message.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "subscribers.read", + "scope": "messages.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/get-subscriber.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/get-message.md", "auth": { "Project": [] } @@ -32001,26 +31216,18 @@ ], "parameters": [ { - "name": "topicId", - "description": "Topic ID. The topic ID subscribed to.", - "required": true, - "type": "string", - "x-example": "<TOPIC_ID>", - "in": "path" - }, - { - "name": "subscriberId", - "description": "Subscriber ID.", + "name": "messageId", + "description": "Message ID.", "required": true, "type": "string", - "x-example": "<SUBSCRIBER_ID>", + "x-example": "<MESSAGE_ID>", "in": "path" } ] }, "delete": { - "summary": "Delete subscriber", - "operationId": "messagingDeleteSubscriber", + "summary": "Delete message", + "operationId": "messagingDelete", "consumes": [ "application\/json" ], @@ -32028,7 +31235,7 @@ "tags": [ "messaging" ], - "description": "Delete a subscriber by its unique ID.", + "description": "Delete a message. If the message is not a draft or scheduled, but has been sent, this will not recall the message.", "responses": { "204": { "description": "No content" @@ -32036,24 +31243,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteSubscriber", - "group": "subscribers", - "weight": 227, + "method": "delete", + "group": "messages", + "weight": 222, "cookies": false, "type": "", - "demo": "messaging\/delete-subscriber.md", + "demo": "messaging\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "subscribers.write", + "scope": "messages.write", "platforms": [ - "server", - "client", - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-subscriber.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-message.md", "auth": { "Project": [] } @@ -32061,81 +31267,82 @@ "security": [ { "Project": [], - "JWT": [], "Key": [] } ], "parameters": [ { - "name": "topicId", - "description": "Topic ID. The topic ID subscribed to.", - "required": true, - "type": "string", - "x-example": "<TOPIC_ID>", - "in": "path" - }, - { - "name": "subscriberId", - "description": "Subscriber ID.", + "name": "messageId", + "description": "Message ID.", "required": true, "type": "string", - "x-example": "<SUBSCRIBER_ID>", + "x-example": "<MESSAGE_ID>", "in": "path" } ] } }, - "\/migrations": { + "\/messaging\/messages\/{messageId}\/logs": { "get": { - "summary": "List migrations", - "operationId": "migrationsList", + "summary": "List message logs", + "operationId": "messagingListMessageLogs", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "migrations" + "messaging" ], - "description": "List all migrations in the current project. This endpoint returns a list of all migrations including their status, progress, and any errors that occurred during the migration process.", + "description": "Get the message activity logs listed by its unique ID.", "responses": { "200": { - "description": "Migrations List", + "description": "Logs List", "schema": { - "$ref": "#\/definitions\/migrationList" + "$ref": "#\/definitions\/logList" } } }, "deprecated": false, "x-appwrite": { - "method": "list", - "group": null, - "weight": 183, + "method": "listMessageLogs", + "group": "logs", + "weight": 216, "cookies": false, "type": "", - "demo": "migrations\/list.md", + "demo": "messaging\/list-message-logs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.read", + "scope": "messages.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/list-migrations.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-message-logs.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ + { + "name": "messageId", + "description": "Message ID.", + "required": true, + "type": "string", + "x-example": "<MESSAGE_ID>", + "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\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: status, stage, source, destination, resources, resourceId, resourceType, statusCounters, resourceData, errors", + "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, "type": "array", "collectionFormat": "multi", @@ -32146,12 +31353,85 @@ "in": "query" }, { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", "required": false, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" + } + ] + } + }, + "\/messaging\/messages\/{messageId}\/targets": { + "get": { + "summary": "List message targets", + "operationId": "messagingListTargets", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "messaging" + ], + "description": "Get a list of the targets associated with a message.", + "responses": { + "200": { + "description": "Target list", + "schema": { + "$ref": "#\/definitions\/targetList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listTargets", + "group": "messages", + "weight": 217, + "cookies": false, + "type": "", + "demo": "messaging\/list-targets.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-message-targets.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "messageId", + "description": "Message ID.", + "required": true, "type": "string", - "x-example": "<SEARCH>", - "default": "", + "x-example": "<MESSAGE_ID>", + "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: userId, providerId, identifier, providerType", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], "in": "query" }, { @@ -32166,239 +31446,93 @@ ] } }, - "\/migrations\/appwrite": { - "post": { - "summary": "Create Appwrite migration", - "operationId": "migrationsCreateAppwriteMigration", - "consumes": [ - "application\/json" - ], + "\/messaging\/providers": { + "get": { + "summary": "List providers", + "operationId": "messagingListProviders", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "migrations" + "messaging" ], - "description": "Migrate data from another Appwrite project to your current project. This endpoint allows you to migrate resources like databases, collections, documents, users, and files from an existing Appwrite project. ", + "description": "Get a list of all providers from the current Appwrite project.", "responses": { - "202": { - "description": "Migration", + "200": { + "description": "Provider list", "schema": { - "$ref": "#\/definitions\/migration" + "$ref": "#\/definitions\/providerList" } } }, "deprecated": false, "x-appwrite": { - "method": "createAppwriteMigration", - "group": null, - "weight": 177, + "method": "listProviders", + "group": "providers", + "weight": 186, "cookies": false, "type": "", - "demo": "migrations\/create-appwrite-migration.md", + "demo": "messaging\/list-providers.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", + "scope": "providers.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-appwrite.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-providers.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "resources": { - "type": "array", - "description": "List of resources to migrate", - "default": null, - "x-example": null, - "items": { - "type": "string", - "enum": [ - "user", - "team", - "membership", - "database", - "table", - "column", - "index", - "row", - "document", - "attribute", - "collection", - "bucket", - "file", - "function", - "deployment", - "environment-variable", - "site", - "site-deployment", - "site-variable" - ], - "x-enum-name": null, - "x-enum-keys": [] - } - }, - "endpoint": { - "type": "string", - "description": "Source Appwrite endpoint", - "default": null, - "x-example": "https:\/\/example.com", - "format": "url" - }, - "projectId": { - "type": "string", - "description": "Source Project ID", - "default": null, - "x-example": "<PROJECT_ID>" - }, - "apiKey": { - "type": "string", - "description": "Source API Key", - "default": null, - "x-example": "<API_KEY>" - } - }, - "required": [ - "resources", - "endpoint", - "projectId", - "apiKey" - ] - } - } - ] - } - }, - "\/migrations\/appwrite\/report": { - "get": { - "summary": "Get Appwrite migration report", - "operationId": "migrationsGetAppwriteReport", - "consumes": [], - "produces": [ - "application\/json" - ], - "tags": [ - "migrations" - ], - "description": "Generate a report of the data in an Appwrite project before migrating. This endpoint analyzes the source project and returns information about the resources that can be migrated.", - "responses": { - "200": { - "description": "Migration Report", - "schema": { - "$ref": "#\/definitions\/migrationReport" - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "getAppwriteReport", - "group": null, - "weight": 185, - "cookies": false, - "type": "", - "demo": "migrations\/get-appwrite-report.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-appwrite-report.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "resources", - "description": "List of resources to migrate", - "required": true, + "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, provider, type, enabled", + "required": false, "type": "array", "collectionFormat": "multi", "items": { - "type": "string", - "enum": [ - "user", - "team", - "membership", - "database", - "table", - "column", - "index", - "row", - "document", - "attribute", - "collection", - "bucket", - "file", - "function", - "deployment", - "environment-variable", - "site", - "site-deployment", - "site-variable" - ], - "x-enum-name": null, - "x-enum-keys": [] + "type": "string" }, + "default": [], "in": "query" }, { - "name": "endpoint", - "description": "Source's Appwrite Endpoint", - "required": true, - "type": "string", - "format": "url", - "x-example": "https:\/\/example.com", - "in": "query" - }, - { - "name": "projectID", - "description": "Source's Project ID", - "required": true, + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, "type": "string", - "x-example": "<PROJECT_ID>", + "x-example": "<SEARCH>", + "default": "", "in": "query" }, { - "name": "key", - "description": "Source's API Key", - "required": true, - "type": "string", - "x-example": "<KEY>", + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "type": "boolean", + "x-example": false, + "default": true, "in": "query" } ] } }, - "\/migrations\/csv\/exports": { + "\/messaging\/providers\/apns": { "post": { - "summary": "Export documents to CSV", - "operationId": "migrationsCreateCSVExport", + "summary": "Create APNS provider", + "operationId": "messagingCreateApnsProvider", "consumes": [ "application\/json" ], @@ -32406,42 +31540,116 @@ "application\/json" ], "tags": [ - "migrations" + "messaging" ], - "description": "Export documents to a CSV file from your Appwrite database. This endpoint allows you to export documents to a CSV file stored in a secure internal bucket. You'll receive an email with a download link when the export is complete.", + "description": "Create a new Apple Push Notification service provider.", "responses": { - "202": { - "description": "Migration", + "201": { + "description": "Provider", "schema": { - "$ref": "#\/definitions\/migration" + "$ref": "#\/definitions\/provider" } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "createCSVExport", - "group": null, - "weight": 182, + "method": "createApnsProvider", + "group": "providers", + "weight": 185, "cookies": false, "type": "", - "demo": "migrations\/create-csv-export.md", + "demo": "messaging\/create-apns-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", + "scope": "providers.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-csv-export.md", + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-apns-provider.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createAPNSProvider" + }, + "methods": [ + { + "name": "createApnsProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "providerId", + "name", + "authKey", + "authKeyId", + "teamId", + "bundleId", + "sandbox", + "enabled" + ], + "required": [ + "providerId", + "name" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/provider" + } + ], + "description": "Create a new Apple Push Notification service provider.", + "demo": "messaging\/create-apns-provider.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createAPNSProvider" + } + }, + { + "name": "createAPNSProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "providerId", + "name", + "authKey", + "authKeyId", + "teamId", + "bundleId", + "sandbox", + "enabled" + ], + "required": [ + "providerId", + "name" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/provider" + } + ], + "description": "Create a new Apple Push Notification service provider.", + "demo": "messaging\/create-apns-provider.md", + "public": true + } + ], "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -32451,80 +31659,69 @@ "schema": { "type": "object", "properties": { - "resourceId": { + "providerId": { "type": "string", - "description": "Composite ID in the format {databaseId:collectionId}, identifying a collection within a database to export.", + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", "default": null, - "x-example": "<ID1:ID2>" + "x-example": "<PROVIDER_ID>" }, - "filename": { + "name": { "type": "string", - "description": "The name of the file to be created for the export, excluding the .csv extension.", + "description": "Provider name.", "default": null, - "x-example": "<FILENAME>" - }, - "columns": { - "type": "array", - "description": "List of attributes to export. If empty, all attributes will be exported. You can use the `*` wildcard to export all attributes from the collection.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } + "x-example": "<NAME>" }, - "queries": { - "type": "array", - "description": "Array of query strings generated using the Query class provided by the SDK to filter documents to export. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } + "authKey": { + "type": "string", + "description": "APNS authentication key.", + "default": "", + "x-example": "<AUTH_KEY>" }, - "delimiter": { + "authKeyId": { "type": "string", - "description": "The character that separates each column value. Default is comma.", - "default": ",", - "x-example": "<DELIMITER>" + "description": "APNS authentication key ID.", + "default": "", + "x-example": "<AUTH_KEY_ID>" }, - "enclosure": { + "teamId": { "type": "string", - "description": "The character that encloses each column value. Default is double quotes.", - "default": "\"", - "x-example": "<ENCLOSURE>" + "description": "APNS team ID.", + "default": "", + "x-example": "<TEAM_ID>" }, - "escape": { + "bundleId": { "type": "string", - "description": "The escape character for the enclosure character. Default is double quotes.", - "default": "\"", - "x-example": "<ESCAPE>" + "description": "APNS bundle ID.", + "default": "", + "x-example": "<BUNDLE_ID>" }, - "header": { + "sandbox": { "type": "boolean", - "description": "Whether to include the header row with column names. Default is true.", - "default": true, + "description": "Use APNS sandbox environment.", + "default": false, "x-example": false }, - "notify": { + "enabled": { "type": "boolean", - "description": "Set to true to receive an email when the export is complete. Default is true.", - "default": true, - "x-example": false + "description": "Set as enabled.", + "default": null, + "x-example": false, + "x-nullable": true } }, "required": [ - "resourceId", - "filename" + "providerId", + "name" ] } } ] } }, - "\/migrations\/csv\/imports": { - "post": { - "summary": "Import documents from a CSV", - "operationId": "migrationsCreateCSVImport", + "\/messaging\/providers\/apns\/{providerId}": { + "patch": { + "summary": "Update APNS provider", + "operationId": "messagingUpdateApnsProvider", "consumes": [ "application\/json" ], @@ -32532,90 +31729,185 @@ "application\/json" ], "tags": [ - "migrations" + "messaging" ], - "description": "Import documents from a CSV file into your Appwrite database. This endpoint allows you to import documents from a CSV file uploaded to Appwrite Storage bucket.", + "description": "Update a Apple Push Notification service provider by its unique ID.", "responses": { - "202": { - "description": "Migration", + "200": { + "description": "Provider", "schema": { - "$ref": "#\/definitions\/migration" + "$ref": "#\/definitions\/provider" } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "createCSVImport", - "group": null, - "weight": 181, + "method": "updateApnsProvider", + "group": "providers", + "weight": 199, "cookies": false, "type": "", - "demo": "migrations\/create-csv-import.md", + "demo": "messaging\/update-apns-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", + "scope": "providers.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-csv-import.md", + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-apns-provider.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateAPNSProvider" + }, + "methods": [ + { + "name": "updateApnsProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "providerId", + "name", + "enabled", + "authKey", + "authKeyId", + "teamId", + "bundleId", + "sandbox" + ], + "required": [ + "providerId" + ], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/provider" + } + ], + "description": "Update a Apple Push Notification service provider by its unique ID.", + "demo": "messaging\/update-apns-provider.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateAPNSProvider" + } + }, + { + "name": "updateAPNSProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "providerId", + "name", + "enabled", + "authKey", + "authKeyId", + "teamId", + "bundleId", + "sandbox" + ], + "required": [ + "providerId" + ], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/provider" + } + ], + "description": "Update a Apple Push Notification service provider by its unique ID.", + "demo": "messaging\/update-apns-provider.md", + "public": true + } + ], "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "type": "string", + "x-example": "<PROVIDER_ID>", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "bucketId": { + "name": { "type": "string", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "description": "Provider name.", + "default": "", + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", "default": null, - "x-example": "<BUCKET_ID>" + "x-example": false, + "x-nullable": true }, - "fileId": { + "authKey": { "type": "string", - "description": "File ID.", - "default": null, - "x-example": "<FILE_ID>" + "description": "APNS authentication key.", + "default": "", + "x-example": "<AUTH_KEY>" }, - "resourceId": { + "authKeyId": { "type": "string", - "description": "Composite ID in the format {databaseId:collectionId}, identifying a collection within a database.", - "default": null, - "x-example": "<ID1:ID2>" + "description": "APNS authentication key ID.", + "default": "", + "x-example": "<AUTH_KEY_ID>" }, - "internalFile": { - "type": "boolean", - "description": "Is the file stored in an internal bucket?", - "default": false, - "x-example": false - } - }, - "required": [ - "bucketId", - "fileId", - "resourceId" - ] + "teamId": { + "type": "string", + "description": "APNS team ID.", + "default": "", + "x-example": "<TEAM_ID>" + }, + "bundleId": { + "type": "string", + "description": "APNS bundle ID.", + "default": "", + "x-example": "<BUNDLE_ID>" + }, + "sandbox": { + "type": "boolean", + "description": "Use APNS sandbox environment.", + "default": null, + "x-example": false, + "x-nullable": true + } + } } } ] } }, - "\/migrations\/firebase": { + "\/messaging\/providers\/fcm": { "post": { - "summary": "Create Firebase migration", - "operationId": "migrationsCreateFirebaseMigration", + "summary": "Create FCM provider", + "operationId": "messagingCreateFcmProvider", "consumes": [ "application\/json" ], @@ -32623,42 +31915,108 @@ "application\/json" ], "tags": [ - "migrations" + "messaging" ], - "description": "Migrate data from a Firebase project to your Appwrite project. This endpoint allows you to migrate resources like authentication and other supported services from a Firebase project. ", + "description": "Create a new Firebase Cloud Messaging provider.", "responses": { - "202": { - "description": "Migration", + "201": { + "description": "Provider", "schema": { - "$ref": "#\/definitions\/migration" + "$ref": "#\/definitions\/provider" } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "createFirebaseMigration", - "group": null, - "weight": 178, + "method": "createFcmProvider", + "group": "providers", + "weight": 184, "cookies": false, "type": "", - "demo": "migrations\/create-firebase-migration.md", + "demo": "messaging\/create-fcm-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", + "scope": "providers.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-firebase.md", + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-fcm-provider.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createFCMProvider" + }, + "methods": [ + { + "name": "createFcmProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "providerId", + "name", + "serviceAccountJSON", + "enabled" + ], + "required": [ + "providerId", + "name" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/provider" + } + ], + "description": "Create a new Firebase Cloud Messaging provider.", + "demo": "messaging\/create-fcm-provider.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createFCMProvider" + } + }, + { + "name": "createFCMProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "providerId", + "name", + "serviceAccountJSON", + "enabled" + ], + "required": [ + "providerId", + "name" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/provider" + } + ], + "description": "Create a new Firebase Cloud Messaging provider.", + "demo": "messaging\/create-fcm-provider.md", + "public": true + } + ], "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -32668,133 +32026,200 @@ "schema": { "type": "object", "properties": { - "resources": { - "type": "array", - "description": "List of resources to migrate", + "providerId": { + "type": "string", + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", "default": null, - "x-example": null, - "items": { - "type": "string", - "enum": [ - "user", - "database", - "table", - "column", - "row", - "document", - "attribute", - "collection", - "bucket", - "file" - ], - "x-enum-name": null, - "x-enum-keys": [] - } + "x-example": "<PROVIDER_ID>" }, - "serviceAccount": { + "name": { "type": "string", - "description": "JSON of the Firebase service account credentials", + "description": "Provider name.", "default": null, - "x-example": "<SERVICE_ACCOUNT>" + "x-example": "<NAME>" + }, + "serviceAccountJSON": { + "type": "object", + "description": "FCM service account JSON.", + "default": {}, + "x-example": "{}", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "default": null, + "x-example": false, + "x-nullable": true } }, "required": [ - "resources", - "serviceAccount" + "providerId", + "name" ] } } ] } }, - "\/migrations\/firebase\/report": { - "get": { - "summary": "Get Firebase migration report", - "operationId": "migrationsGetFirebaseReport", - "consumes": [], + "\/messaging\/providers\/fcm\/{providerId}": { + "patch": { + "summary": "Update FCM provider", + "operationId": "messagingUpdateFcmProvider", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "migrations" + "messaging" ], - "description": "Generate a report of the data in a Firebase project before migrating. This endpoint analyzes the source project and returns information about the resources that can be migrated.", + "description": "Update a Firebase Cloud Messaging provider by its unique ID.", "responses": { "200": { - "description": "Migration Report", + "description": "Provider", "schema": { - "$ref": "#\/definitions\/migrationReport" + "$ref": "#\/definitions\/provider" } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "getFirebaseReport", - "group": null, - "weight": 186, + "method": "updateFcmProvider", + "group": "providers", + "weight": 198, "cookies": false, "type": "", - "demo": "migrations\/get-firebase-report.md", + "demo": "messaging\/update-fcm-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", + "scope": "providers.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-firebase-report.md", + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-fcm-provider.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateFCMProvider" + }, + "methods": [ + { + "name": "updateFcmProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "providerId", + "name", + "enabled", + "serviceAccountJSON" + ], + "required": [ + "providerId" + ], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/provider" + } + ], + "description": "Update a Firebase Cloud Messaging provider by its unique ID.", + "demo": "messaging\/update-fcm-provider.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateFCMProvider" + } + }, + { + "name": "updateFCMProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "providerId", + "name", + "enabled", + "serviceAccountJSON" + ], + "required": [ + "providerId" + ], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/provider" + } + ], + "description": "Update a Firebase Cloud Messaging provider by its unique ID.", + "demo": "messaging\/update-fcm-provider.md", + "public": true + } + ], "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "resources", - "description": "List of resources to migrate", + "name": "providerId", + "description": "Provider ID.", "required": true, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string", - "enum": [ - "user", - "database", - "table", - "column", - "row", - "document", - "attribute", - "collection", - "bucket", - "file" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "in": "query" + "type": "string", + "x-example": "<PROVIDER_ID>", + "in": "path" }, { - "name": "serviceAccount", - "description": "JSON of the Firebase service account credentials", - "required": true, - "type": "string", - "x-example": "<SERVICE_ACCOUNT>", - "in": "query" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Provider name.", + "default": "", + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "default": null, + "x-example": false, + "x-nullable": true + }, + "serviceAccountJSON": { + "type": "object", + "description": "FCM service account JSON.", + "default": {}, + "x-example": "{}", + "x-nullable": true + } + } + } } ] } }, - "\/migrations\/nhost": { + "\/messaging\/providers\/mailgun": { "post": { - "summary": "Create NHost migration", - "operationId": "migrationsCreateNHostMigration", + "summary": "Create Mailgun provider", + "operationId": "messagingCreateMailgunProvider", "consumes": [ "application\/json" ], @@ -32802,42 +32227,44 @@ "application\/json" ], "tags": [ - "migrations" + "messaging" ], - "description": "Migrate data from an NHost project to your Appwrite project. This endpoint allows you to migrate resources like authentication, databases, and other supported services from an NHost project. ", + "description": "Create a new Mailgun provider.", "responses": { - "202": { - "description": "Migration", + "201": { + "description": "Provider", "schema": { - "$ref": "#\/definitions\/migration" + "$ref": "#\/definitions\/provider" } } }, "deprecated": false, "x-appwrite": { - "method": "createNHostMigration", - "group": null, - "weight": 180, + "method": "createMailgunProvider", + "group": "providers", + "weight": 175, "cookies": false, "type": "", - "demo": "migrations\/create-n-host-migration.md", + "demo": "messaging\/create-mailgun-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", + "scope": "providers.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-nhost.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-mailgun-provider.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -32847,226 +32274,213 @@ "schema": { "type": "object", "properties": { - "resources": { - "type": "array", - "description": "List of resources to migrate", + "providerId": { + "type": "string", + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", "default": null, - "x-example": null, - "items": { - "type": "string", - "enum": [ - "user", - "database", - "table", - "column", - "index", - "row", - "document", - "attribute", - "collection", - "bucket", - "file" - ], - "x-enum-name": null, - "x-enum-keys": [] - } + "x-example": "<PROVIDER_ID>" }, - "subdomain": { + "name": { "type": "string", - "description": "Source's Subdomain", + "description": "Provider name.", "default": null, - "x-example": "<SUBDOMAIN>" + "x-example": "<NAME>" }, - "region": { + "apiKey": { "type": "string", - "description": "Source's Region", - "default": null, - "x-example": "<REGION>" + "description": "Mailgun API Key.", + "default": "", + "x-example": "<API_KEY>" }, - "adminSecret": { + "domain": { "type": "string", - "description": "Source's Admin Secret", + "description": "Mailgun Domain.", + "default": "", + "x-example": "<DOMAIN>" + }, + "isEuRegion": { + "type": "boolean", + "description": "Set as EU region.", "default": null, - "x-example": "<ADMIN_SECRET>" + "x-example": false, + "x-nullable": true }, - "database": { + "fromName": { "type": "string", - "description": "Source's Database Name", - "default": null, - "x-example": "<DATABASE>" + "description": "Sender Name.", + "default": "", + "x-example": "<FROM_NAME>" }, - "username": { + "fromEmail": { "type": "string", - "description": "Source's Database Username", - "default": null, - "x-example": "<USERNAME>" + "description": "Sender email address.", + "default": "", + "x-example": "email@example.com", + "format": "email" }, - "password": { + "replyToName": { "type": "string", - "description": "Source's Database Password", - "default": null, - "x-example": "<PASSWORD>" + "description": "Name set in the reply to field for the mail. Default value is sender name. Reply to name must have reply to email as well.", + "default": "", + "x-example": "<REPLY_TO_NAME>" }, - "port": { - "type": "integer", - "description": "Source's Database Port", - "default": 5432, - "x-example": null, - "format": "int32" + "replyToEmail": { + "type": "string", + "description": "Email set in the reply to field for the mail. Default value is sender email. Reply to email must have reply to name as well.", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "default": null, + "x-example": false, + "x-nullable": true } }, "required": [ - "resources", - "subdomain", - "region", - "adminSecret", - "database", - "username", - "password" + "providerId", + "name" ] } } ] } }, - "\/migrations\/nhost\/report": { - "get": { - "summary": "Get NHost migration report", - "operationId": "migrationsGetNHostReport", - "consumes": [], + "\/messaging\/providers\/mailgun\/{providerId}": { + "patch": { + "summary": "Update Mailgun provider", + "operationId": "messagingUpdateMailgunProvider", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "migrations" + "messaging" ], - "description": "Generate a detailed report of the data in an NHost project before migrating. This endpoint analyzes the source project and returns information about the resources that can be migrated. ", + "description": "Update a Mailgun provider by its unique ID.", "responses": { "200": { - "description": "Migration Report", + "description": "Provider", "schema": { - "$ref": "#\/definitions\/migrationReport" + "$ref": "#\/definitions\/provider" } } }, "deprecated": false, "x-appwrite": { - "method": "getNHostReport", - "group": null, - "weight": 188, + "method": "updateMailgunProvider", + "group": "providers", + "weight": 189, "cookies": false, "type": "", - "demo": "migrations\/get-n-host-report.md", + "demo": "messaging\/update-mailgun-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", + "scope": "providers.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-nhost-report.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-mailgun-provider.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "resources", - "description": "List of resources to migrate.", - "required": true, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string", - "enum": [ - "user", - "database", - "table", - "column", - "index", - "row", - "document", - "attribute", - "collection", - "bucket", - "file" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "in": "query" - }, - { - "name": "subdomain", - "description": "Source's Subdomain.", - "required": true, - "type": "string", - "x-example": "<SUBDOMAIN>", - "in": "query" - }, - { - "name": "region", - "description": "Source's Region.", - "required": true, - "type": "string", - "x-example": "<REGION>", - "in": "query" - }, - { - "name": "adminSecret", - "description": "Source's Admin Secret.", - "required": true, - "type": "string", - "x-example": "<ADMIN_SECRET>", - "in": "query" - }, - { - "name": "database", - "description": "Source's Database Name.", - "required": true, - "type": "string", - "x-example": "<DATABASE>", - "in": "query" - }, - { - "name": "username", - "description": "Source's Database Username.", - "required": true, - "type": "string", - "x-example": "<USERNAME>", - "in": "query" - }, - { - "name": "password", - "description": "Source's Database Password.", + "name": "providerId", + "description": "Provider ID.", "required": true, "type": "string", - "x-example": "<PASSWORD>", - "in": "query" + "x-example": "<PROVIDER_ID>", + "in": "path" }, { - "name": "port", - "description": "Source's Database Port.", - "required": false, - "type": "integer", - "format": "int32", - "default": 5432, - "in": "query" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Provider name.", + "default": "", + "x-example": "<NAME>" + }, + "apiKey": { + "type": "string", + "description": "Mailgun API Key.", + "default": "", + "x-example": "<API_KEY>" + }, + "domain": { + "type": "string", + "description": "Mailgun Domain.", + "default": "", + "x-example": "<DOMAIN>" + }, + "isEuRegion": { + "type": "boolean", + "description": "Set as EU region.", + "default": null, + "x-example": false, + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "default": null, + "x-example": false, + "x-nullable": true + }, + "fromName": { + "type": "string", + "description": "Sender Name.", + "default": "", + "x-example": "<FROM_NAME>" + }, + "fromEmail": { + "type": "string", + "description": "Sender email address.", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "replyToName": { + "type": "string", + "description": "Name set in the reply to field for the mail. Default value is sender name.", + "default": "", + "x-example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "type": "string", + "description": "Email set in the reply to field for the mail. Default value is sender email.", + "default": "", + "x-example": "<REPLY_TO_EMAIL>" + } + } + } } ] } }, - "\/migrations\/supabase": { + "\/messaging\/providers\/msg91": { "post": { - "summary": "Create Supabase migration", - "operationId": "migrationsCreateSupabaseMigration", + "summary": "Create Msg91 provider", + "operationId": "messagingCreateMsg91Provider", "consumes": [ "application\/json" ], @@ -33074,42 +32488,44 @@ "application\/json" ], "tags": [ - "migrations" + "messaging" ], - "description": "Migrate data from a Supabase project to your Appwrite project. This endpoint allows you to migrate resources like authentication, databases, and other supported services from a Supabase project. ", + "description": "Create a new MSG91 provider.", "responses": { - "202": { - "description": "Migration", + "201": { + "description": "Provider", "schema": { - "$ref": "#\/definitions\/migration" + "$ref": "#\/definitions\/provider" } } }, "deprecated": false, "x-appwrite": { - "method": "createSupabaseMigration", - "group": null, + "method": "createMsg91Provider", + "group": "providers", "weight": 179, "cookies": false, "type": "", - "demo": "migrations\/create-supabase-migration.md", + "demo": "messaging\/create-msg-91-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", + "scope": "providers.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-supabase.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-msg91-provider.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -33119,270 +32535,160 @@ "schema": { "type": "object", "properties": { - "resources": { - "type": "array", - "description": "List of resources to migrate", - "default": null, - "x-example": null, - "items": { - "type": "string", - "enum": [ - "user", - "database", - "table", - "column", - "index", - "row", - "document", - "attribute", - "collection", - "bucket", - "file" - ], - "x-enum-name": null, - "x-enum-keys": [] - } - }, - "endpoint": { + "providerId": { "type": "string", - "description": "Source's Supabase Endpoint", + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", "default": null, - "x-example": "https:\/\/example.com", - "format": "url" + "x-example": "<PROVIDER_ID>" }, - "apiKey": { + "name": { "type": "string", - "description": "Source's API Key", + "description": "Provider name.", "default": null, - "x-example": "<API_KEY>" + "x-example": "<NAME>" }, - "databaseHost": { + "templateId": { "type": "string", - "description": "Source's Database Host", - "default": null, - "x-example": "<DATABASE_HOST>" + "description": "Msg91 template ID", + "default": "", + "x-example": "<TEMPLATE_ID>" }, - "username": { + "senderId": { "type": "string", - "description": "Source's Database Username", - "default": null, - "x-example": "<USERNAME>" + "description": "Msg91 sender ID.", + "default": "", + "x-example": "<SENDER_ID>" }, - "password": { + "authKey": { "type": "string", - "description": "Source's Database Password", - "default": null, - "x-example": "<PASSWORD>" + "description": "Msg91 auth key.", + "default": "", + "x-example": "<AUTH_KEY>" }, - "port": { - "type": "integer", - "description": "Source's Database Port", - "default": 5432, - "x-example": null, - "format": "int32" + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "default": null, + "x-example": false, + "x-nullable": true } }, "required": [ - "resources", - "endpoint", - "apiKey", - "databaseHost", - "username", - "password" + "providerId", + "name" ] } } ] } }, - "\/migrations\/supabase\/report": { - "get": { - "summary": "Get Supabase migration report", - "operationId": "migrationsGetSupabaseReport", - "consumes": [], + "\/messaging\/providers\/msg91\/{providerId}": { + "patch": { + "summary": "Update Msg91 provider", + "operationId": "messagingUpdateMsg91Provider", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "migrations" + "messaging" ], - "description": "Generate a report of the data in a Supabase project before migrating. This endpoint analyzes the source project and returns information about the resources that can be migrated. ", + "description": "Update a MSG91 provider by its unique ID.", "responses": { "200": { - "description": "Migration Report", + "description": "Provider", "schema": { - "$ref": "#\/definitions\/migrationReport" + "$ref": "#\/definitions\/provider" } } }, "deprecated": false, "x-appwrite": { - "method": "getSupabaseReport", - "group": null, - "weight": 187, + "method": "updateMsg91Provider", + "group": "providers", + "weight": 193, "cookies": false, "type": "", - "demo": "migrations\/get-supabase-report.md", + "demo": "messaging\/update-msg-91-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", + "scope": "providers.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-supabase-report.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-msg91-provider.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "resources", - "description": "List of resources to migrate", - "required": true, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string", - "enum": [ - "user", - "database", - "table", - "column", - "index", - "row", - "document", - "attribute", - "collection", - "bucket", - "file" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "in": "query" - }, - { - "name": "endpoint", - "description": "Source's Supabase Endpoint.", - "required": true, - "type": "string", - "format": "url", - "x-example": "https:\/\/example.com", - "in": "query" - }, - { - "name": "apiKey", - "description": "Source's API Key.", - "required": true, - "type": "string", - "x-example": "<API_KEY>", - "in": "query" - }, - { - "name": "databaseHost", - "description": "Source's Database Host.", - "required": true, - "type": "string", - "x-example": "<DATABASE_HOST>", - "in": "query" - }, - { - "name": "username", - "description": "Source's Database Username.", - "required": true, - "type": "string", - "x-example": "<USERNAME>", - "in": "query" - }, - { - "name": "password", - "description": "Source's Database Password.", + "name": "providerId", + "description": "Provider ID.", "required": true, "type": "string", - "x-example": "<PASSWORD>", - "in": "query" + "x-example": "<PROVIDER_ID>", + "in": "path" }, { - "name": "port", - "description": "Source's Database Port.", - "required": false, - "type": "integer", - "format": "int32", - "default": 5432, - "in": "query" - } - ] - } - }, - "\/migrations\/{migrationId}": { - "get": { - "summary": "Get migration", - "operationId": "migrationsGet", - "consumes": [], - "produces": [ - "application\/json" - ], - "tags": [ - "migrations" - ], - "description": "Get a migration by its unique ID. This endpoint returns detailed information about a specific migration including its current status, progress, and any errors that occurred during the migration process. ", - "responses": { - "200": { - "description": "Migration", + "name": "payload", + "in": "body", "schema": { - "$ref": "#\/definitions\/migration" + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Provider name.", + "default": "", + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "default": null, + "x-example": false, + "x-nullable": true + }, + "templateId": { + "type": "string", + "description": "Msg91 template ID.", + "default": "", + "x-example": "<TEMPLATE_ID>" + }, + "senderId": { + "type": "string", + "description": "Msg91 sender ID.", + "default": "", + "x-example": "<SENDER_ID>" + }, + "authKey": { + "type": "string", + "description": "Msg91 auth key.", + "default": "", + "x-example": "<AUTH_KEY>" + } + } } } - }, - "deprecated": false, - "x-appwrite": { - "method": "get", - "group": null, - "weight": 184, - "cookies": false, - "type": "", - "demo": "migrations\/get.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/get-migration.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "migrationId", - "description": "Migration unique ID.", - "required": true, - "type": "string", - "x-example": "<MIGRATION_ID>", - "in": "path" - } ] - }, - "patch": { - "summary": "Update retry migration", - "operationId": "migrationsRetry", + } + }, + "\/messaging\/providers\/resend": { + "post": { + "summary": "Create Resend provider", + "operationId": "messagingCreateResendProvider", "consumes": [ "application\/json" ], @@ -33390,184 +32696,234 @@ "application\/json" ], "tags": [ - "migrations" + "messaging" ], - "description": "Retry a failed migration. This endpoint allows you to retry a migration that has previously failed.", + "description": "Create a new Resend provider.", "responses": { - "202": { - "description": "Migration", + "201": { + "description": "Provider", "schema": { - "$ref": "#\/definitions\/migration" + "$ref": "#\/definitions\/provider" } } }, "deprecated": false, "x-appwrite": { - "method": "retry", - "group": null, - "weight": 189, + "method": "createResendProvider", + "group": "providers", + "weight": 177, "cookies": false, "type": "", - "demo": "migrations\/retry.md", + "demo": "messaging\/create-resend-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", + "scope": "providers.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/retry-migration.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-resend-provider.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "migrationId", - "description": "Migration unique ID.", - "required": true, - "type": "string", - "x-example": "<MIGRATION_ID>", - "in": "path" - } - ] - }, - "delete": { - "summary": "Delete migration", - "operationId": "migrationsDelete", - "consumes": [ - "application\/json" - ], - "produces": [], - "tags": [ - "migrations" - ], - "description": "Delete a migration by its unique ID. This endpoint allows you to remove a migration from your project's migration history. ", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "method": "delete", - "group": null, - "weight": 190, - "cookies": false, - "type": "", - "demo": "migrations\/delete.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "migrations.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/delete-migration.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "migrationId", - "description": "Migration ID.", - "required": true, - "type": "string", - "x-example": "<MIGRATION_ID>", - "in": "path" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "providerId": { + "type": "string", + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "default": null, + "x-example": "<PROVIDER_ID>" + }, + "name": { + "type": "string", + "description": "Provider name.", + "default": null, + "x-example": "<NAME>" + }, + "apiKey": { + "type": "string", + "description": "Resend API key.", + "default": "", + "x-example": "<API_KEY>" + }, + "fromName": { + "type": "string", + "description": "Sender Name.", + "default": "", + "x-example": "<FROM_NAME>" + }, + "fromEmail": { + "type": "string", + "description": "Sender email address.", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "replyToName": { + "type": "string", + "description": "Name set in the reply to field for the mail. Default value is sender name.", + "default": "", + "x-example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "type": "string", + "description": "Email set in the reply to field for the mail. Default value is sender email.", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "default": null, + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } } ] } }, - "\/organizations": { - "get": { - "summary": "List Orgnizations", - "operationId": "organizationsList", - "consumes": [], + "\/messaging\/providers\/resend\/{providerId}": { + "patch": { + "summary": "Update Resend provider", + "operationId": "messagingUpdateResendProvider", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "organizations" + "messaging" ], - "description": "Get a list of all the teams in which the current user is a member. You can use the parameters to filter your results.", + "description": "Update a Resend provider by its unique ID.", "responses": { "200": { - "description": "Organizations list", + "description": "Provider", "schema": { - "$ref": "#\/definitions\/organizationList" + "$ref": "#\/definitions\/provider" } } }, "deprecated": false, "x-appwrite": { - "method": "list", - "group": null, - "weight": 692, + "method": "updateResendProvider", + "group": "providers", + "weight": 191, "cookies": false, "type": "", - "demo": "organizations\/list.md", + "demo": "messaging\/update-resend-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "providers.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/list-teams.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-resend-provider.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "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, total, billingPlan, paymentMethodId, backupPaymentMethodId, platform", - "required": false, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" + "name": "providerId", + "description": "Provider ID.", + "required": true, + "type": "string", + "x-example": "<PROVIDER_ID>", + "in": "path" }, { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "type": "string", - "x-example": "<SEARCH>", - "default": "", - "in": "query" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Provider name.", + "default": "", + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "default": null, + "x-example": false, + "x-nullable": true + }, + "apiKey": { + "type": "string", + "description": "Resend API key.", + "default": "", + "x-example": "<API_KEY>" + }, + "fromName": { + "type": "string", + "description": "Sender Name.", + "default": "", + "x-example": "<FROM_NAME>" + }, + "fromEmail": { + "type": "string", + "description": "Sender email address.", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "replyToName": { + "type": "string", + "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", + "default": "", + "x-example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "type": "string", + "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", + "default": "", + "x-example": "<REPLY_TO_EMAIL>" + } + } + } } ] - }, + } + }, + "\/messaging\/providers\/sendgrid": { "post": { - "summary": "Create Organization", - "operationId": "organizationsCreate", + "summary": "Create Sendgrid provider", + "operationId": "messagingCreateSendgridProvider", "consumes": [ "application\/json" ], @@ -33575,49 +32931,44 @@ "application\/json" ], "tags": [ - "organizations" + "messaging" ], - "description": "Create a new organization.\n", + "description": "Create a new Sendgrid provider.", "responses": { "201": { - "description": "Organization, or PaymentAuthentication", + "description": "Provider", "schema": { - "x-oneOf": [ - { - "$ref": "#\/definitions\/organization" - }, - { - "$ref": "#\/definitions\/paymentAuthentication" - } - ] + "$ref": "#\/definitions\/provider" } } }, "deprecated": false, "x-appwrite": { - "method": "create", - "group": null, - "weight": 691, + "method": "createSendgridProvider", + "group": "providers", + "weight": 176, "cookies": false, "type": "", - "demo": "organizations\/create.md", - "rate-limit": 10, + "demo": "messaging\/create-sendgrid-provider.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": "providers.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-sendgrid-provider.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -33627,96 +32978,71 @@ "schema": { "type": "object", "properties": { - "organizationId": { + "providerId": { "type": "string", - "description": "Organization 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.", + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", "default": null, - "x-example": "<ORGANIZATION_ID>" + "x-example": "<PROVIDER_ID>" }, "name": { "type": "string", - "description": "Organization name. Max length: 128 chars.", + "description": "Provider name.", "default": null, "x-example": "<NAME>" }, - "billingPlan": { + "apiKey": { "type": "string", - "description": "Organization billing plan chosen", - "default": null, - "x-example": "tier-0" + "description": "Sendgrid API key.", + "default": "", + "x-example": "<API_KEY>" }, - "paymentMethodId": { + "fromName": { "type": "string", - "description": "Payment method ID. Required for pro plans when trial is not available and user doesn't have default payment method set.", - "default": null, - "x-example": "<PAYMENT_METHOD_ID>", - "x-nullable": true + "description": "Sender Name.", + "default": "", + "x-example": "<FROM_NAME>" }, - "billingAddressId": { + "fromEmail": { "type": "string", - "description": "Unique ID of billing address", + "description": "Sender email address.", "default": "", - "x-example": "<BILLING_ADDRESS_ID>", - "x-nullable": true - }, - "invites": { - "type": "array", - "description": "Additional member invites", - "default": [], - "x-example": null, - "items": { - "type": "string" - } + "x-example": "email@example.com", + "format": "email" }, - "couponId": { + "replyToName": { "type": "string", - "description": "Coupon id", - "default": null, - "x-example": "<COUPON_ID>", - "x-nullable": true + "description": "Name set in the reply to field for the mail. Default value is sender name.", + "default": "", + "x-example": "<REPLY_TO_NAME>" }, - "taxId": { + "replyToEmail": { "type": "string", - "description": "Tax Id associated to billing.", - "default": null, - "x-example": "<TAX_ID>", - "x-nullable": true + "description": "Email set in the reply to field for the mail. Default value is sender email.", + "default": "", + "x-example": "email@example.com", + "format": "email" }, - "budget": { - "type": "integer", - "description": "Budget limit for additional usage set for the organization", + "enabled": { + "type": "boolean", + "description": "Set as enabled.", "default": null, - "x-example": 0, - "format": "int32", + "x-example": false, "x-nullable": true - }, - "platform": { - "type": "string", - "description": "Platform type", - "default": "appwrite", - "x-example": "appwrite", - "enum": [ - "appwrite", - "imagine" - ], - "x-enum-name": null, - "x-enum-keys": [] } }, "required": [ - "organizationId", - "name", - "billingPlan" + "providerId", + "name" ] } } ] } }, - "\/organizations\/estimations\/create-organization": { + "\/messaging\/providers\/sendgrid\/{providerId}": { "patch": { - "summary": "Estimate create Organization", - "operationId": "organizationsEstimationCreateOrganization", + "summary": "Update Sendgrid provider", + "operationId": "messagingUpdateSendgridProvider", "consumes": [ "application\/json" ], @@ -33724,105 +33050,115 @@ "application\/json" ], "tags": [ - "organizations" + "messaging" ], - "description": "Get estimation for creating an organization.", + "description": "Update a Sendgrid provider by its unique ID.", "responses": { "200": { - "description": "Estimation", + "description": "Provider", "schema": { - "$ref": "#\/definitions\/estimation" + "$ref": "#\/definitions\/provider" } } }, "deprecated": false, "x-appwrite": { - "method": "estimationCreateOrganization", - "group": null, - "weight": 725, + "method": "updateSendgridProvider", + "group": "providers", + "weight": 190, "cookies": false, "type": "", - "demo": "organizations\/estimation-create-organization.md", - "rate-limit": 10, + "demo": "messaging\/update-sendgrid-provider.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": "providers.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/estimation-create-organization.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-sendgrid-provider.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "type": "string", + "x-example": "<PROVIDER_ID>", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "billingPlan": { + "name": { "type": "string", - "description": "Organization billing plan chosen", - "default": null, - "x-example": "tier-0" + "description": "Provider name.", + "default": "", + "x-example": "<NAME>" }, - "paymentMethodId": { - "type": "string", - "description": "Payment method ID. Required for pro plans when trial is not available and user doesn't have default payment method set.", + "enabled": { + "type": "boolean", + "description": "Set as enabled.", "default": null, - "x-example": "<PAYMENT_METHOD_ID>", + "x-example": false, "x-nullable": true }, - "invites": { - "type": "array", - "description": "Additional member invites", - "default": [], - "x-example": null, - "items": { - "type": "string" - } + "apiKey": { + "type": "string", + "description": "Sendgrid API key.", + "default": "", + "x-example": "<API_KEY>" }, - "couponId": { + "fromName": { "type": "string", - "description": "Coupon id", - "default": null, - "x-example": "<COUPON_ID>", - "x-nullable": true + "description": "Sender Name.", + "default": "", + "x-example": "<FROM_NAME>" }, - "platform": { + "fromEmail": { "type": "string", - "description": "Platform type", - "default": "appwrite", - "x-example": "appwrite", - "enum": [ - "appwrite", - "imagine" - ], - "x-enum-name": null, - "x-enum-keys": [] + "description": "Sender email address.", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "replyToName": { + "type": "string", + "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", + "default": "", + "x-example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "type": "string", + "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", + "default": "", + "x-example": "<REPLY_TO_EMAIL>" } - }, - "required": [ - "billingPlan" - ] + } } } ] } }, - "\/organizations\/{organizationId}": { - "delete": { - "summary": "Delete team", - "operationId": "organizationsDelete", + "\/messaging\/providers\/smtp": { + "post": { + "summary": "Create SMTP provider", + "operationId": "messagingCreateSmtpProvider", "consumes": [ "application\/json" ], @@ -33830,214 +33166,599 @@ "application\/json" ], "tags": [ - "organizations" + "messaging" ], - "description": "Delete an organization.", + "description": "Create a new SMTP provider.", "responses": { - "204": { - "description": "No content" + "201": { + "description": "Provider", + "schema": { + "$ref": "#\/definitions\/provider" + } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "delete", - "group": null, - "weight": 693, + "method": "createSmtpProvider", + "group": "providers", + "weight": 178, "cookies": false, "type": "", - "demo": "organizations\/delete.md", + "demo": "messaging\/create-smtp-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "organizations.write", + "scope": "providers.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Team ID.", - "required": true, - "type": "string", - "x-example": "<ORGANIZATION_ID>", - "in": "path" + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-smtp-provider.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createSMTPProvider" + }, + "methods": [ + { + "name": "createSmtpProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "providerId", + "name", + "host", + "port", + "username", + "password", + "encryption", + "autoTLS", + "mailer", + "fromName", + "fromEmail", + "replyToName", + "replyToEmail", + "enabled" + ], + "required": [ + "providerId", + "name", + "host" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/provider" + } + ], + "description": "Create a new SMTP provider.", + "demo": "messaging\/create-smtp-provider.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createSMTPProvider" + } + }, + { + "name": "createSMTPProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "providerId", + "name", + "host", + "port", + "username", + "password", + "encryption", + "autoTLS", + "mailer", + "fromName", + "fromEmail", + "replyToName", + "replyToEmail", + "enabled" + ], + "required": [ + "providerId", + "name", + "host" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/provider" + } + ], + "description": "Create a new SMTP provider.", + "demo": "messaging\/create-smtp-provider.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "providerId": { + "type": "string", + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "default": null, + "x-example": "<PROVIDER_ID>" + }, + "name": { + "type": "string", + "description": "Provider name.", + "default": null, + "x-example": "<NAME>" + }, + "host": { + "type": "string", + "description": "SMTP hosts. Either a single hostname or multiple semicolon-delimited hostnames. You can also specify a different port for each host such as `smtp1.example.com:25;smtp2.example.com`. You can also specify encryption type, for example: `tls:\/\/smtp1.example.com:587;ssl:\/\/smtp2.example.com:465\"`. Hosts will be tried in order.", + "default": null, + "x-example": "<HOST>" + }, + "port": { + "type": "integer", + "description": "The default SMTP server port.", + "default": 587, + "x-example": 1, + "format": "int32" + }, + "username": { + "type": "string", + "description": "Authentication username.", + "default": "", + "x-example": "<USERNAME>" + }, + "password": { + "type": "string", + "description": "Authentication password.", + "default": "", + "x-example": "<PASSWORD>" + }, + "encryption": { + "type": "string", + "description": "Encryption type. Can be omitted, 'ssl', or 'tls'", + "default": "", + "x-example": "none", + "enum": [ + "none", + "ssl", + "tls" + ], + "x-enum-name": "SmtpEncryption", + "x-enum-keys": [] + }, + "autoTLS": { + "type": "boolean", + "description": "Enable SMTP AutoTLS feature.", + "default": true, + "x-example": false + }, + "mailer": { + "type": "string", + "description": "The value to use for the X-Mailer header.", + "default": "", + "x-example": "<MAILER>" + }, + "fromName": { + "type": "string", + "description": "Sender Name.", + "default": "", + "x-example": "<FROM_NAME>" + }, + "fromEmail": { + "type": "string", + "description": "Sender email address.", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "replyToName": { + "type": "string", + "description": "Name set in the reply to field for the mail. Default value is sender name.", + "default": "", + "x-example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "type": "string", + "description": "Email set in the reply to field for the mail. Default value is sender email.", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "default": null, + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "providerId", + "name", + "host" + ] + } } ] } }, - "\/organizations\/{organizationId}\/aggregations": { - "get": { - "summary": "List aggregations", - "operationId": "organizationsListAggregations", - "consumes": [], + "\/messaging\/providers\/smtp\/{providerId}": { + "patch": { + "summary": "Update SMTP provider", + "operationId": "messagingUpdateSmtpProvider", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "organizations" + "messaging" ], - "description": "Get a list of all aggregations for an organization.", + "description": "Update a SMTP provider by its unique ID.", "responses": { "200": { - "description": "Aggregation team list", + "description": "Provider", "schema": { - "$ref": "#\/definitions\/aggregationTeamList" + "$ref": "#\/definitions\/provider" } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "listAggregations", - "group": null, - "weight": 708, + "method": "updateSmtpProvider", + "group": "providers", + "weight": 192, "cookies": false, "type": "", - "demo": "organizations\/list-aggregations.md", + "demo": "messaging\/update-smtp-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "providers.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/list-aggregations.md", + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-smtp-provider.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateSMTPProvider" + }, + "methods": [ + { + "name": "updateSmtpProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "providerId", + "name", + "host", + "port", + "username", + "password", + "encryption", + "autoTLS", + "mailer", + "fromName", + "fromEmail", + "replyToName", + "replyToEmail", + "enabled" + ], + "required": [ + "providerId" + ], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/provider" + } + ], + "description": "Update a SMTP provider by its unique ID.", + "demo": "messaging\/update-smtp-provider.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateSMTPProvider" + } + }, + { + "name": "updateSMTPProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "providerId", + "name", + "host", + "port", + "username", + "password", + "encryption", + "autoTLS", + "mailer", + "fromName", + "fromEmail", + "replyToName", + "replyToEmail", + "enabled" + ], + "required": [ + "providerId" + ], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/provider" + } + ], + "description": "Update a SMTP provider by its unique ID.", + "demo": "messaging\/update-smtp-provider.md", + "public": true + } + ], "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", + "name": "providerId", + "description": "Provider ID.", "required": true, "type": "string", - "x-example": "<ORGANIZATION_ID>", + "x-example": "<PROVIDER_ID>", "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\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: teamId, aggregationId, from, to", - "required": false, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Provider name.", + "default": "", + "x-example": "<NAME>" + }, + "host": { + "type": "string", + "description": "SMTP hosts. Either a single hostname or multiple semicolon-delimited hostnames. You can also specify a different port for each host such as `smtp1.example.com:25;smtp2.example.com`. You can also specify encryption type, for example: `tls:\/\/smtp1.example.com:587;ssl:\/\/smtp2.example.com:465\"`. Hosts will be tried in order.", + "default": "", + "x-example": "<HOST>" + }, + "port": { + "type": "integer", + "description": "SMTP port.", + "default": null, + "x-example": 1, + "format": "int32", + "x-nullable": true + }, + "username": { + "type": "string", + "description": "Authentication username.", + "default": "", + "x-example": "<USERNAME>" + }, + "password": { + "type": "string", + "description": "Authentication password.", + "default": "", + "x-example": "<PASSWORD>" + }, + "encryption": { + "type": "string", + "description": "Encryption type. Can be 'ssl' or 'tls'", + "default": "", + "x-example": "none", + "enum": [ + "none", + "ssl", + "tls" + ], + "x-enum-name": "SmtpEncryption", + "x-enum-keys": [] + }, + "autoTLS": { + "type": "boolean", + "description": "Enable SMTP AutoTLS feature.", + "default": null, + "x-example": false, + "x-nullable": true + }, + "mailer": { + "type": "string", + "description": "The value to use for the X-Mailer header.", + "default": "", + "x-example": "<MAILER>" + }, + "fromName": { + "type": "string", + "description": "Sender Name.", + "default": "", + "x-example": "<FROM_NAME>" + }, + "fromEmail": { + "type": "string", + "description": "Sender email address.", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "replyToName": { + "type": "string", + "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", + "default": "", + "x-example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "type": "string", + "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", + "default": "", + "x-example": "<REPLY_TO_EMAIL>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "default": null, + "x-example": false, + "x-nullable": true + } + } + } } ] } }, - "\/organizations\/{organizationId}\/aggregations\/{aggregationId}": { - "get": { - "summary": "Get aggregation", - "operationId": "organizationsGetAggregation", - "consumes": [], + "\/messaging\/providers\/telesign": { + "post": { + "summary": "Create Telesign provider", + "operationId": "messagingCreateTelesignProvider", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "organizations" + "messaging" ], - "description": "Get a specific aggregation using it's aggregation ID.", + "description": "Create a new Telesign provider.", "responses": { - "200": { - "description": "AggregationTeam", + "201": { + "description": "Provider", "schema": { - "$ref": "#\/definitions\/aggregationTeam" + "$ref": "#\/definitions\/provider" } } }, "deprecated": false, "x-appwrite": { - "method": "getAggregation", - "group": null, - "weight": 709, + "method": "createTelesignProvider", + "group": "providers", + "weight": 180, "cookies": false, "type": "", - "demo": "organizations\/get-aggregation.md", + "demo": "messaging\/create-telesign-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "providers.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-aggregation.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-telesign-provider.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "type": "string", - "x-example": "<ORGANIZATION_ID>", - "in": "path" - }, - { - "name": "aggregationId", - "description": "Invoice unique ID", - "required": true, - "type": "string", - "x-example": "<AGGREGATION_ID>", - "in": "path" - }, - { - "name": "limit", - "description": "Maximum number of project aggregations to return in response. By default will return maximum 5 results. Maximum of 10 results allowed per request.", - "required": false, - "type": "integer", - "format": "int32", - "x-example": 0, - "default": 5, - "in": "query" - }, - { - "name": "offset", - "description": "Offset value. The default value is 0. Use this param to manage pagination.", - "required": false, - "type": "integer", - "format": "int32", - "default": 0, - "in": "query" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "providerId": { + "type": "string", + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "default": null, + "x-example": "<PROVIDER_ID>" + }, + "name": { + "type": "string", + "description": "Provider name.", + "default": null, + "x-example": "<NAME>" + }, + "from": { + "type": "string", + "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "default": "", + "x-example": "+12065550100", + "format": "phone" + }, + "customerId": { + "type": "string", + "description": "Telesign customer ID.", + "default": "", + "x-example": "<CUSTOMER_ID>" + }, + "apiKey": { + "type": "string", + "description": "Telesign API key.", + "default": "", + "x-example": "<API_KEY>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "default": null, + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } } ] } }, - "\/organizations\/{organizationId}\/billing-address": { + "\/messaging\/providers\/telesign\/{providerId}": { "patch": { - "summary": "Set team's billing address", - "operationId": "organizationsSetBillingAddress", + "summary": "Update Telesign provider", + "operationId": "messagingUpdateTelesignProvider", "consumes": [ "application\/json" ], @@ -34045,51 +33766,53 @@ "application\/json" ], "tags": [ - "organizations" + "messaging" ], - "description": "Set a billing address for an organization.", + "description": "Update a Telesign provider by its unique ID.", "responses": { "200": { - "description": "Organization", + "description": "Provider", "schema": { - "$ref": "#\/definitions\/organization" + "$ref": "#\/definitions\/provider" } } }, "deprecated": false, "x-appwrite": { - "method": "setBillingAddress", - "group": null, - "weight": 701, + "method": "updateTelesignProvider", + "group": "providers", + "weight": 194, "cookies": false, "type": "", - "demo": "organizations\/set-billing-address.md", + "demo": "messaging\/update-telesign-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "providers.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/set-billing-address.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-telesign-provider.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", + "name": "providerId", + "description": "Provider ID.", "required": true, "type": "string", - "x-example": "<ORGANIZATION_ID>", + "x-example": "<PROVIDER_ID>", "in": "path" }, { @@ -34098,23 +33821,47 @@ "schema": { "type": "object", "properties": { - "billingAddressId": { + "name": { "type": "string", - "description": "Unique ID of billing address", + "description": "Provider name.", + "default": "", + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", "default": null, - "x-example": "<BILLING_ADDRESS_ID>" + "x-example": false, + "x-nullable": true + }, + "customerId": { + "type": "string", + "description": "Telesign customer ID.", + "default": "", + "x-example": "<CUSTOMER_ID>" + }, + "apiKey": { + "type": "string", + "description": "Telesign API key.", + "default": "", + "x-example": "<API_KEY>" + }, + "from": { + "type": "string", + "description": "Sender number.", + "default": "", + "x-example": "<FROM>" } - }, - "required": [ - "billingAddressId" - ] + } } } ] - }, - "delete": { - "summary": "Delete team's billing address", - "operationId": "organizationsDeleteBillingAddress", + } + }, + "\/messaging\/providers\/textmagic": { + "post": { + "summary": "Create Textmagic provider", + "operationId": "messagingCreateTextmagicProvider", "consumes": [ "application\/json" ], @@ -34122,124 +33869,208 @@ "application\/json" ], "tags": [ - "organizations" + "messaging" ], - "description": "Delete a team's billing address.", + "description": "Create a new Textmagic provider.", "responses": { - "204": { - "description": "No content" + "201": { + "description": "Provider", + "schema": { + "$ref": "#\/definitions\/provider" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteBillingAddress", - "group": null, - "weight": 702, + "method": "createTextmagicProvider", + "group": "providers", + "weight": 181, "cookies": false, "type": "", - "demo": "organizations\/delete-billing-address.md", + "demo": "messaging\/create-textmagic-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "providers.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/delete-billing-address.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-textmagic-provider.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "type": "string", - "x-example": "<ORGANIZATION_ID>", - "in": "path" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "providerId": { + "type": "string", + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "default": null, + "x-example": "<PROVIDER_ID>" + }, + "name": { + "type": "string", + "description": "Provider name.", + "default": null, + "x-example": "<NAME>" + }, + "from": { + "type": "string", + "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "default": "", + "x-example": "+12065550100", + "format": "phone" + }, + "username": { + "type": "string", + "description": "Textmagic username.", + "default": "", + "x-example": "<USERNAME>" + }, + "apiKey": { + "type": "string", + "description": "Textmagic apiKey.", + "default": "", + "x-example": "<API_KEY>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "default": null, + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } } ] } }, - "\/organizations\/{organizationId}\/billing-addresses\/{billingAddressId}": { - "get": { - "summary": "Get billing address", - "operationId": "organizationsGetBillingAddress", - "consumes": [], + "\/messaging\/providers\/textmagic\/{providerId}": { + "patch": { + "summary": "Update Textmagic provider", + "operationId": "messagingUpdateTextmagicProvider", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "organizations" + "messaging" ], - "description": "Get a billing address using it's ID.", + "description": "Update a Textmagic provider by its unique ID.", "responses": { "200": { - "description": "BillingAddress", + "description": "Provider", "schema": { - "$ref": "#\/definitions\/billingAddress" + "$ref": "#\/definitions\/provider" } } }, "deprecated": false, "x-appwrite": { - "method": "getBillingAddress", - "group": null, - "weight": 700, + "method": "updateTextmagicProvider", + "group": "providers", + "weight": 195, "cookies": false, "type": "", - "demo": "organizations\/get-billing-address.md", + "demo": "messaging\/update-textmagic-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.read", + "scope": "providers.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-billing-address.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-textmagic-provider.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", + "name": "providerId", + "description": "Provider ID.", "required": true, "type": "string", - "x-example": "<ORGANIZATION_ID>", + "x-example": "<PROVIDER_ID>", "in": "path" }, { - "name": "billingAddressId", - "description": "Unique ID of billing address", - "required": true, - "type": "string", - "x-example": "<BILLING_ADDRESS_ID>", - "in": "path" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Provider name.", + "default": "", + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "default": null, + "x-example": false, + "x-nullable": true + }, + "username": { + "type": "string", + "description": "Textmagic username.", + "default": "", + "x-example": "<USERNAME>" + }, + "apiKey": { + "type": "string", + "description": "Textmagic apiKey.", + "default": "", + "x-example": "<API_KEY>" + }, + "from": { + "type": "string", + "description": "Sender number.", + "default": "", + "x-example": "<FROM>" + } + } + } } ] } }, - "\/organizations\/{organizationId}\/billing-email": { - "patch": { - "summary": "Set team's billing email", - "operationId": "organizationsSetBillingEmail", + "\/messaging\/providers\/twilio": { + "post": { + "summary": "Create Twilio provider", + "operationId": "messagingCreateTwilioProvider", "consumes": [ "application\/json" ], @@ -34247,79 +34078,105 @@ "application\/json" ], "tags": [ - "organizations" + "messaging" ], - "description": "Set the current billing email for the organization.", + "description": "Create a new Twilio provider.", "responses": { - "200": { - "description": "Organization", + "201": { + "description": "Provider", "schema": { - "$ref": "#\/definitions\/organization" + "$ref": "#\/definitions\/provider" } } }, "deprecated": false, "x-appwrite": { - "method": "setBillingEmail", - "group": null, - "weight": 720, + "method": "createTwilioProvider", + "group": "providers", + "weight": 182, "cookies": false, "type": "", - "demo": "organizations\/set-billing-email.md", + "demo": "messaging\/create-twilio-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "providers.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/set-billing-email.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-twilio-provider.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "type": "string", - "x-example": "<ORGANIZATION_ID>", - "in": "path" - }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "billingEmail": { + "providerId": { "type": "string", - "description": "Billing email for the organization.", + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", "default": null, - "x-example": "email@example.com", - "format": "email" + "x-example": "<PROVIDER_ID>" + }, + "name": { + "type": "string", + "description": "Provider name.", + "default": null, + "x-example": "<NAME>" + }, + "from": { + "type": "string", + "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "default": "", + "x-example": "+12065550100", + "format": "phone" + }, + "accountSid": { + "type": "string", + "description": "Twilio account secret ID.", + "default": "", + "x-example": "<ACCOUNT_SID>" + }, + "authToken": { + "type": "string", + "description": "Twilio authentication token.", + "default": "", + "x-example": "<AUTH_TOKEN>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "default": null, + "x-example": false, + "x-nullable": true } }, "required": [ - "billingEmail" + "providerId", + "name" ] } } ] } }, - "\/organizations\/{organizationId}\/budget": { + "\/messaging\/providers\/twilio\/{providerId}": { "patch": { - "summary": "Update organization budget", - "operationId": "organizationsUpdateBudget", + "summary": "Update Twilio provider", + "operationId": "messagingUpdateTwilioProvider", "consumes": [ "application\/json" ], @@ -34327,51 +34184,53 @@ "application\/json" ], "tags": [ - "organizations" + "messaging" ], - "description": "Update the budget limit for an organization.", + "description": "Update a Twilio provider by its unique ID.", "responses": { "200": { - "description": "Organization", + "description": "Provider", "schema": { - "$ref": "#\/definitions\/organization" + "$ref": "#\/definitions\/provider" } } }, "deprecated": false, "x-appwrite": { - "method": "updateBudget", - "group": null, - "weight": 697, + "method": "updateTwilioProvider", + "group": "providers", + "weight": 196, "cookies": false, "type": "", - "demo": "organizations\/update-budget.md", + "demo": "messaging\/update-twilio-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "providers.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/update-budget.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-twilio-provider.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization Unique ID", + "name": "providerId", + "description": "Provider ID.", "required": true, "type": "string", - "x-example": "<ORGANIZATION_ID>", + "x-example": "<PROVIDER_ID>", "in": "path" }, { @@ -34380,107 +34239,153 @@ "schema": { "type": "object", "properties": { - "budget": { - "type": "integer", - "description": "Budget limit for additional usage set for the organization", + "name": { + "type": "string", + "description": "Provider name.", + "default": "", + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", "default": null, - "x-example": 0, - "format": "int32", + "x-example": false, "x-nullable": true }, - "alerts": { - "type": "array", - "description": "Budget alert limit percentage", - "default": [ - 75 - ], - "x-example": null, - "items": { - "type": "integer" - } + "accountSid": { + "type": "string", + "description": "Twilio account secret ID.", + "default": "", + "x-example": "<ACCOUNT_SID>" + }, + "authToken": { + "type": "string", + "description": "Twilio authentication token.", + "default": "", + "x-example": "<AUTH_TOKEN>" + }, + "from": { + "type": "string", + "description": "Sender number.", + "default": "", + "x-example": "<FROM>" } - }, - "required": [ - "budget" - ] + } } } ] } }, - "\/organizations\/{organizationId}\/credits": { - "get": { - "summary": "List credits", - "operationId": "organizationsListCredits", - "consumes": [], + "\/messaging\/providers\/vonage": { + "post": { + "summary": "Create Vonage provider", + "operationId": "messagingCreateVonageProvider", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "organizations" + "messaging" ], - "description": "List all credits for an organization.\n", + "description": "Create a new Vonage provider.", "responses": { - "200": { - "description": "CreditList", + "201": { + "description": "Provider", "schema": { - "$ref": "#\/definitions\/creditList" + "$ref": "#\/definitions\/provider" } } }, "deprecated": false, "x-appwrite": { - "method": "listCredits", - "group": null, - "weight": 712, + "method": "createVonageProvider", + "group": "providers", + "weight": 183, "cookies": false, "type": "", - "demo": "organizations\/list-credits.md", + "demo": "messaging\/create-vonage-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.read", + "scope": "providers.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/list-credits.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-vonage-provider.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "type": "string", - "x-example": "<ORGANIZATION_ID>", - "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\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: teamId, couponId, credits, expiration, status", - "required": false, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "providerId": { + "type": "string", + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "default": null, + "x-example": "<PROVIDER_ID>" + }, + "name": { + "type": "string", + "description": "Provider name.", + "default": null, + "x-example": "<NAME>" + }, + "from": { + "type": "string", + "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "default": "", + "x-example": "+12065550100", + "format": "phone" + }, + "apiKey": { + "type": "string", + "description": "Vonage API key.", + "default": "", + "x-example": "<API_KEY>" + }, + "apiSecret": { + "type": "string", + "description": "Vonage API secret.", + "default": "", + "x-example": "<API_SECRET>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "default": null, + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } } ] - }, - "post": { - "summary": "Add credits from coupon", - "operationId": "organizationsAddCredit", + } + }, + "\/messaging\/providers\/vonage\/{providerId}": { + "patch": { + "summary": "Update Vonage provider", + "operationId": "messagingUpdateVonageProvider", "consumes": [ "application\/json" ], @@ -34488,51 +34393,53 @@ "application\/json" ], "tags": [ - "organizations" + "messaging" ], - "description": "Add credit to an organization using a coupon.", + "description": "Update a Vonage provider by its unique ID.", "responses": { - "201": { - "description": "Credit", + "200": { + "description": "Provider", "schema": { - "$ref": "#\/definitions\/credit" + "$ref": "#\/definitions\/provider" } } }, "deprecated": false, "x-appwrite": { - "method": "addCredit", - "group": null, - "weight": 713, + "method": "updateVonageProvider", + "group": "providers", + "weight": 197, "cookies": false, "type": "", - "demo": "organizations\/add-credit.md", - "rate-limit": 10, + "demo": "messaging\/update-vonage-provider.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "providers.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/add-credit.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-vonage-provider.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", + "name": "providerId", + "description": "Provider ID.", "required": true, "type": "string", - "x-example": "<ORGANIZATION_ID>", + "x-example": "<PROVIDER_ID>", "in": "path" }, { @@ -34541,612 +34448,559 @@ "schema": { "type": "object", "properties": { - "couponId": { + "name": { "type": "string", - "description": "ID of the coupon", + "description": "Provider name.", + "default": "", + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", "default": null, - "x-example": "<COUPON_ID>" + "x-example": false, + "x-nullable": true + }, + "apiKey": { + "type": "string", + "description": "Vonage API key.", + "default": "", + "x-example": "<API_KEY>" + }, + "apiSecret": { + "type": "string", + "description": "Vonage API secret.", + "default": "", + "x-example": "<API_SECRET>" + }, + "from": { + "type": "string", + "description": "Sender number.", + "default": "", + "x-example": "<FROM>" } - }, - "required": [ - "couponId" - ] + } } } ] } }, - "\/organizations\/{organizationId}\/credits\/available": { + "\/messaging\/providers\/{providerId}": { "get": { - "summary": "Get available credits", - "operationId": "organizationsGetAvailableCredits", + "summary": "Get provider", + "operationId": "messagingGetProvider", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "organizations" + "messaging" ], - "description": "Get total available valid credits for an organization.", + "description": "Get a provider by its unique ID.\n", "responses": { "200": { - "description": "CreditAvailable", + "description": "Provider", "schema": { - "$ref": "#\/definitions\/creditAvailable" + "$ref": "#\/definitions\/provider" } } }, "deprecated": false, "x-appwrite": { - "method": "getAvailableCredits", - "group": null, - "weight": 711, + "method": "getProvider", + "group": "providers", + "weight": 188, "cookies": false, "type": "", - "demo": "organizations\/get-available-credits.md", + "demo": "messaging\/get-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.read", + "scope": "providers.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-available-credits.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/get-provider.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", + "name": "providerId", + "description": "Provider ID.", "required": true, "type": "string", - "x-example": "<ORGANIZATION_ID>", + "x-example": "<PROVIDER_ID>", "in": "path" } ] - } - }, - "\/organizations\/{organizationId}\/credits\/{creditId}": { - "get": { - "summary": "Get credit details", - "operationId": "organizationsGetCredit", - "consumes": [], - "produces": [ + }, + "delete": { + "summary": "Delete provider", + "operationId": "messagingDeleteProvider", + "consumes": [ "application\/json" ], + "produces": [], "tags": [ - "organizations" + "messaging" ], - "description": "Get credit details.", + "description": "Delete a provider by its unique ID.", "responses": { - "200": { - "description": "Credit", - "schema": { - "$ref": "#\/definitions\/credit" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "getCredit", - "group": null, - "weight": 710, + "method": "deleteProvider", + "group": "providers", + "weight": 200, "cookies": false, "type": "", - "demo": "organizations\/get-credit.md", + "demo": "messaging\/delete-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.read", + "scope": "providers.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-credit.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-provider.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "type": "string", - "x-example": "<ORGANIZATION_ID>", - "in": "path" - }, - { - "name": "creditId", - "description": "Credit Unique ID", + "name": "providerId", + "description": "Provider ID.", "required": true, "type": "string", - "x-example": "<CREDIT_ID>", + "x-example": "<PROVIDER_ID>", "in": "path" } ] } }, - "\/organizations\/{organizationId}\/estimations\/delete-organization": { - "patch": { - "summary": "Estimate delete team", - "operationId": "organizationsEstimationDeleteOrganization", - "consumes": [ - "application\/json" - ], + "\/messaging\/providers\/{providerId}\/logs": { + "get": { + "summary": "List provider logs", + "operationId": "messagingListProviderLogs", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "organizations" + "messaging" ], - "description": "Get estimation for deleting an organization.", + "description": "Get the provider activity logs listed by its unique ID.", "responses": { "200": { - "description": "EstimationDeleteOrganization", + "description": "Logs List", "schema": { - "$ref": "#\/definitions\/estimationDeleteOrganization" + "$ref": "#\/definitions\/logList" } } }, "deprecated": false, "x-appwrite": { - "method": "estimationDeleteOrganization", - "group": null, - "weight": 726, + "method": "listProviderLogs", + "group": "providers", + "weight": 187, "cookies": false, "type": "", - "demo": "organizations\/estimation-delete-organization.md", - "rate-limit": 10, + "demo": "messaging\/list-provider-logs.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "organizations.write", + "scope": "providers.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/estimation-delete-organization.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-provider-logs.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Team ID.", + "name": "providerId", + "description": "Provider ID.", "required": true, "type": "string", - "x-example": "<ORGANIZATION_ID>", + "x-example": "<PROVIDER_ID>", "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). Only supported methods are limit and offset", + "required": false, + "type": "array", + "collectionFormat": "multi", + "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, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" } ] } }, - "\/organizations\/{organizationId}\/estimations\/update-plan": { - "patch": { - "summary": "Estimate for update plan", - "operationId": "organizationsEstimationUpdatePlan", - "consumes": [ - "application\/json" - ], + "\/messaging\/subscribers\/{subscriberId}\/logs": { + "get": { + "summary": "List subscriber logs", + "operationId": "messagingListSubscriberLogs", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "organizations" + "messaging" ], - "description": "Get estimation for updating the organization plan.", + "description": "Get the subscriber activity logs listed by its unique ID.", "responses": { "200": { - "description": "EstimationUpdatePlan", + "description": "Logs List", "schema": { - "$ref": "#\/definitions\/estimationUpdatePlan" + "$ref": "#\/definitions\/logList" } } }, "deprecated": false, "x-appwrite": { - "method": "estimationUpdatePlan", - "group": null, - "weight": 724, + "method": "listSubscriberLogs", + "group": "subscribers", + "weight": 209, "cookies": false, "type": "", - "demo": "organizations\/estimation-update-plan.md", - "rate-limit": 10, + "demo": "messaging\/list-subscriber-logs.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "subscribers.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/estimation-update-plan.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-subscriber-logs.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", + "name": "subscriberId", + "description": "Subscriber ID.", "required": true, "type": "string", - "x-example": "<ORGANIZATION_ID>", + "x-example": "<SUBSCRIBER_ID>", "in": "path" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "billingPlan": { - "type": "string", - "description": "Organization billing plan chosen", - "default": null, - "x-example": "tier-0" - }, - "invites": { - "type": "array", - "description": "Additional member invites", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "couponId": { - "type": "string", - "description": "Coupon id", - "default": null, - "x-example": "<COUPON_ID>", - "x-nullable": true - } - }, - "required": [ - "billingPlan" - ] - } + "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, + "type": "array", + "collectionFormat": "multi", + "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, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" } ] } }, - "\/organizations\/{organizationId}\/feedbacks\/downgrade": { - "post": { - "summary": "Create downgrade feedback", - "operationId": "organizationsCreateDowngradeFeedback", - "consumes": [ - "application\/json" - ], + "\/messaging\/topics": { + "get": { + "summary": "List topics", + "operationId": "messagingListTopics", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "organizations" + "messaging" ], - "description": "Submit feedback about downgrading from a paid plan to a lower tier. This helps the team understand user experience and improve the platform.\n", + "description": "Get a list of all topics from the current Appwrite project.", "responses": { - "201": { - "description": "Downgrade Feedback", + "200": { + "description": "Topic list", "schema": { - "$ref": "#\/definitions\/downgradeFeedback" + "$ref": "#\/definitions\/topicList" } } }, "deprecated": false, "x-appwrite": { - "method": "createDowngradeFeedback", - "group": null, - "weight": 727, + "method": "listTopics", + "group": "topics", + "weight": 202, "cookies": false, "type": "", - "demo": "organizations\/create-downgrade-feedback.md", + "demo": "messaging\/list-topics.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "topics.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/create-downgrade-feedback.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-topics.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization Unique ID", - "required": true, + "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, description, emailTotal, smsTotal, pushTotal", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, "type": "string", - "x-example": "<ORGANIZATION_ID>", - "in": "path" + "x-example": "<SEARCH>", + "default": "", + "in": "query" }, { - "name": "payload", - "in": "body", + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" + } + ] + }, + "post": { + "summary": "Create topic", + "operationId": "messagingCreateTopic", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "messaging" + ], + "description": "Create a new topic.", + "responses": { + "201": { + "description": "Topic", "schema": { - "type": "object", - "properties": { - "reason": { - "type": "string", - "description": "Feedback reason", - "default": null, - "x-example": "<REASON>" - }, - "message": { - "type": "string", - "description": "Feedback message", - "default": null, - "x-example": "<MESSAGE>" - }, - "fromPlanId": { - "type": "string", - "description": "Plan downgrading from", - "default": null, - "x-example": "<FROM_PLAN_ID>" - }, - "toPlanId": { - "type": "string", - "description": "Plan downgrading to", - "default": null, - "x-example": "<TO_PLAN_ID>" - } - }, - "required": [ - "reason", - "message", - "fromPlanId", - "toPlanId" - ] - } - } - ] - } - }, - "\/organizations\/{organizationId}\/invoices": { - "get": { - "summary": "List invoices", - "operationId": "organizationsListInvoices", - "consumes": [], - "produces": [ - "application\/json" - ], - "tags": [ - "organizations" - ], - "description": "List all invoices for an organization.", - "responses": { - "200": { - "description": "Billing invoices list", - "schema": { - "$ref": "#\/definitions\/invoiceList" + "$ref": "#\/definitions\/topic" } } }, "deprecated": false, "x-appwrite": { - "method": "listInvoices", - "group": null, - "weight": 715, + "method": "createTopic", + "group": "topics", + "weight": 201, "cookies": false, "type": "", - "demo": "organizations\/list-invoices.md", + "demo": "messaging\/create-topic.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.read", + "scope": "topics.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/list-invoices.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-topic.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "type": "string", - "x-example": "<ORGANIZATION_ID>", - "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\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: teamId, aggregationId, amount, currency, from, to, dueAt, attempts, status, grossAmount", - "required": false, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" - } - ] - } - }, - "\/organizations\/{organizationId}\/invoices\/{invoiceId}": { - "get": { - "summary": "Get invoice", - "operationId": "organizationsGetInvoice", - "consumes": [], - "produces": [ - "application\/json" - ], - "tags": [ - "organizations" - ], - "description": "Get an invoice by its unique ID.", - "responses": { - "200": { - "description": "Invoice", + "name": "payload", + "in": "body", "schema": { - "$ref": "#\/definitions\/invoice" + "type": "object", + "properties": { + "topicId": { + "type": "string", + "description": "Topic ID. Choose a custom Topic ID or a new Topic ID.", + "default": null, + "x-example": "<TOPIC_ID>" + }, + "name": { + "type": "string", + "description": "Topic Name.", + "default": null, + "x-example": "<NAME>" + }, + "subscribe": { + "type": "array", + "description": "An array of role strings with subscribe permission. By default all users are granted with any subscribe permission. [learn more about roles](https:\/\/appwrite.io\/docs\/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.", + "default": [ + "users" + ], + "x-example": "[\"any\"]", + "items": { + "type": "string" + } + } + }, + "required": [ + "topicId", + "name" + ] } } - }, - "deprecated": false, - "x-appwrite": { - "method": "getInvoice", - "group": null, - "weight": 714, - "cookies": false, - "type": "", - "demo": "organizations\/get-invoice.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "billing.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-invoice.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "type": "string", - "x-example": "<ORGANIZATION_ID>", - "in": "path" - }, - { - "name": "invoiceId", - "description": "Invoice unique ID", - "required": true, - "type": "string", - "x-example": "<INVOICE_ID>", - "in": "path" - } ] } }, - "\/organizations\/{organizationId}\/invoices\/{invoiceId}\/download": { + "\/messaging\/topics\/{topicId}": { "get": { - "summary": "Download invoice in PDF", - "operationId": "organizationsGetInvoiceDownload", + "summary": "Get topic", + "operationId": "messagingGetTopic", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "organizations" + "messaging" ], - "description": "Download invoice in PDF", + "description": "Get a topic by its unique ID.\n", "responses": { "200": { - "description": "paymentMethod", + "description": "Topic", "schema": { - "$ref": "#\/definitions\/paymentMethod" + "$ref": "#\/definitions\/topic" } } }, "deprecated": false, "x-appwrite": { - "method": "getInvoiceDownload", - "group": null, - "weight": 718, + "method": "getTopic", + "group": "topics", + "weight": 204, "cookies": false, "type": "", - "demo": "organizations\/get-invoice-download.md", + "demo": "messaging\/get-topic.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.read", + "scope": "topics.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-invoice-download.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/get-topic.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "type": "string", - "x-example": "<ORGANIZATION_ID>", - "in": "path" - }, - { - "name": "invoiceId", - "description": "Invoice unique ID", + "name": "topicId", + "description": "Topic ID.", "required": true, "type": "string", - "x-example": "<INVOICE_ID>", + "x-example": "<TOPIC_ID>", "in": "path" } ] - } - }, - "\/organizations\/{organizationId}\/invoices\/{invoiceId}\/payments": { - "post": { - "summary": "Initiate payment for failed invoice to pay live from console", - "operationId": "organizationsCreateInvoicePayment", + }, + "patch": { + "summary": "Update topic", + "operationId": "messagingUpdateTopic", "consumes": [ "application\/json" ], @@ -35154,59 +35008,53 @@ "application\/json" ], "tags": [ - "organizations" + "messaging" ], - "description": "Initiate payment for failed invoice to pay live from console", + "description": "Update a topic by its unique ID.\n", "responses": { "200": { - "description": "Invoice", + "description": "Topic", "schema": { - "$ref": "#\/definitions\/invoice" + "$ref": "#\/definitions\/topic" } } }, "deprecated": false, "x-appwrite": { - "method": "createInvoicePayment", - "group": null, - "weight": 719, + "method": "updateTopic", + "group": "topics", + "weight": 205, "cookies": false, "type": "", - "demo": "organizations\/create-invoice-payment.md", - "rate-limit": 10, - "rate-time": 86400, + "demo": "messaging\/update-topic.md", + "rate-limit": 0, + "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "topics.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/create-invoice-payment.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-topic.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "type": "string", - "x-example": "<ORGANIZATION_ID>", - "in": "path" - }, - { - "name": "invoiceId", - "description": "Invoice unique ID", + "name": "topicId", + "description": "Topic ID.", "required": true, "type": "string", - "x-example": "<INVOICE_ID>", + "x-example": "<TOPIC_ID>", "in": "path" }, { @@ -35215,212 +35063,246 @@ "schema": { "type": "object", "properties": { - "paymentMethodId": { + "name": { "type": "string", - "description": "Payment method ID", + "description": "Topic Name.", "default": null, - "x-example": "<PAYMENT_METHOD_ID>" + "x-example": "<NAME>", + "x-nullable": true + }, + "subscribe": { + "type": "array", + "description": "An array of role strings with subscribe permission. By default all users are granted with any subscribe permission. [learn more about roles](https:\/\/appwrite.io\/docs\/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.", + "default": null, + "x-example": "[\"any\"]", + "x-nullable": true, + "items": { + "type": "string" + } } - }, - "required": [ - "paymentMethodId" - ] + } } } ] - } - }, - "\/organizations\/{organizationId}\/invoices\/{invoiceId}\/status": { - "patch": { - "summary": "Validate the payment for an invoice and update status", - "operationId": "organizationsValidateInvoice", + }, + "delete": { + "summary": "Delete topic", + "operationId": "messagingDeleteTopic", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ - "organizations" + "messaging" ], - "description": "Validates the payment linked with the invoice and updates the invoice status if the payment status is changed.", + "description": "Delete a topic by its unique ID.", "responses": { - "200": { - "description": "Invoice", - "schema": { - "$ref": "#\/definitions\/invoice" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "validateInvoice", - "group": null, - "weight": 716, + "method": "deleteTopic", + "group": "topics", + "weight": 206, "cookies": false, "type": "", - "demo": "organizations\/validate-invoice.md", + "demo": "messaging\/delete-topic.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "topics.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/update-invoice-status.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-topic.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "type": "string", - "x-example": "<ORGANIZATION_ID>", - "in": "path" - }, - { - "name": "invoiceId", - "description": "Invoice unique ID", + "name": "topicId", + "description": "Topic ID.", "required": true, "type": "string", - "x-example": "<INVOICE_ID>", + "x-example": "<TOPIC_ID>", "in": "path" } ] } }, - "\/organizations\/{organizationId}\/invoices\/{invoiceId}\/view": { + "\/messaging\/topics\/{topicId}\/logs": { "get": { - "summary": "View invoice in PDF", - "operationId": "organizationsGetInvoiceView", + "summary": "List topic logs", + "operationId": "messagingListTopicLogs", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "organizations" + "messaging" ], - "description": "View invoice in PDF", + "description": "Get the topic activity logs listed by its unique ID.", "responses": { "200": { - "description": "paymentMethod", + "description": "Logs List", "schema": { - "$ref": "#\/definitions\/paymentMethod" + "$ref": "#\/definitions\/logList" } } }, "deprecated": false, "x-appwrite": { - "method": "getInvoiceView", - "group": null, - "weight": 717, + "method": "listTopicLogs", + "group": "topics", + "weight": 203, "cookies": false, "type": "", - "demo": "organizations\/get-invoice-view.md", + "demo": "messaging\/list-topic-logs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.read", + "scope": "topics.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-invoice-view.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-topic-logs.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", + "name": "topicId", + "description": "Topic ID.", "required": true, "type": "string", - "x-example": "<ORGANIZATION_ID>", + "x-example": "<TOPIC_ID>", "in": "path" }, { - "name": "invoiceId", - "description": "Invoice unique ID", - "required": true, - "type": "string", - "x-example": "<INVOICE_ID>", - "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). Only supported methods are limit and offset", + "required": false, + "type": "array", + "collectionFormat": "multi", + "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, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" } ] } }, - "\/organizations\/{organizationId}\/keys": { + "\/messaging\/topics\/{topicId}\/subscribers": { "get": { - "summary": "List organization keys", - "operationId": "organizationsListKeys", + "summary": "List subscribers", + "operationId": "messagingListSubscribers", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "organizations" + "messaging" ], - "description": "Get a list of all API keys from the current organization. ", + "description": "Get a list of all subscribers from the current Appwrite project.", "responses": { "200": { - "description": "API Keys List", + "description": "Subscriber list", "schema": { - "$ref": "#\/definitions\/keyList" + "$ref": "#\/definitions\/subscriberList" } } }, "deprecated": false, "x-appwrite": { - "method": "listKeys", - "group": "keys", - "weight": 730, + "method": "listSubscribers", + "group": "subscribers", + "weight": 208, "cookies": false, "type": "", - "demo": "organizations\/list-keys.md", + "demo": "messaging\/list-subscribers.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "subscribers.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-subscribers.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization Unique ID", + "name": "topicId", + "description": "Topic ID. The topic ID subscribed to.", "required": true, "type": "string", - "x-example": "<ORGANIZATION_ID>", + "x-example": "<TOPIC_ID>", "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: targetId, topicId, userId, providerType", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "type": "string", + "x-example": "<SEARCH>", + "default": "", + "in": "query" + }, { "name": "total", "description": "When set to false, the total count returned will be 0 and will not be calculated.", @@ -35433,8 +35315,8 @@ ] }, "post": { - "summary": "Create organization key", - "operationId": "organizationsCreateKey", + "summary": "Create subscriber", + "operationId": "messagingCreateSubscriber", "consumes": [ "application\/json" ], @@ -35442,50 +35324,55 @@ "application\/json" ], "tags": [ - "organizations" + "messaging" ], - "description": "Create a new organization API key.", + "description": "Create a new subscriber.", "responses": { "201": { - "description": "Key", + "description": "Subscriber", "schema": { - "$ref": "#\/definitions\/key" + "$ref": "#\/definitions\/subscriber" } } }, "deprecated": false, "x-appwrite": { - "method": "createKey", - "group": "keys", - "weight": 728, + "method": "createSubscriber", + "group": "subscribers", + "weight": 207, "cookies": false, "type": "", - "demo": "organizations\/create-key.md", + "demo": "messaging\/create-subscriber.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": "subscribers.write", "platforms": [ + "server", + "client", "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-subscriber.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] - } + "Project": [], + "JWT": [], + "Key": [] + } ], "parameters": [ { - "name": "organizationId", - "description": "Organization Unique ID", + "name": "topicId", + "description": "Topic ID. The topic ID to subscribe to.", "required": true, "type": "string", - "x-example": "<ORGANIZATION_ID>", + "x-example": "<TOPIC_ID>", "in": "path" }, { @@ -35494,271 +35381,201 @@ "schema": { "type": "object", "properties": { - "name": { + "subscriberId": { "type": "string", - "description": "Key name. Max length: 128 chars.", - "default": null, - "x-example": "<NAME>" - }, - "scopes": { - "type": "array", - "description": "Key scopes list. Maximum of 100 scopes are allowed.", + "description": "Subscriber ID. Choose a custom Subscriber ID or a new Subscriber ID.", "default": null, - "x-example": null, - "items": { - "type": "string", - "enum": [ - "platforms.read", - "platforms.write", - "projects.read", - "projects.write", - "keys.read", - "keys.write", - "devKeys.read", - "devKeys.write", - "webhooks.read", - "webhooks.write", - "domains.read", - "domains.write" - ], - "x-enum-name": null, - "x-enum-keys": [] - } + "x-example": "<SUBSCRIBER_ID>" }, - "expire": { + "targetId": { "type": "string", - "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", + "description": "Target ID. The target ID to link to the specified Topic ID.", "default": null, - "x-example": null, - "x-nullable": true + "x-example": "<TARGET_ID>" } }, "required": [ - "name", - "scopes" + "subscriberId", + "targetId" ] } } ] } }, - "\/organizations\/{organizationId}\/keys\/{keyId}": { + "\/messaging\/topics\/{topicId}\/subscribers\/{subscriberId}": { "get": { - "summary": "Get organization key", - "operationId": "organizationsGetKey", + "summary": "Get subscriber", + "operationId": "messagingGetSubscriber", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "organizations" + "messaging" ], - "description": "Get a key by its unique ID. This endpoint returns details about a specific API key in your organization including it's scopes.", + "description": "Get a subscriber by its unique ID.\n", "responses": { "200": { - "description": "Key", + "description": "Subscriber", "schema": { - "$ref": "#\/definitions\/key" + "$ref": "#\/definitions\/subscriber" } } }, "deprecated": false, "x-appwrite": { - "method": "getKey", - "group": "keys", - "weight": 732, + "method": "getSubscriber", + "group": "subscribers", + "weight": 210, "cookies": false, "type": "", - "demo": "organizations\/get-key.md", + "demo": "messaging\/get-subscriber.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "subscribers.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/get-subscriber.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization Unique ID", + "name": "topicId", + "description": "Topic ID. The topic ID subscribed to.", "required": true, "type": "string", - "x-example": "<ORGANIZATION_ID>", + "x-example": "<TOPIC_ID>", "in": "path" }, { - "name": "keyId", - "description": "Key unique ID.", + "name": "subscriberId", + "description": "Subscriber ID.", "required": true, "type": "string", - "x-example": "<KEY_ID>", + "x-example": "<SUBSCRIBER_ID>", "in": "path" } ] }, - "put": { - "summary": "Update organization key", - "operationId": "organizationsUpdateKey", + "delete": { + "summary": "Delete subscriber", + "operationId": "messagingDeleteSubscriber", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ - "organizations" + "messaging" ], - "description": "Update a key by its unique ID. Use this endpoint to update the name, scopes, or expiration time of an API key.", + "description": "Delete a subscriber by its unique ID.", "responses": { - "200": { - "description": "Key", - "schema": { - "$ref": "#\/definitions\/key" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateKey", - "group": "keys", - "weight": 729, + "method": "deleteSubscriber", + "group": "subscribers", + "weight": 211, "cookies": false, "type": "", - "demo": "organizations\/update-key.md", + "demo": "messaging\/delete-subscriber.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": "subscribers.write", "platforms": [ + "server", + "client", "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-subscriber.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "JWT": [], + "Key": [] } ], "parameters": [ { - "name": "organizationId", - "description": "Organization Unique ID", + "name": "topicId", + "description": "Topic ID. The topic ID subscribed to.", "required": true, "type": "string", - "x-example": "<ORGANIZATION_ID>", + "x-example": "<TOPIC_ID>", "in": "path" }, { - "name": "keyId", - "description": "Key unique ID.", + "name": "subscriberId", + "description": "Subscriber ID.", "required": true, "type": "string", - "x-example": "<KEY_ID>", + "x-example": "<SUBSCRIBER_ID>", "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Key name. Max length: 128 chars.", - "default": null, - "x-example": "<NAME>" - }, - "scopes": { - "type": "array", - "description": "Key scopes list. Maximum of 100 scopes are allowed.", - "default": null, - "x-example": null, - "items": { - "type": "string", - "enum": [ - "platforms.read", - "platforms.write", - "projects.read", - "projects.write", - "keys.read", - "keys.write", - "devKeys.read", - "devKeys.write", - "webhooks.read", - "webhooks.write", - "domains.read", - "domains.write" - ], - "x-enum-name": null, - "x-enum-keys": [] - } - }, - "expire": { - "type": "string", - "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", - "default": null, - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "name", - "scopes" - ] - } } ] - }, - "delete": { - "summary": "Delete organization key", - "operationId": "organizationsDeleteKey", - "consumes": [ - "application\/json" - ], + } + }, + "\/migrations": { + "get": { + "summary": "List migrations", + "operationId": "migrationsList", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "organizations" + "migrations" ], - "description": "Delete a key by its unique ID. Once deleted, the key can no longer be used to authenticate API calls.", + "description": "List all migrations in the current project. This endpoint returns a list of all migrations including their status, progress, and any errors that occurred during the migration process.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Migrations List", + "schema": { + "$ref": "#\/definitions\/migrationList" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteKey", - "group": "keys", - "weight": 731, + "method": "list", + "group": null, + "weight": 167, "cookies": false, "type": "", - "demo": "organizations\/delete-key.md", + "demo": "migrations\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": "migrations.read", "platforms": [ "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/list-migrations.md", "auth": { "Project": [] } @@ -35770,28 +35587,42 @@ ], "parameters": [ { - "name": "organizationId", - "description": "Organization Unique ID", - "required": true, - "type": "string", - "x-example": "<ORGANIZATION_ID>", - "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\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: status, stage, source, destination, resources, resourceId, resourceType, statusCounters, resourceData, errors", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" }, { - "name": "keyId", - "description": "Key unique ID.", - "required": true, + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, "type": "string", - "x-example": "<KEY_ID>", - "in": "path" + "x-example": "<SEARCH>", + "default": "", + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" } ] } }, - "\/organizations\/{organizationId}\/payment-method": { - "patch": { - "summary": "Set team's payment method", - "operationId": "organizationsSetDefaultPaymentMethod", + "\/migrations\/appwrite": { + "post": { + "summary": "Create Appwrite migration", + "operationId": "migrationsCreateAppwriteMigration", "consumes": [ "application\/json" ], @@ -35799,35 +35630,35 @@ "application\/json" ], "tags": [ - "organizations" + "migrations" ], - "description": "Set a organization's default payment method.", + "description": "Migrate data from another Appwrite project to your current project. This endpoint allows you to migrate resources like databases, collections, documents, users, and files from an existing Appwrite project. ", "responses": { - "200": { - "description": "Organization", + "202": { + "description": "Migration", "schema": { - "$ref": "#\/definitions\/organization" + "$ref": "#\/definitions\/migration" } } }, "deprecated": false, "x-appwrite": { - "method": "setDefaultPaymentMethod", + "method": "createAppwriteMigration", "group": null, - "weight": 704, + "weight": 161, "cookies": false, "type": "", - "demo": "organizations\/set-default-payment-method.md", + "demo": "migrations\/create-appwrite-migration.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "migrations.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/set-default-payment-method.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-appwrite.md", "auth": { "Project": [] } @@ -35838,73 +35669,115 @@ } ], "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "type": "string", - "x-example": "<ORGANIZATION_ID>", - "in": "path" - }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "paymentMethodId": { + "resources": { + "type": "array", + "description": "List of resources to migrate", + "default": null, + "x-example": null, + "items": { + "type": "string", + "enum": [ + "user", + "team", + "membership", + "database", + "table", + "column", + "index", + "row", + "document", + "attribute", + "collection", + "documentsdb", + "vectordb", + "bucket", + "file", + "function", + "deployment", + "environment-variable", + "site", + "site-deployment", + "site-variable" + ], + "x-enum-name": "AppwriteMigrationResource", + "x-enum-keys": [] + } + }, + "endpoint": { "type": "string", - "description": "Unique ID of payment method", + "description": "Source Appwrite endpoint", "default": null, - "x-example": "<PAYMENT_METHOD_ID>" + "x-example": "https:\/\/example.com", + "format": "url" + }, + "projectId": { + "type": "string", + "description": "Source Project ID", + "default": null, + "x-example": "<PROJECT_ID>" + }, + "apiKey": { + "type": "string", + "description": "Source API Key", + "default": null, + "x-example": "<API_KEY>" } }, "required": [ - "paymentMethodId" + "resources", + "endpoint", + "projectId", + "apiKey" ] } } ] - }, - "delete": { - "summary": "Delete team's default payment method", - "operationId": "organizationsDeleteDefaultPaymentMethod", - "consumes": [ - "application\/json" - ], + } + }, + "\/migrations\/appwrite\/report": { + "get": { + "summary": "Get Appwrite migration report", + "operationId": "migrationsGetAppwriteReport", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "organizations" + "migrations" ], - "description": "Delete the default payment method for an organization.", + "description": "Generate a report of the data in an Appwrite project before migrating. This endpoint analyzes the source project and returns information about the resources that can be migrated.", "responses": { "200": { - "description": "Organization", + "description": "Migration Report", "schema": { - "$ref": "#\/definitions\/organization" + "$ref": "#\/definitions\/migrationReport" } } }, "deprecated": false, "x-appwrite": { - "method": "deleteDefaultPaymentMethod", + "method": "getAppwriteReport", "group": null, - "weight": 706, + "weight": 169, "cookies": false, "type": "", - "demo": "organizations\/delete-default-payment-method.md", + "demo": "migrations\/get-appwrite-report.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "migrations.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/delete-default-payment-method.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-appwrite-report.md", "auth": { "Project": [] } @@ -35916,20 +35789,73 @@ ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", + "name": "resources", + "description": "List of resources to migrate", + "required": true, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string", + "enum": [ + "user", + "team", + "membership", + "database", + "table", + "column", + "index", + "row", + "document", + "attribute", + "collection", + "documentsdb", + "vectordb", + "bucket", + "file", + "function", + "deployment", + "environment-variable", + "site", + "site-deployment", + "site-variable" + ], + "x-enum-name": "AppwriteMigrationResource", + "x-enum-keys": [] + }, + "in": "query" + }, + { + "name": "endpoint", + "description": "Source's Appwrite Endpoint", "required": true, "type": "string", - "x-example": "<ORGANIZATION_ID>", - "in": "path" + "format": "url", + "x-example": "https:\/\/example.com", + "in": "query" + }, + { + "name": "projectID", + "description": "Source's Project ID", + "required": true, + "type": "string", + "x-example": "<PROJECT_ID>", + "in": "query" + }, + { + "name": "key", + "description": "Source's API Key", + "required": true, + "type": "string", + "x-example": "<KEY>", + "in": "query" } ] } }, - "\/organizations\/{organizationId}\/payment-method\/backup": { - "patch": { - "summary": "Set team's backup payment method", - "operationId": "organizationsSetBackupPaymentMethod", + "\/migrations\/csv\/exports": { + "post": { + "summary": "Export documents to CSV", + "operationId": "migrationsCreateCSVExport", "consumes": [ "application\/json" ], @@ -35937,35 +35863,35 @@ "application\/json" ], "tags": [ - "organizations" + "migrations" ], - "description": "Set an organization's backup payment method.\n", + "description": "Export documents to a CSV file from your Appwrite database. This endpoint allows you to export documents to a CSV file stored in a secure internal bucket. You'll receive an email with a download link when the export is complete.", "responses": { - "200": { - "description": "Organization", + "202": { + "description": "Migration", "schema": { - "$ref": "#\/definitions\/organization" + "$ref": "#\/definitions\/migration" } } }, "deprecated": false, "x-appwrite": { - "method": "setBackupPaymentMethod", + "method": "createCSVExport", "group": null, - "weight": 705, + "weight": 166, "cookies": false, "type": "", - "demo": "organizations\/set-backup-payment-method.md", + "demo": "migrations\/create-csv-export.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "migrations.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/set-backup-payment-method.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-csv-export.md", "auth": { "Project": [] } @@ -35976,73 +35902,122 @@ } ], "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "type": "string", - "x-example": "<ORGANIZATION_ID>", - "in": "path" - }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "paymentMethodId": { + "resourceId": { "type": "string", - "description": "Unique ID of payment method", + "description": "Composite ID in the format {databaseId:collectionId}, identifying a collection within a database to export.", "default": null, - "x-example": "<PAYMENT_METHOD_ID>" - } - }, - "required": [ - "paymentMethodId" - ] - } - } - ] - }, - "delete": { - "summary": "Delete team's backup payment method", - "operationId": "organizationsDeleteBackupPaymentMethod", - "consumes": [ - "application\/json" - ], - "produces": [ - "application\/json" - ], - "tags": [ - "organizations" - ], - "description": "Delete a backup payment method for an organization.", - "responses": { - "200": { - "description": "Organization", - "schema": { - "$ref": "#\/definitions\/organization" - } + "x-example": "<ID1:ID2>" + }, + "filename": { + "type": "string", + "description": "The name of the file to be created for the export, excluding the .csv extension.", + "default": null, + "x-example": "<FILENAME>" + }, + "columns": { + "type": "array", + "description": "List of attributes to export. If empty, all attributes will be exported. You can use the `*` wildcard to export all attributes from the collection.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "queries": { + "type": "array", + "description": "Array of query strings generated using the Query class provided by the SDK to filter documents to export. [Learn more about queries](https:\/\/appwrite.io\/docs\/databases#querying-documents). Maximum of 100 queries are allowed, each 4096 characters long.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "delimiter": { + "type": "string", + "description": "The character that separates each column value. Default is comma.", + "default": ",", + "x-example": "<DELIMITER>" + }, + "enclosure": { + "type": "string", + "description": "The character that encloses each column value. Default is double quotes.", + "default": "\"", + "x-example": "<ENCLOSURE>" + }, + "escape": { + "type": "string", + "description": "The escape character for the enclosure character. Default is double quotes.", + "default": "\"", + "x-example": "<ESCAPE>" + }, + "header": { + "type": "boolean", + "description": "Whether to include the header row with column names. Default is true.", + "default": true, + "x-example": false + }, + "notify": { + "type": "boolean", + "description": "Set to true to receive an email when the export is complete. Default is true.", + "default": true, + "x-example": false + } + }, + "required": [ + "resourceId", + "filename" + ] + } + } + ] + } + }, + "\/migrations\/csv\/imports": { + "post": { + "summary": "Import documents from a CSV", + "operationId": "migrationsCreateCSVImport", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "migrations" + ], + "description": "Import documents from a CSV file into your Appwrite database. This endpoint allows you to import documents from a CSV file uploaded to Appwrite Storage bucket.", + "responses": { + "202": { + "description": "Migration", + "schema": { + "$ref": "#\/definitions\/migration" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteBackupPaymentMethod", + "method": "createCSVImport", "group": null, - "weight": 707, + "weight": 165, "cookies": false, "type": "", - "demo": "organizations\/delete-backup-payment-method.md", + "demo": "migrations\/create-csv-import.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "migrations.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/delete-backup-payment-method.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-csv-import.md", "auth": { "Project": [] } @@ -36054,54 +36029,86 @@ ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "type": "string", - "x-example": "<ORGANIZATION_ID>", - "in": "path" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "bucketId": { + "type": "string", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "default": null, + "x-example": "<BUCKET_ID>" + }, + "fileId": { + "type": "string", + "description": "File ID.", + "default": null, + "x-example": "<FILE_ID>" + }, + "resourceId": { + "type": "string", + "description": "Composite ID in the format {databaseId:collectionId}, identifying a collection within a database.", + "default": null, + "x-example": "<ID1:ID2>" + }, + "internalFile": { + "type": "boolean", + "description": "Is the file stored in an internal bucket?", + "default": false, + "x-example": false + } + }, + "required": [ + "bucketId", + "fileId", + "resourceId" + ] + } } ] } }, - "\/organizations\/{organizationId}\/payment-methods\/{paymentMethodId}": { - "get": { - "summary": "Get payment method", - "operationId": "organizationsGetPaymentMethod", - "consumes": [], + "\/migrations\/firebase": { + "post": { + "summary": "Create Firebase migration", + "operationId": "migrationsCreateFirebaseMigration", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "organizations" + "migrations" ], - "description": "Get an organization's payment method using it's payment method ID.", + "description": "Migrate data from a Firebase project to your Appwrite project. This endpoint allows you to migrate resources like authentication and other supported services from a Firebase project. ", "responses": { - "200": { - "description": "paymentMethod", + "202": { + "description": "Migration", "schema": { - "$ref": "#\/definitions\/paymentMethod" + "$ref": "#\/definitions\/migration" } } }, "deprecated": false, "x-appwrite": { - "method": "getPaymentMethod", + "method": "createFirebaseMigration", "group": null, - "weight": 703, + "weight": 162, "cookies": false, "type": "", - "demo": "organizations\/get-payment-method.md", + "demo": "migrations\/create-firebase-migration.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.read", + "scope": "migrations.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-payment-method.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-firebase.md", "auth": { "Project": [] } @@ -36113,62 +36120,88 @@ ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "type": "string", - "x-example": "<ORGANIZATION_ID>", - "in": "path" - }, - { - "name": "paymentMethodId", - "description": "Unique ID of payment method", - "required": true, - "type": "string", - "x-example": "<PAYMENT_METHOD_ID>", - "in": "path" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "resources": { + "type": "array", + "description": "List of resources to migrate", + "default": null, + "x-example": null, + "items": { + "type": "string", + "enum": [ + "user", + "database", + "table", + "column", + "row", + "document", + "attribute", + "collection", + "bucket", + "file" + ], + "x-enum-name": "FirebaseMigrationResource", + "x-enum-keys": [] + } + }, + "serviceAccount": { + "type": "string", + "description": "JSON of the Firebase service account credentials", + "default": null, + "x-example": "<SERVICE_ACCOUNT>" + } + }, + "required": [ + "resources", + "serviceAccount" + ] + } } ] } }, - "\/organizations\/{organizationId}\/plan": { + "\/migrations\/firebase\/report": { "get": { - "summary": "Get organization billing plan details", - "operationId": "organizationsGetPlan", + "summary": "Get Firebase migration report", + "operationId": "migrationsGetFirebaseReport", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "organizations" + "migrations" ], - "description": "Get the details of the current billing plan for an organization.", + "description": "Generate a report of the data in a Firebase project before migrating. This endpoint analyzes the source project and returns information about the resources that can be migrated.", "responses": { "200": { - "description": "billingPlan", + "description": "Migration Report", "schema": { - "$ref": "#\/definitions\/billingPlan" + "$ref": "#\/definitions\/migrationReport" } } }, "deprecated": false, "x-appwrite": { - "method": "getPlan", + "method": "getFirebaseReport", "group": null, - "weight": 694, + "weight": 170, "cookies": false, "type": "", - "demo": "organizations\/get-plan.md", + "demo": "migrations\/get-firebase-report.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "migrations.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-plan.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-firebase-report.md", "auth": { "Project": [] } @@ -36180,18 +36213,45 @@ ], "parameters": [ { - "name": "organizationId", - "description": "Organization Unique ID", + "name": "resources", + "description": "List of resources to migrate", + "required": true, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string", + "enum": [ + "user", + "database", + "table", + "column", + "row", + "document", + "attribute", + "collection", + "bucket", + "file" + ], + "x-enum-name": "FirebaseMigrationResource", + "x-enum-keys": [] + }, + "in": "query" + }, + { + "name": "serviceAccount", + "description": "JSON of the Firebase service account credentials", "required": true, "type": "string", - "x-example": "<ORGANIZATION_ID>", - "in": "path" + "x-example": "<SERVICE_ACCOUNT>", + "in": "query" } ] - }, - "patch": { - "summary": "Update organization billing plan", - "operationId": "organizationsUpdatePlan", + } + }, + "\/migrations\/nhost": { + "post": { + "summary": "Create NHost migration", + "operationId": "migrationsCreateNHostMigration", "consumes": [ "application\/json" ], @@ -36199,35 +36259,35 @@ "application\/json" ], "tags": [ - "organizations" + "migrations" ], - "description": "Update the billing plan for an organization.", + "description": "Migrate data from an NHost project to your Appwrite project. This endpoint allows you to migrate resources like authentication, databases, and other supported services from an NHost project. ", "responses": { - "200": { - "description": "Organization", + "202": { + "description": "Migration", "schema": { - "$ref": "#\/definitions\/organization" + "$ref": "#\/definitions\/migration" } } }, "deprecated": false, "x-appwrite": { - "method": "updatePlan", + "method": "createNHostMigration", "group": null, - "weight": 695, + "weight": 164, "cookies": false, "type": "", - "demo": "organizations\/update-plan.md", - "rate-limit": 10, + "demo": "migrations\/create-n-host-migration.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "migrations.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/update-plan.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-nhost.md", "auth": { "Project": [] } @@ -36238,178 +36298,132 @@ } ], "parameters": [ - { - "name": "organizationId", - "description": "Organization Unique ID", - "required": true, - "type": "string", - "x-example": "<ORGANIZATION_ID>", - "in": "path" - }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "billingPlan": { + "resources": { + "type": "array", + "description": "List of resources to migrate", + "default": null, + "x-example": null, + "items": { + "type": "string", + "enum": [ + "user", + "database", + "table", + "column", + "index", + "row", + "document", + "attribute", + "collection", + "bucket", + "file" + ], + "x-enum-name": "NHostMigrationResource", + "x-enum-keys": [] + } + }, + "subdomain": { "type": "string", - "description": "Organization billing plan chosen", + "description": "Source's Subdomain", "default": null, - "x-example": "tier-0" + "x-example": "<SUBDOMAIN>" }, - "paymentMethodId": { + "region": { "type": "string", - "description": "Payment method ID. Required for pro plans when trial is not available and user doesn't have default payment method set.", + "description": "Source's Region", "default": null, - "x-example": "<PAYMENT_METHOD_ID>", - "x-nullable": true + "x-example": "<REGION>" }, - "billingAddressId": { + "adminSecret": { "type": "string", - "description": "Unique ID of billing address", - "default": "", - "x-example": "<BILLING_ADDRESS_ID>" + "description": "Source's Admin Secret", + "default": null, + "x-example": "<ADMIN_SECRET>" }, - "invites": { - "type": "array", - "description": "Additional member invites", - "default": [], - "x-example": null, - "items": { - "type": "string" - } + "database": { + "type": "string", + "description": "Source's Database Name", + "default": null, + "x-example": "<DATABASE>" }, - "couponId": { + "username": { "type": "string", - "description": "Coupon id", + "description": "Source's Database Username", "default": null, - "x-example": "<COUPON_ID>", - "x-nullable": true + "x-example": "<USERNAME>" }, - "taxId": { + "password": { "type": "string", - "description": "Tax Id associated to billing.", + "description": "Source's Database Password", "default": null, - "x-example": "<TAX_ID>", - "x-nullable": true + "x-example": "<PASSWORD>" }, - "budget": { + "port": { "type": "integer", - "description": "Budget limit for additional usage set for the organization", - "default": null, - "x-example": 0, - "format": "int32", - "x-nullable": true + "description": "Source's Database Port", + "default": 5432, + "x-example": null, + "format": "int32" } }, "required": [ - "billingPlan" + "resources", + "subdomain", + "region", + "adminSecret", + "database", + "username", + "password" ] } } ] } }, - "\/organizations\/{organizationId}\/plan\/cancel": { - "patch": { - "summary": "Cancel organization plan change", - "operationId": "organizationsCancelDowngrade", - "consumes": [ - "application\/json" - ], - "produces": [ - "application\/json" - ], - "tags": [ - "organizations" - ], - "description": "Cancel the downgrade initiated for an organization.", - "responses": { - "200": { - "description": "Organization", - "schema": { - "$ref": "#\/definitions\/organization" - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "cancelDowngrade", - "group": null, - "weight": 696, - "cookies": false, - "type": "", - "demo": "organizations\/cancel-downgrade.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/cancel-downgrade.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "organizationId", - "description": "Organization Unique ID", - "required": true, - "type": "string", - "x-example": "<ORGANIZATION_ID>", - "in": "path" - } - ] - } - }, - "\/organizations\/{organizationId}\/regions": { + "\/migrations\/nhost\/report": { "get": { - "summary": "List Regions", - "operationId": "organizationsListRegions", + "summary": "Get NHost migration report", + "operationId": "migrationsGetNHostReport", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "organizations" + "migrations" ], - "description": "Get all available regions for an organization.", + "description": "Generate a detailed report of the data in an NHost project before migrating. This endpoint analyzes the source project and returns information about the resources that can be migrated. ", "responses": { "200": { - "description": "Regions list", + "description": "Migration Report", "schema": { - "$ref": "#\/definitions\/consoleRegionList" + "$ref": "#\/definitions\/migrationReport" } } }, "deprecated": false, "x-appwrite": { - "method": "listRegions", + "method": "getNHostReport", "group": null, - "weight": 723, + "weight": 172, "cookies": false, "type": "", - "demo": "organizations\/list-regions.md", + "demo": "migrations\/get-n-host-report.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.read", + "scope": "migrations.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/list-regions.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-nhost-report.md", "auth": { "Project": [] } @@ -36421,88 +36435,95 @@ ], "parameters": [ { - "name": "organizationId", - "description": "Team ID.", + "name": "resources", + "description": "List of resources to migrate.", "required": true, - "type": "string", - "x-example": "<ORGANIZATION_ID>", - "in": "path" - } - ] - } - }, - "\/organizations\/{organizationId}\/roles": { - "get": { - "summary": "Get Scopes", - "operationId": "organizationsGetScopes", - "consumes": [], - "produces": [ - "application\/json" - ], - "tags": [ - "organizations" - ], - "description": "Get Scopes", - "responses": { - "200": { - "description": "Roles", - "schema": { - "$ref": "#\/definitions\/roles" - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "getScopes", - "group": null, - "weight": 722, - "cookies": false, - "type": "", - "demo": "organizations\/get-scopes.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-scopes.md", - "auth": { - "Project": [] - } - }, - "security": [ + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string", + "enum": [ + "user", + "database", + "table", + "column", + "index", + "row", + "document", + "attribute", + "collection", + "bucket", + "file" + ], + "x-enum-name": "NHostMigrationResource", + "x-enum-keys": [] + }, + "in": "query" + }, { - "Project": [] - } - ], - "parameters": [ + "name": "subdomain", + "description": "Source's Subdomain.", + "required": true, + "type": "string", + "x-example": "<SUBDOMAIN>", + "in": "query" + }, { - "name": "organizationId", - "description": "Organization id", + "name": "region", + "description": "Source's Region.", "required": true, "type": "string", - "x-example": "<ORGANIZATION_ID>", - "in": "path" + "x-example": "<REGION>", + "in": "query" }, { - "name": "projectId", - "description": "Project id", - "required": false, + "name": "adminSecret", + "description": "Source's Admin Secret.", + "required": true, "type": "string", - "x-example": "<PROJECT_ID>", - "default": "", + "x-example": "<ADMIN_SECRET>", + "in": "query" + }, + { + "name": "database", + "description": "Source's Database Name.", + "required": true, + "type": "string", + "x-example": "<DATABASE>", + "in": "query" + }, + { + "name": "username", + "description": "Source's Database Username.", + "required": true, + "type": "string", + "x-example": "<USERNAME>", + "in": "query" + }, + { + "name": "password", + "description": "Source's Database Password.", + "required": true, + "type": "string", + "x-example": "<PASSWORD>", + "in": "query" + }, + { + "name": "port", + "description": "Source's Database Port.", + "required": false, + "type": "integer", + "format": "int32", + "default": 5432, "in": "query" } ] } }, - "\/organizations\/{organizationId}\/taxId": { - "patch": { - "summary": "Set team's tax Id", - "operationId": "organizationsSetBillingTaxId", + "\/migrations\/supabase": { + "post": { + "summary": "Create Supabase migration", + "operationId": "migrationsCreateSupabaseMigration", "consumes": [ "application\/json" ], @@ -36510,35 +36531,35 @@ "application\/json" ], "tags": [ - "organizations" + "migrations" ], - "description": "Set an organization's billing tax ID.", + "description": "Migrate data from a Supabase project to your Appwrite project. This endpoint allows you to migrate resources like authentication, databases, and other supported services from a Supabase project. ", "responses": { - "200": { - "description": "Organization", + "202": { + "description": "Migration", "schema": { - "$ref": "#\/definitions\/organization" + "$ref": "#\/definitions\/migration" } } }, "deprecated": false, "x-appwrite": { - "method": "setBillingTaxId", + "method": "createSupabaseMigration", "group": null, - "weight": 698, + "weight": 163, "cookies": false, "type": "", - "demo": "organizations\/set-billing-tax-id.md", + "demo": "migrations\/create-supabase-migration.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "billing.write", + "scope": "migrations.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/set-billing-tax-id.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-supabase.md", "auth": { "Project": [] } @@ -36549,73 +36570,126 @@ } ], "parameters": [ - { - "name": "organizationId", - "description": "Organization ID", - "required": true, - "type": "string", - "x-example": "<ORGANIZATION_ID>", - "in": "path" - }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "taxId": { + "resources": { + "type": "array", + "description": "List of resources to migrate", + "default": null, + "x-example": null, + "items": { + "type": "string", + "enum": [ + "user", + "database", + "table", + "column", + "index", + "row", + "document", + "attribute", + "collection", + "bucket", + "file" + ], + "x-enum-name": "SupabaseMigrationResource", + "x-enum-keys": [] + } + }, + "endpoint": { "type": "string", - "description": "Tax Id associated to billing.", + "description": "Source's Supabase Endpoint", "default": null, - "x-example": "<TAX_ID>" + "x-example": "https:\/\/example.com", + "format": "url" + }, + "apiKey": { + "type": "string", + "description": "Source's API Key", + "default": null, + "x-example": "<API_KEY>" + }, + "databaseHost": { + "type": "string", + "description": "Source's Database Host", + "default": null, + "x-example": "<DATABASE_HOST>" + }, + "username": { + "type": "string", + "description": "Source's Database Username", + "default": null, + "x-example": "<USERNAME>" + }, + "password": { + "type": "string", + "description": "Source's Database Password", + "default": null, + "x-example": "<PASSWORD>" + }, + "port": { + "type": "integer", + "description": "Source's Database Port", + "default": 5432, + "x-example": null, + "format": "int32" } }, "required": [ - "taxId" + "resources", + "endpoint", + "apiKey", + "databaseHost", + "username", + "password" ] } } ] } }, - "\/organizations\/{organizationId}\/usage": { + "\/migrations\/supabase\/report": { "get": { - "summary": "Get team's usage data", - "operationId": "organizationsGetUsage", + "summary": "Get Supabase migration report", + "operationId": "migrationsGetSupabaseReport", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "organizations" + "migrations" ], - "description": "Get the usage data for an organization.", + "description": "Generate a report of the data in a Supabase project before migrating. This endpoint analyzes the source project and returns information about the resources that can be migrated. ", "responses": { "200": { - "description": "UsageOrganization", + "description": "Migration Report", "schema": { - "$ref": "#\/definitions\/usageOrganization" + "$ref": "#\/definitions\/migrationReport" } } }, "deprecated": false, "x-appwrite": { - "method": "getUsage", + "method": "getSupabaseReport", "group": null, - "weight": 699, + "weight": 171, "cookies": false, "type": "", - "demo": "organizations\/get-usage.md", + "demo": "migrations\/get-supabase-report.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "migrations.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-usage.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/migration-supabase-report.md", "auth": { "Project": [] } @@ -36627,70 +36701,122 @@ ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", + "name": "resources", + "description": "List of resources to migrate", + "required": true, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string", + "enum": [ + "user", + "database", + "table", + "column", + "index", + "row", + "document", + "attribute", + "collection", + "bucket", + "file" + ], + "x-enum-name": "SupabaseMigrationResource", + "x-enum-keys": [] + }, + "in": "query" + }, + { + "name": "endpoint", + "description": "Source's Supabase Endpoint.", "required": true, "type": "string", - "x-example": "<ORGANIZATION_ID>", - "in": "path" + "format": "url", + "x-example": "https:\/\/example.com", + "in": "query" }, { - "name": "startDate", - "description": "Starting date for the usage", - "required": false, + "name": "apiKey", + "description": "Source's API Key.", + "required": true, "type": "string", + "x-example": "<API_KEY>", "in": "query" }, { - "name": "endDate", - "description": "End date for the usage", - "required": false, + "name": "databaseHost", + "description": "Source's Database Host.", + "required": true, + "type": "string", + "x-example": "<DATABASE_HOST>", + "in": "query" + }, + { + "name": "username", + "description": "Source's Database Username.", + "required": true, + "type": "string", + "x-example": "<USERNAME>", + "in": "query" + }, + { + "name": "password", + "description": "Source's Database Password.", + "required": true, "type": "string", + "x-example": "<PASSWORD>", + "in": "query" + }, + { + "name": "port", + "description": "Source's Database Port.", + "required": false, + "type": "integer", + "format": "int32", + "default": 5432, "in": "query" } ] } }, - "\/organizations\/{organizationId}\/validate": { - "patch": { - "summary": "Validate payment for the organization after creation or upgrade", - "operationId": "organizationsValidatePayment", - "consumes": [ - "application\/json" - ], + "\/migrations\/{migrationId}": { + "get": { + "summary": "Get migration", + "operationId": "migrationsGet", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "organizations" + "migrations" ], - "description": "Validate payment for team after creation or upgrade.", + "description": "Get a migration by its unique ID. This endpoint returns detailed information about a specific migration including its current status, progress, and any errors that occurred during the migration process. ", "responses": { "200": { - "description": "Organization", + "description": "Migration", "schema": { - "$ref": "#\/definitions\/organization" + "$ref": "#\/definitions\/migration" } } }, "deprecated": false, "x-appwrite": { - "method": "validatePayment", + "method": "get", "group": null, - "weight": 721, + "weight": 168, "cookies": false, "type": "", - "demo": "organizations\/validate-payment.md", + "demo": "migrations\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "migrations.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/validate-payment.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/get-migration.md", "auth": { "Project": [] } @@ -36702,72 +36828,54 @@ ], "parameters": [ { - "name": "organizationId", - "description": "Organization ID", + "name": "migrationId", + "description": "Migration unique ID.", "required": true, "type": "string", - "x-example": "<ORGANIZATION_ID>", + "x-example": "<MIGRATION_ID>", "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "invites": { - "type": "array", - "description": "Additional member invites", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - } - } - } } ] - } - }, - "\/project\/usage": { - "get": { - "summary": "Get project usage stats", - "operationId": "projectGetUsage", - "consumes": [], + }, + "patch": { + "summary": "Update retry migration", + "operationId": "migrationsRetry", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "project" + "migrations" ], - "description": "Get comprehensive usage statistics for your project. View metrics including network requests, bandwidth, storage, function executions, database usage, and user activity. Specify a time range with startDate and endDate, and optionally set the data granularity with period (1h or 1d). The response includes both total counts and detailed breakdowns by resource, along with historical data over the specified period.", + "description": "Retry a failed migration. This endpoint allows you to retry a migration that has previously failed.", "responses": { - "200": { - "description": "UsageProject", + "202": { + "description": "Migration", "schema": { - "$ref": "#\/definitions\/usageProject" + "$ref": "#\/definitions\/migration" } } }, "deprecated": false, "x-appwrite": { - "method": "getUsage", + "method": "retry", "group": null, - "weight": 556, + "weight": 173, "cookies": false, "type": "", - "demo": "project\/get-usage.md", + "demo": "migrations\/retry.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.read", + "scope": "migrations.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/project\/get-usage.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/retry-migration.md", "auth": { "Project": [] } @@ -36779,78 +36887,49 @@ ], "parameters": [ { - "name": "startDate", - "description": "Starting date for the usage", - "required": true, - "type": "string", - "in": "query" - }, - { - "name": "endDate", - "description": "End date for the usage", + "name": "migrationId", + "description": "Migration unique ID.", "required": true, "type": "string", - "in": "query" - }, - { - "name": "period", - "description": "Period used", - "required": false, - "type": "string", - "x-example": "1h", - "enum": [ - "1h", - "1d" - ], - "x-enum-name": "ProjectUsageRange", - "x-enum-keys": [ - "One Hour", - "One Day" - ], - "default": "1d", - "in": "query" + "x-example": "<MIGRATION_ID>", + "in": "path" } ] - } - }, - "\/project\/variables": { - "get": { - "summary": "List variables", - "operationId": "projectListVariables", - "consumes": [], - "produces": [ + }, + "delete": { + "summary": "Delete migration", + "operationId": "migrationsDelete", + "consumes": [ "application\/json" ], + "produces": [], "tags": [ - "project" + "migrations" ], - "description": "Get a list of all project variables. These variables will be accessible in all Appwrite Functions at runtime.", + "description": "Delete a migration by its unique ID. This endpoint allows you to remove a migration from your project's migration history. ", "responses": { - "200": { - "description": "Variables List", - "schema": { - "$ref": "#\/definitions\/variableList" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "listVariables", + "method": "delete", "group": null, - "weight": 102, + "weight": 174, "cookies": false, "type": "", - "demo": "project\/list-variables.md", + "demo": "migrations\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.read", + "scope": "migrations.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/project\/list-variables.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/migrations\/delete-migration.md", "auth": { "Project": [] } @@ -36859,47 +36938,57 @@ { "Project": [] } - ] - }, - "post": { - "summary": "Create variable", - "operationId": "projectCreateVariable", - "consumes": [ - "application\/json" ], + "parameters": [ + { + "name": "migrationId", + "description": "Migration ID.", + "required": true, + "type": "string", + "x-example": "<MIGRATION_ID>", + "in": "path" + } + ] + } + }, + "\/organizations": { + "get": { + "summary": "List Orgnizations", + "operationId": "organizationsList", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "project" + "organizations" ], - "description": "Create a new project variable. This variable will be accessible in all Appwrite Functions at runtime.", + "description": "Get a list of all the teams in which the current user is a member. You can use the parameters to filter your results.", "responses": { - "201": { - "description": "Variable", + "200": { + "description": "Organizations list", "schema": { - "$ref": "#\/definitions\/variable" + "$ref": "#\/definitions\/organizationList" } } }, "deprecated": false, "x-appwrite": { - "method": "createVariable", + "method": "list", "group": null, - "weight": 101, + "weight": 710, "cookies": false, "type": "", - "demo": "project\/create-variable.md", + "demo": "organizations\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "teams.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/project\/create-variable.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/list-teams.md", "auth": { "Project": [] } @@ -36911,77 +37000,74 @@ ], "parameters": [ { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Variable key. Max length: 255 chars.", - "default": null, - "x-example": "<KEY>" - }, - "value": { - "type": "string", - "description": "Variable value. Max length: 8192 chars.", - "default": null, - "x-example": "<VALUE>" - }, - "secret": { - "type": "boolean", - "description": "Secret variables can be updated or deleted, but only projects can read them during build and runtime.", - "default": true, - "x-example": false - } - }, - "required": [ - "key", - "value" - ] - } + "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, total, billingPlan, paymentMethodId, backupPaymentMethodId, platform", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "type": "string", + "x-example": "<SEARCH>", + "default": "", + "in": "query" } ] - } - }, - "\/project\/variables\/{variableId}": { - "get": { - "summary": "Get variable", - "operationId": "projectGetVariable", - "consumes": [], + }, + "post": { + "summary": "Create Organization", + "operationId": "organizationsCreate", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "project" + "organizations" ], - "description": "Get a project variable by its unique ID.", + "description": "Create a new organization.\n", "responses": { - "200": { - "description": "Variable", + "201": { + "description": "Organization, or PaymentAuthentication", "schema": { - "$ref": "#\/definitions\/variable" + "x-oneOf": [ + { + "$ref": "#\/definitions\/organization" + }, + { + "$ref": "#\/definitions\/paymentAuthentication" + } + ] } } }, "deprecated": false, "x-appwrite": { - "method": "getVariable", + "method": "create", "group": null, - "weight": 103, + "weight": 709, "cookies": false, "type": "", - "demo": "project\/get-variable.md", - "rate-limit": 0, + "demo": "organizations\/create.md", + "rate-limit": 10, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.read", + "scope": "teams.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/project\/get-variable.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team.md", "auth": { "Project": [] } @@ -36993,18 +37079,101 @@ ], "parameters": [ { - "name": "variableId", - "description": "Variable unique ID.", - "required": true, - "type": "string", - "x-example": "<VARIABLE_ID>", - "in": "path" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "organizationId": { + "type": "string", + "description": "Organization ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "default": null, + "x-example": "<ORGANIZATION_ID>" + }, + "name": { + "type": "string", + "description": "Organization name. Max length: 128 chars.", + "default": null, + "x-example": "<NAME>" + }, + "billingPlan": { + "type": "string", + "description": "Organization billing plan chosen", + "default": null, + "x-example": "tier-0" + }, + "paymentMethodId": { + "type": "string", + "description": "Payment method ID. Required for pro plans when trial is not available and user doesn't have default payment method set.", + "default": null, + "x-example": "<PAYMENT_METHOD_ID>", + "x-nullable": true + }, + "billingAddressId": { + "type": "string", + "description": "Unique ID of billing address", + "default": "", + "x-example": "<BILLING_ADDRESS_ID>", + "x-nullable": true + }, + "invites": { + "type": "array", + "description": "Additional member invites", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "couponId": { + "type": "string", + "description": "Coupon id", + "default": null, + "x-example": "<COUPON_ID>", + "x-nullable": true + }, + "taxId": { + "type": "string", + "description": "Tax Id associated to billing.", + "default": null, + "x-example": "<TAX_ID>", + "x-nullable": true + }, + "budget": { + "type": "integer", + "description": "Budget limit for additional usage set for the organization", + "default": null, + "x-example": 0, + "format": "int32", + "x-nullable": true + }, + "platform": { + "type": "string", + "description": "Platform type", + "default": "appwrite", + "x-example": "appwrite", + "enum": [ + "appwrite", + "imagine" + ], + "x-enum-name": null, + "x-enum-keys": [] + } + }, + "required": [ + "organizationId", + "name", + "billingPlan" + ] + } } ] - }, - "put": { - "summary": "Update variable", - "operationId": "projectUpdateVariable", + } + }, + "\/organizations\/estimations\/create-organization": { + "patch": { + "summary": "Estimate create Organization", + "operationId": "organizationsEstimationCreateOrganization", "consumes": [ "application\/json" ], @@ -37012,35 +37181,35 @@ "application\/json" ], "tags": [ - "project" + "organizations" ], - "description": "Update project variable by its unique ID. This variable will be accessible in all Appwrite Functions at runtime.", + "description": "Get estimation for creating an organization.", "responses": { "200": { - "description": "Variable", + "description": "Estimation", "schema": { - "$ref": "#\/definitions\/variable" + "$ref": "#\/definitions\/estimation" } } }, "deprecated": false, "x-appwrite": { - "method": "updateVariable", + "method": "estimationCreateOrganization", "group": null, - "weight": 104, + "weight": 743, "cookies": false, "type": "", - "demo": "project\/update-variable.md", - "rate-limit": 0, + "demo": "organizations\/estimation-create-organization.md", + "rate-limit": 10, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "teams.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/project\/update-variable.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/estimation-create-organization.md", "auth": { "Project": [] } @@ -37051,59 +37220,76 @@ } ], "parameters": [ - { - "name": "variableId", - "description": "Variable unique ID.", - "required": true, - "type": "string", - "x-example": "<VARIABLE_ID>", - "in": "path" - }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "key": { + "billingPlan": { "type": "string", - "description": "Variable key. Max length: 255 chars.", + "description": "Organization billing plan chosen", "default": null, - "x-example": "<KEY>" + "x-example": "tier-0" }, - "value": { + "paymentMethodId": { "type": "string", - "description": "Variable value. Max length: 8192 chars.", + "description": "Payment method ID. Required for pro plans when trial is not available and user doesn't have default payment method set.", "default": null, - "x-example": "<VALUE>", + "x-example": "<PAYMENT_METHOD_ID>", "x-nullable": true }, - "secret": { - "type": "boolean", - "description": "Secret variables can be updated or deleted, but only projects can read them during build and runtime.", + "invites": { + "type": "array", + "description": "Additional member invites", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "couponId": { + "type": "string", + "description": "Coupon id", "default": null, - "x-example": false, + "x-example": "<COUPON_ID>", "x-nullable": true + }, + "platform": { + "type": "string", + "description": "Platform type", + "default": "appwrite", + "x-example": "appwrite", + "enum": [ + "appwrite", + "imagine" + ], + "x-enum-name": null, + "x-enum-keys": [] } }, "required": [ - "key" + "billingPlan" ] } } ] - }, + } + }, + "\/organizations\/{organizationId}": { "delete": { - "summary": "Delete variable", - "operationId": "projectDeleteVariable", + "summary": "Delete team", + "operationId": "organizationsDelete", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ - "project" + "organizations" ], - "description": "Delete a project variable by its unique ID. ", + "description": "Delete an organization.", "responses": { "204": { "description": "No content" @@ -37111,22 +37297,22 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteVariable", + "method": "delete", "group": null, - "weight": 105, + "weight": 711, "cookies": false, "type": "", - "demo": "project\/delete-variable.md", + "demo": "organizations\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "organizations.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/project\/delete-variable.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team.md", "auth": { "Project": [] } @@ -37138,53 +37324,54 @@ ], "parameters": [ { - "name": "variableId", - "description": "Variable unique ID.", + "name": "organizationId", + "description": "Team ID.", "required": true, "type": "string", - "x-example": "<VARIABLE_ID>", + "x-example": "<ORGANIZATION_ID>", "in": "path" } ] } }, - "\/projects": { + "\/organizations\/{organizationId}\/aggregations": { "get": { - "summary": "List projects", - "operationId": "projectsList", + "summary": "List aggregations", + "operationId": "organizationsListAggregations", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "projects" + "organizations" ], - "description": "Get a list of all projects. You can use the query params to filter your results. ", + "description": "Get a list of all aggregations for an organization.", "responses": { "200": { - "description": "Projects List", + "description": "Aggregation team list", "schema": { - "$ref": "#\/definitions\/projectList" + "$ref": "#\/definitions\/aggregationTeamList" } } }, "deprecated": false, "x-appwrite": { - "method": "list", - "group": "projects", - "weight": 777, + "method": "listAggregations", + "group": null, + "weight": 726, "cookies": false, "type": "", - "demo": "projects\/list.md", + "demo": "organizations\/list-aggregations.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.read", + "scope": "teams.read", "platforms": [ "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/list-aggregations.md", "auth": { "Project": [] } @@ -37195,9 +37382,17 @@ } ], "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "type": "string", + "x-example": "<ORGANIZATION_ID>", + "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, teamId, labels, search", + "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, from, to", "required": false, "type": "array", "collectionFormat": "multi", @@ -37206,30 +37401,100 @@ }, "default": [], "in": "query" + } + ] + } + }, + "\/organizations\/{organizationId}\/aggregations\/{aggregationId}": { + "get": { + "summary": "Get aggregation", + "operationId": "organizationsGetAggregation", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "organizations" + ], + "description": "Get a specific aggregation using it's aggregation ID.", + "responses": { + "200": { + "description": "AggregationTeam", + "schema": { + "$ref": "#\/definitions\/aggregationTeam" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getAggregation", + "group": null, + "weight": 727, + "cookies": false, + "type": "", + "demo": "organizations\/get-aggregation.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-aggregation.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "type": "string", + "x-example": "<ORGANIZATION_ID>", + "in": "path" }, { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, + "name": "aggregationId", + "description": "Invoice unique ID", + "required": true, "type": "string", - "x-example": "<SEARCH>", - "default": "", + "x-example": "<AGGREGATION_ID>", + "in": "path" + }, + { + "name": "limit", + "description": "Maximum number of project aggregations to return in response. By default will return maximum 5 results. Maximum of 10 results allowed per request.", + "required": false, + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 5, "in": "query" }, { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "name": "offset", + "description": "Offset value. The default value is 0. Use this param to manage pagination.", "required": false, - "type": "boolean", - "x-example": false, - "default": true, + "type": "integer", + "format": "int32", + "default": 0, "in": "query" } ] - }, - "post": { - "summary": "Create project", - "operationId": "projectsCreate", + } + }, + "\/organizations\/{organizationId}\/billing-address": { + "patch": { + "summary": "Set team's billing address", + "operationId": "organizationsSetBillingAddress", "consumes": [ "application\/json" ], @@ -37237,35 +37502,35 @@ "application\/json" ], "tags": [ - "projects" + "organizations" ], - "description": "Create a new project. You can create a maximum of 100 projects per account. ", + "description": "Set a billing address for an organization.", "responses": { - "201": { - "description": "Project", + "200": { + "description": "Organization", "schema": { - "$ref": "#\/definitions\/project" + "$ref": "#\/definitions\/organization" } } }, "deprecated": false, "x-appwrite": { - "method": "create", - "group": "projects", - "weight": 775, + "method": "setBillingAddress", + "group": null, + "weight": 719, "cookies": false, "type": "", - "demo": "projects\/create.md", + "demo": "organizations\/set-billing-address.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "billing.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/create.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/set-billing-address.md", "auth": { "Project": [] } @@ -37276,150 +37541,70 @@ } ], "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "type": "string", + "x-example": "<ORGANIZATION_ID>", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "projectId": { - "type": "string", - "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, and hyphen. Can't start with a special char. Max length is 36 chars.", - "default": null, - "x-example": null - }, - "name": { - "type": "string", - "description": "Project name. Max length: 128 chars.", - "default": null, - "x-example": "<NAME>" - }, - "teamId": { + "billingAddressId": { "type": "string", - "description": "Team unique ID.", + "description": "Unique ID of billing address", "default": null, - "x-example": "<TEAM_ID>" - }, - "region": { - "type": "string", - "description": "Project Region.", - "default": "fra", - "x-example": "fra", - "enum": [ - "fra", - "nyc", - "syd", - "sfo", - "sgp", - "tor" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "description": { - "type": "string", - "description": "Project description. Max length: 256 chars.", - "default": "", - "x-example": "<DESCRIPTION>" - }, - "logo": { - "type": "string", - "description": "Project logo.", - "default": "", - "x-example": "<LOGO>" - }, - "url": { - "type": "string", - "description": "Project URL.", - "default": "", - "x-example": "https:\/\/example.com", - "format": "url" - }, - "legalName": { - "type": "string", - "description": "Project legal Name. Max length: 256 chars.", - "default": "", - "x-example": "<LEGAL_NAME>" - }, - "legalCountry": { - "type": "string", - "description": "Project legal Country. Max length: 256 chars.", - "default": "", - "x-example": "<LEGAL_COUNTRY>" - }, - "legalState": { - "type": "string", - "description": "Project legal State. Max length: 256 chars.", - "default": "", - "x-example": "<LEGAL_STATE>" - }, - "legalCity": { - "type": "string", - "description": "Project legal City. Max length: 256 chars.", - "default": "", - "x-example": "<LEGAL_CITY>" - }, - "legalAddress": { - "type": "string", - "description": "Project legal Address. Max length: 256 chars.", - "default": "", - "x-example": "<LEGAL_ADDRESS>" - }, - "legalTaxId": { - "type": "string", - "description": "Project legal Tax ID. Max length: 256 chars.", - "default": "", - "x-example": "<LEGAL_TAX_ID>" + "x-example": "<BILLING_ADDRESS_ID>" } }, "required": [ - "projectId", - "name", - "teamId" + "billingAddressId" ] } } ] - } - }, - "\/projects\/{projectId}": { - "get": { - "summary": "Get project", - "operationId": "projectsGet", - "consumes": [], + }, + "delete": { + "summary": "Delete team's billing address", + "operationId": "organizationsDeleteBillingAddress", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "projects" + "organizations" ], - "description": "Get a project by its unique ID. This endpoint allows you to retrieve the project's details, including its name, description, team, region, and other metadata. ", + "description": "Delete a team's billing address.", "responses": { - "200": { - "description": "Project", - "schema": { - "$ref": "#\/definitions\/project" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": "projects", - "weight": 57, + "method": "deleteBillingAddress", + "group": null, + "weight": 720, "cookies": false, "type": "", - "demo": "projects\/get.md", + "demo": "organizations\/delete-billing-address.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.read", + "scope": "billing.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/get.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/delete-billing-address.md", "auth": { "Project": [] } @@ -37431,54 +37616,54 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "type": "string", - "x-example": "<PROJECT_ID>", + "x-example": "<ORGANIZATION_ID>", "in": "path" } ] - }, - "patch": { - "summary": "Update project", - "operationId": "projectsUpdate", - "consumes": [ - "application\/json" - ], + } + }, + "\/organizations\/{organizationId}\/billing-addresses\/{billingAddressId}": { + "get": { + "summary": "Get billing address", + "operationId": "organizationsGetBillingAddress", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "projects" + "organizations" ], - "description": "Update a project by its unique ID.", + "description": "Get a billing address using it's ID.", "responses": { "200": { - "description": "Project", + "description": "BillingAddress", "schema": { - "$ref": "#\/definitions\/project" + "$ref": "#\/definitions\/billingAddress" } } }, "deprecated": false, "x-appwrite": { - "method": "update", - "group": "projects", - "weight": 776, + "method": "getBillingAddress", + "group": null, + "weight": 718, "cookies": false, "type": "", - "demo": "projects\/update.md", + "demo": "organizations\/get-billing-address.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "billing.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-billing-address.md", "auth": { "Project": [] } @@ -37490,147 +37675,28 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "type": "string", - "x-example": "<PROJECT_ID>", + "x-example": "<ORGANIZATION_ID>", "in": "path" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Project name. Max length: 128 chars.", - "default": null, - "x-example": "<NAME>" - }, - "description": { - "type": "string", - "description": "Project description. Max length: 256 chars.", - "default": "", - "x-example": "<DESCRIPTION>" - }, - "logo": { - "type": "string", - "description": "Project logo.", - "default": "", - "x-example": "<LOGO>" - }, - "url": { - "type": "string", - "description": "Project URL.", - "default": "", - "x-example": "https:\/\/example.com", - "format": "url" - }, - "legalName": { - "type": "string", - "description": "Project legal name. Max length: 256 chars.", - "default": "", - "x-example": "<LEGAL_NAME>" - }, - "legalCountry": { - "type": "string", - "description": "Project legal country. Max length: 256 chars.", - "default": "", - "x-example": "<LEGAL_COUNTRY>" - }, - "legalState": { - "type": "string", - "description": "Project legal state. Max length: 256 chars.", - "default": "", - "x-example": "<LEGAL_STATE>" - }, - "legalCity": { - "type": "string", - "description": "Project legal city. Max length: 256 chars.", - "default": "", - "x-example": "<LEGAL_CITY>" - }, - "legalAddress": { - "type": "string", - "description": "Project legal address. Max length: 256 chars.", - "default": "", - "x-example": "<LEGAL_ADDRESS>" - }, - "legalTaxId": { - "type": "string", - "description": "Project legal tax ID. Max length: 256 chars.", - "default": "", - "x-example": "<LEGAL_TAX_ID>" - } - }, - "required": [ - "name" - ] - } - } - ] - }, - "delete": { - "summary": "Delete project", - "operationId": "projectsDelete", - "consumes": [ - "application\/json" - ], - "produces": [], - "tags": [ - "projects" - ], - "description": "Delete a project by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "method": "delete", - "group": "projects", - "weight": 73, - "cookies": false, - "type": "", - "demo": "projects\/delete.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/delete.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "projectId", - "description": "Project unique ID.", + "name": "billingAddressId", + "description": "Unique ID of billing address", "required": true, "type": "string", - "x-example": "<PROJECT_ID>", + "x-example": "<BILLING_ADDRESS_ID>", "in": "path" } ] } }, - "\/projects\/{projectId}\/api": { + "\/organizations\/{organizationId}\/billing-email": { "patch": { - "summary": "Update API status", - "operationId": "projectsUpdateApiStatus", + "summary": "Set team's billing email", + "operationId": "organizationsSetBillingEmail", "consumes": [ "application\/json" ], @@ -37638,99 +37704,35 @@ "application\/json" ], "tags": [ - "projects" + "organizations" ], - "description": "Update the status of a specific API type. Use this endpoint to enable or disable API types such as REST, GraphQL and Realtime.", + "description": "Set the current billing email for the organization.", "responses": { "200": { - "description": "Project", + "description": "Organization", "schema": { - "$ref": "#\/definitions\/project" + "$ref": "#\/definitions\/organization" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateApiStatus", - "group": "projects", - "weight": 60, + "method": "setBillingEmail", + "group": null, + "weight": 738, "cookies": false, "type": "", - "demo": "projects\/update-api-status.md", + "demo": "organizations\/set-billing-email.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "billing.write", "platforms": [ "console" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-api-status.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "projects.updateAPIStatus" - }, - "methods": [ - { - "name": "updateApiStatus", - "namespace": "projects", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "projectId", - "api", - "status" - ], - "required": [ - "projectId", - "api", - "status" - ], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/project" - } - ], - "description": "Update the status of a specific API type. Use this endpoint to enable or disable API types such as REST, GraphQL and Realtime.", - "demo": "projects\/update-api-status.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "projects.updateAPIStatus" - } - }, - { - "name": "updateAPIStatus", - "namespace": "projects", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "projectId", - "api", - "status" - ], - "required": [ - "projectId", - "api", - "status" - ], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/project" - } - ], - "description": "Update the status of a specific API type. Use this endpoint to enable or disable API types such as REST, GraphQL and Realtime.", - "demo": "projects\/update-api-status.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/set-billing-email.md", "auth": { "Project": [] } @@ -37742,11 +37744,11 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "type": "string", - "x-example": "<PROJECT_ID>", + "x-example": "<ORGANIZATION_ID>", "in": "path" }, { @@ -37755,39 +37757,26 @@ "schema": { "type": "object", "properties": { - "api": { + "billingEmail": { "type": "string", - "description": "API name.", - "default": null, - "x-example": "rest", - "enum": [ - "rest", - "graphql", - "realtime" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "status": { - "type": "boolean", - "description": "API status.", + "description": "Billing email for the organization.", "default": null, - "x-example": false + "x-example": "email@example.com", + "format": "email" } }, "required": [ - "api", - "status" + "billingEmail" ] } } ] } }, - "\/projects\/{projectId}\/api\/all": { + "\/organizations\/{organizationId}\/budget": { "patch": { - "summary": "Update all API status", - "operationId": "projectsUpdateApiStatusAll", + "summary": "Update organization budget", + "operationId": "organizationsUpdateBudget", "consumes": [ "application\/json" ], @@ -37795,95 +37784,35 @@ "application\/json" ], "tags": [ - "projects" + "organizations" ], - "description": "Update the status of all API types. Use this endpoint to enable or disable API types such as REST, GraphQL and Realtime all at once.", + "description": "Update the budget limit for an organization.", "responses": { "200": { - "description": "Project", + "description": "Organization", "schema": { - "$ref": "#\/definitions\/project" + "$ref": "#\/definitions\/organization" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateApiStatusAll", - "group": "projects", - "weight": 61, + "method": "updateBudget", + "group": null, + "weight": 715, "cookies": false, "type": "", - "demo": "projects\/update-api-status-all.md", + "demo": "organizations\/update-budget.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "billing.write", "platforms": [ "console" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-api-status-all.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "projects.updateAPIStatusAll" - }, - "methods": [ - { - "name": "updateApiStatusAll", - "namespace": "projects", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "projectId", - "status" - ], - "required": [ - "projectId", - "status" - ], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/project" - } - ], - "description": "Update the status of all API types. Use this endpoint to enable or disable API types such as REST, GraphQL and Realtime all at once.", - "demo": "projects\/update-api-status-all.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "projects.updateAPIStatusAll" - } - }, - { - "name": "updateAPIStatusAll", - "namespace": "projects", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "projectId", - "status" - ], - "required": [ - "projectId", - "status" - ], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/project" - } - ], - "description": "Update the status of all API types. Use this endpoint to enable or disable API types such as REST, GraphQL and Realtime all at once.", - "demo": "projects\/update-api-status-all.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/update-budget.md", "auth": { "Project": [] } @@ -37895,11 +37824,11 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization Unique ID", "required": true, "type": "string", - "x-example": "<PROJECT_ID>", + "x-example": "<ORGANIZATION_ID>", "in": "path" }, { @@ -37908,61 +37837,72 @@ "schema": { "type": "object", "properties": { - "status": { - "type": "boolean", - "description": "API status.", + "budget": { + "type": "integer", + "description": "Budget limit for additional usage set for the organization", "default": null, - "x-example": false + "x-example": 0, + "format": "int32", + "x-nullable": true + }, + "alerts": { + "type": "array", + "description": "Budget alert limit percentage", + "default": [ + 75 + ], + "x-example": null, + "items": { + "type": "integer" + } } }, "required": [ - "status" + "budget" ] } } ] } }, - "\/projects\/{projectId}\/auth\/duration": { - "patch": { - "summary": "Update project authentication duration", - "operationId": "projectsUpdateAuthDuration", - "consumes": [ - "application\/json" - ], + "\/organizations\/{organizationId}\/credits": { + "get": { + "summary": "List credits", + "operationId": "organizationsListCredits", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "projects" + "organizations" ], - "description": "Update how long sessions created within a project should stay active for.", + "description": "List all credits for an organization.\n", "responses": { "200": { - "description": "Project", + "description": "CreditList", "schema": { - "$ref": "#\/definitions\/project" + "$ref": "#\/definitions\/creditList" } } }, "deprecated": false, "x-appwrite": { - "method": "updateAuthDuration", - "group": "auth", - "weight": 66, + "method": "listCredits", + "group": null, + "weight": 730, "cookies": false, "type": "", - "demo": "projects\/update-auth-duration.md", + "demo": "organizations\/list-credits.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "billing.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-auth-duration.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/list-credits.md", "auth": { "Project": [] } @@ -37974,39 +37914,30 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "type": "string", - "x-example": "<PROJECT_ID>", + "x-example": "<ORGANIZATION_ID>", "in": "path" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "duration": { - "type": "integer", - "description": "Project session length in seconds. Max length: 31536000 seconds.", - "default": null, - "x-example": 0, - "format": "int32" - } - }, - "required": [ - "duration" - ] - } + "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, couponId, credits, expiration, status", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" } ] - } - }, - "\/projects\/{projectId}\/auth\/limit": { - "patch": { - "summary": "Update project users limit", - "operationId": "projectsUpdateAuthLimit", + }, + "post": { + "summary": "Add credits from coupon", + "operationId": "organizationsAddCredit", "consumes": [ "application\/json" ], @@ -38014,35 +37945,35 @@ "application\/json" ], "tags": [ - "projects" + "organizations" ], - "description": "Update the maximum number of users allowed in this project. Set to 0 for unlimited users. ", + "description": "Add credit to an organization using a coupon.", "responses": { - "200": { - "description": "Project", + "201": { + "description": "Credit", "schema": { - "$ref": "#\/definitions\/project" + "$ref": "#\/definitions\/credit" } } }, "deprecated": false, "x-appwrite": { - "method": "updateAuthLimit", - "group": "auth", - "weight": 65, + "method": "addCredit", + "group": null, + "weight": 731, "cookies": false, "type": "", - "demo": "projects\/update-auth-limit.md", - "rate-limit": 0, + "demo": "organizations\/add-credit.md", + "rate-limit": 10, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "billing.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-auth-limit.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/add-credit.md", "auth": { "Project": [] } @@ -38054,11 +37985,11 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "type": "string", - "x-example": "<PROJECT_ID>", + "x-example": "<ORGANIZATION_ID>", "in": "path" }, { @@ -38067,62 +37998,59 @@ "schema": { "type": "object", "properties": { - "limit": { - "type": "integer", - "description": "Set the max number of users allowed in this project. Use 0 for unlimited.", + "couponId": { + "type": "string", + "description": "ID of the coupon", "default": null, - "x-example": 0, - "format": "int32" + "x-example": "<COUPON_ID>" } }, "required": [ - "limit" + "couponId" ] } } ] } }, - "\/projects\/{projectId}\/auth\/max-sessions": { - "patch": { - "summary": "Update project user sessions limit", - "operationId": "projectsUpdateAuthSessionsLimit", - "consumes": [ - "application\/json" - ], + "\/organizations\/{organizationId}\/credits\/available": { + "get": { + "summary": "Get available credits", + "operationId": "organizationsGetAvailableCredits", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "projects" + "organizations" ], - "description": "Update the maximum number of sessions allowed per user within the project, if the limit is hit the oldest session will be deleted to make room for new sessions.", + "description": "Get total available valid credits for an organization.", "responses": { "200": { - "description": "Project", + "description": "CreditAvailable", "schema": { - "$ref": "#\/definitions\/project" + "$ref": "#\/definitions\/creditAvailable" } } }, "deprecated": false, "x-appwrite": { - "method": "updateAuthSessionsLimit", - "group": "auth", - "weight": 71, + "method": "getAvailableCredits", + "group": null, + "weight": 729, "cookies": false, "type": "", - "demo": "projects\/update-auth-sessions-limit.md", + "demo": "organizations\/get-available-credits.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "billing.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-auth-sessions-limit.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-available-credits.md", "auth": { "Project": [] } @@ -38134,75 +38062,54 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "type": "string", - "x-example": "<PROJECT_ID>", + "x-example": "<ORGANIZATION_ID>", "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "limit": { - "type": "integer", - "description": "Set the max number of users allowed in this project. Value allowed is between 1-100. Default is 10", - "default": null, - "x-example": 1, - "format": "int32" - } - }, - "required": [ - "limit" - ] - } } ] } }, - "\/projects\/{projectId}\/auth\/memberships-privacy": { - "patch": { - "summary": "Update project memberships privacy attributes", - "operationId": "projectsUpdateMembershipsPrivacy", - "consumes": [ - "application\/json" - ], + "\/organizations\/{organizationId}\/credits\/{creditId}": { + "get": { + "summary": "Get credit details", + "operationId": "organizationsGetCredit", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "projects" + "organizations" ], - "description": "Update project membership privacy settings. Use this endpoint to control what user information is visible to other team members, such as user name, email, and MFA status. ", + "description": "Get credit details.", "responses": { "200": { - "description": "Project", + "description": "Credit", "schema": { - "$ref": "#\/definitions\/project" + "$ref": "#\/definitions\/credit" } } }, "deprecated": false, "x-appwrite": { - "method": "updateMembershipsPrivacy", - "group": "auth", - "weight": 64, + "method": "getCredit", + "group": null, + "weight": 728, "cookies": false, "type": "", - "demo": "projects\/update-memberships-privacy.md", + "demo": "organizations\/get-credit.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "billing.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-memberships-privacy.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-credit.md", "auth": { "Project": [] } @@ -38214,52 +38121,28 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "type": "string", - "x-example": "<PROJECT_ID>", + "x-example": "<ORGANIZATION_ID>", "in": "path" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "userName": { - "type": "boolean", - "description": "Set to true to show userName to members of a team.", - "default": null, - "x-example": false - }, - "userEmail": { - "type": "boolean", - "description": "Set to true to show email to members of a team.", - "default": null, - "x-example": false - }, - "mfa": { - "type": "boolean", - "description": "Set to true to show mfa to members of a team.", - "default": null, - "x-example": false - } - }, - "required": [ - "userName", - "userEmail", - "mfa" - ] - } + "name": "creditId", + "description": "Credit Unique ID", + "required": true, + "type": "string", + "x-example": "<CREDIT_ID>", + "in": "path" } ] } }, - "\/projects\/{projectId}\/auth\/mock-numbers": { + "\/organizations\/{organizationId}\/estimations\/delete-organization": { "patch": { - "summary": "Update the mock numbers for the project", - "operationId": "projectsUpdateMockNumbers", + "summary": "Estimate delete team", + "operationId": "organizationsEstimationDeleteOrganization", "consumes": [ "application\/json" ], @@ -38267,35 +38150,35 @@ "application\/json" ], "tags": [ - "projects" + "organizations" ], - "description": "Update the list of mock phone numbers for testing. Use these numbers to bypass SMS verification in development. ", + "description": "Get estimation for deleting an organization.", "responses": { "200": { - "description": "Project", + "description": "EstimationDeleteOrganization", "schema": { - "$ref": "#\/definitions\/project" + "$ref": "#\/definitions\/estimationDeleteOrganization" } } }, "deprecated": false, "x-appwrite": { - "method": "updateMockNumbers", - "group": "auth", - "weight": 72, + "method": "estimationDeleteOrganization", + "group": null, + "weight": 744, "cookies": false, "type": "", - "demo": "projects\/update-mock-numbers.md", - "rate-limit": 0, + "demo": "organizations\/estimation-delete-organization.md", + "rate-limit": 10, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "organizations.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-mock-numbers.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/estimation-delete-organization.md", "auth": { "Project": [] } @@ -38307,41 +38190,20 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Team ID.", "required": true, "type": "string", - "x-example": "<PROJECT_ID>", + "x-example": "<ORGANIZATION_ID>", "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "numbers": { - "type": "array", - "description": "An array of mock numbers and their corresponding verification codes (OTPs). Each number should be a valid E.164 formatted phone number. Maximum of 10 numbers are allowed.", - "default": null, - "x-example": null, - "items": { - "type": "object" - } - } - }, - "required": [ - "numbers" - ] - } } ] } }, - "\/projects\/{projectId}\/auth\/password-dictionary": { + "\/organizations\/{organizationId}\/estimations\/update-plan": { "patch": { - "summary": "Update authentication password dictionary status. Use this endpoint to enable or disable the dicitonary check for user password", - "operationId": "projectsUpdateAuthPasswordDictionary", + "summary": "Estimate for update plan", + "operationId": "organizationsEstimationUpdatePlan", "consumes": [ "application\/json" ], @@ -38349,35 +38211,35 @@ "application\/json" ], "tags": [ - "projects" + "organizations" ], - "description": "Enable or disable checking user passwords against common passwords dictionary. This helps ensure users don't use common and insecure passwords. ", + "description": "Get estimation for updating the organization plan.", "responses": { "200": { - "description": "Project", + "description": "EstimationUpdatePlan", "schema": { - "$ref": "#\/definitions\/project" + "$ref": "#\/definitions\/estimationUpdatePlan" } } }, "deprecated": false, "x-appwrite": { - "method": "updateAuthPasswordDictionary", - "group": "auth", - "weight": 69, + "method": "estimationUpdatePlan", + "group": null, + "weight": 742, "cookies": false, "type": "", - "demo": "projects\/update-auth-password-dictionary.md", - "rate-limit": 0, + "demo": "organizations\/estimation-update-plan.md", + "rate-limit": 10, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "billing.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-auth-password-dictionary.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/estimation-update-plan.md", "auth": { "Project": [] } @@ -38389,11 +38251,11 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "type": "string", - "x-example": "<PROJECT_ID>", + "x-example": "<ORGANIZATION_ID>", "in": "path" }, { @@ -38402,25 +38264,41 @@ "schema": { "type": "object", "properties": { - "enabled": { - "type": "boolean", - "description": "Set whether or not to enable checking user's password against most commonly used passwords. Default is false.", + "billingPlan": { + "type": "string", + "description": "Organization billing plan chosen", "default": null, - "x-example": false + "x-example": "tier-0" + }, + "invites": { + "type": "array", + "description": "Additional member invites", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "couponId": { + "type": "string", + "description": "Coupon id", + "default": null, + "x-example": "<COUPON_ID>", + "x-nullable": true } }, "required": [ - "enabled" + "billingPlan" ] } } ] } }, - "\/projects\/{projectId}\/auth\/password-history": { - "patch": { - "summary": "Update authentication password history. Use this endpoint to set the number of password history to save and 0 to disable password history.", - "operationId": "projectsUpdateAuthPasswordHistory", + "\/organizations\/{organizationId}\/feedbacks\/downgrade": { + "post": { + "summary": "Create downgrade feedback", + "operationId": "organizationsCreateDowngradeFeedback", "consumes": [ "application\/json" ], @@ -38428,35 +38306,35 @@ "application\/json" ], "tags": [ - "projects" + "organizations" ], - "description": "Update the authentication password history requirement. Use this endpoint to require new passwords to be different than the last X amount of previously used ones.", + "description": "Submit feedback about downgrading from a paid plan to a lower tier. This helps the team understand user experience and improve the platform.\n", "responses": { - "200": { - "description": "Project", + "201": { + "description": "Downgrade Feedback", "schema": { - "$ref": "#\/definitions\/project" + "$ref": "#\/definitions\/downgradeFeedback" } } }, "deprecated": false, "x-appwrite": { - "method": "updateAuthPasswordHistory", - "group": "auth", - "weight": 68, + "method": "createDowngradeFeedback", + "group": null, + "weight": 745, "cookies": false, "type": "", - "demo": "projects\/update-auth-password-history.md", + "demo": "organizations\/create-downgrade-feedback.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "billing.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-auth-password-history.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/create-downgrade-feedback.md", "auth": { "Project": [] } @@ -38468,11 +38346,11 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization Unique ID", "required": true, "type": "string", - "x-example": "<PROJECT_ID>", + "x-example": "<ORGANIZATION_ID>", "in": "path" }, { @@ -38481,62 +38359,80 @@ "schema": { "type": "object", "properties": { - "limit": { - "type": "integer", - "description": "Set the max number of passwords to store in user history. User can't choose a new password that is already stored in the password history list. Max number of passwords allowed in history is20. Default value is 0", + "reason": { + "type": "string", + "description": "Feedback reason", "default": null, - "x-example": 0, - "format": "int32" + "x-example": "<REASON>" + }, + "message": { + "type": "string", + "description": "Feedback message", + "default": null, + "x-example": "<MESSAGE>" + }, + "fromPlanId": { + "type": "string", + "description": "Plan downgrading from", + "default": null, + "x-example": "<FROM_PLAN_ID>" + }, + "toPlanId": { + "type": "string", + "description": "Plan downgrading to", + "default": null, + "x-example": "<TO_PLAN_ID>" } }, "required": [ - "limit" + "reason", + "message", + "fromPlanId", + "toPlanId" ] } } ] } }, - "\/projects\/{projectId}\/auth\/personal-data": { - "patch": { - "summary": "Update personal data check", - "operationId": "projectsUpdatePersonalDataCheck", - "consumes": [ - "application\/json" - ], + "\/organizations\/{organizationId}\/invoices": { + "get": { + "summary": "List invoices", + "operationId": "organizationsListInvoices", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "projects" + "organizations" ], - "description": "Enable or disable checking user passwords against their personal data. This helps prevent users from using personal information in their passwords. ", + "description": "List all invoices for an organization.", "responses": { "200": { - "description": "Project", + "description": "Billing invoices list", "schema": { - "$ref": "#\/definitions\/project" + "$ref": "#\/definitions\/invoiceList" } } }, "deprecated": false, "x-appwrite": { - "method": "updatePersonalDataCheck", - "group": "auth", - "weight": 70, + "method": "listInvoices", + "group": null, + "weight": 733, "cookies": false, "type": "", - "demo": "projects\/update-personal-data-check.md", + "demo": "organizations\/list-invoices.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "billing.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-personal-data-check.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/list-invoices.md", "auth": { "Project": [] } @@ -38548,74 +38444,66 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "type": "string", - "x-example": "<PROJECT_ID>", + "x-example": "<ORGANIZATION_ID>", "in": "path" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "Set whether or not to check a password for similarity with personal data. Default is false.", - "default": null, - "x-example": false - } - }, - "required": [ - "enabled" - ] - } + "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, amount, currency, from, to, dueAt, attempts, status, grossAmount", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" } ] } }, - "\/projects\/{projectId}\/auth\/session-alerts": { - "patch": { - "summary": "Update project sessions emails", - "operationId": "projectsUpdateSessionAlerts", - "consumes": [ - "application\/json" - ], + "\/organizations\/{organizationId}\/invoices\/{invoiceId}": { + "get": { + "summary": "Get invoice", + "operationId": "organizationsGetInvoice", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "projects" + "organizations" ], - "description": "Enable or disable session email alerts. When enabled, users will receive email notifications when new sessions are created.", + "description": "Get an invoice by its unique ID.", "responses": { "200": { - "description": "Project", + "description": "Invoice", "schema": { - "$ref": "#\/definitions\/project" + "$ref": "#\/definitions\/invoice" } } }, "deprecated": false, "x-appwrite": { - "method": "updateSessionAlerts", - "group": "auth", - "weight": 63, + "method": "getInvoice", + "group": null, + "weight": 732, "cookies": false, "type": "", - "demo": "projects\/update-session-alerts.md", + "demo": "organizations\/get-invoice.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "billing.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-session-alerts.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-invoice.md", "auth": { "Project": [] } @@ -38627,38 +38515,95 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "type": "string", - "x-example": "<PROJECT_ID>", + "x-example": "<ORGANIZATION_ID>", "in": "path" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "alerts": { - "type": "boolean", - "description": "Set to true to enable session emails.", - "default": null, - "x-example": false - } - }, - "required": [ - "alerts" - ] + "name": "invoiceId", + "description": "Invoice unique ID", + "required": true, + "type": "string", + "x-example": "<INVOICE_ID>", + "in": "path" + } + ] + } + }, + "\/organizations\/{organizationId}\/invoices\/{invoiceId}\/download": { + "get": { + "summary": "Download invoice in PDF", + "operationId": "organizationsGetInvoiceDownload", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "organizations" + ], + "description": "Download invoice in PDF", + "responses": { + "200": { + "description": "paymentMethod", + "schema": { + "$ref": "#\/definitions\/paymentMethod" } } + }, + "deprecated": false, + "x-appwrite": { + "method": "getInvoiceDownload", + "group": null, + "weight": 736, + "cookies": false, + "type": "", + "demo": "organizations\/get-invoice-download.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-invoice-download.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "type": "string", + "x-example": "<ORGANIZATION_ID>", + "in": "path" + }, + { + "name": "invoiceId", + "description": "Invoice unique ID", + "required": true, + "type": "string", + "x-example": "<INVOICE_ID>", + "in": "path" + } ] } }, - "\/projects\/{projectId}\/auth\/session-invalidation": { - "patch": { - "summary": "Update invalidate session option of the project", - "operationId": "projectsUpdateSessionInvalidation", + "\/organizations\/{organizationId}\/invoices\/{invoiceId}\/payments": { + "post": { + "summary": "Initiate payment for failed invoice to pay live from console", + "operationId": "organizationsCreateInvoicePayment", "consumes": [ "application\/json" ], @@ -38666,35 +38611,35 @@ "application\/json" ], "tags": [ - "projects" + "organizations" ], - "description": "Invalidate all existing sessions. An optional auth security setting for projects, and enabled by default for console project.", + "description": "Initiate payment for failed invoice to pay live from console", "responses": { "200": { - "description": "Project", + "description": "Invoice", "schema": { - "$ref": "#\/definitions\/project" + "$ref": "#\/definitions\/invoice" } } }, "deprecated": false, "x-appwrite": { - "method": "updateSessionInvalidation", - "group": "auth", - "weight": 99, + "method": "createInvoicePayment", + "group": null, + "weight": 737, "cookies": false, "type": "", - "demo": "projects\/update-session-invalidation.md", - "rate-limit": 0, - "rate-time": 3600, + "demo": "organizations\/create-invoice-payment.md", + "rate-limit": 10, + "rate-time": 86400, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "billing.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-session-invalidation.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/create-invoice-payment.md", "auth": { "Project": [] } @@ -38706,11 +38651,19 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "type": "string", - "x-example": "<PROJECT_ID>", + "x-example": "<ORGANIZATION_ID>", + "in": "path" + }, + { + "name": "invoiceId", + "description": "Invoice unique ID", + "required": true, + "type": "string", + "x-example": "<INVOICE_ID>", "in": "path" }, { @@ -38719,25 +38672,25 @@ "schema": { "type": "object", "properties": { - "enabled": { - "type": "boolean", - "description": "Update authentication session invalidation status. Use this endpoint to enable or disable session invalidation on password change", + "paymentMethodId": { + "type": "string", + "description": "Payment method ID", "default": null, - "x-example": false + "x-example": "<PAYMENT_METHOD_ID>" } }, "required": [ - "enabled" + "paymentMethodId" ] } } ] } }, - "\/projects\/{projectId}\/auth\/{method}": { + "\/organizations\/{organizationId}\/invoices\/{invoiceId}\/status": { "patch": { - "summary": "Update project auth method status. Use this endpoint to enable or disable a given auth method for this project.", - "operationId": "projectsUpdateAuthStatus", + "summary": "Validate the payment for an invoice and update status", + "operationId": "organizationsValidateInvoice", "consumes": [ "application\/json" ], @@ -38745,35 +38698,35 @@ "application\/json" ], "tags": [ - "projects" + "organizations" ], - "description": "Update the status of a specific authentication method. Use this endpoint to enable or disable different authentication methods such as email, magic urls or sms in your project. ", + "description": "Validates the payment linked with the invoice and updates the invoice status if the payment status is changed.", "responses": { "200": { - "description": "Project", + "description": "Invoice", "schema": { - "$ref": "#\/definitions\/project" + "$ref": "#\/definitions\/invoice" } } }, "deprecated": false, "x-appwrite": { - "method": "updateAuthStatus", - "group": "auth", - "weight": 67, + "method": "validateInvoice", + "group": null, + "weight": 734, "cookies": false, "type": "", - "demo": "projects\/update-auth-status.md", + "demo": "organizations\/validate-invoice.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "billing.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-auth-status.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/update-invoice-status.md", "auth": { "Project": [] } @@ -38785,85 +38738,123 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "type": "string", - "x-example": "<PROJECT_ID>", + "x-example": "<ORGANIZATION_ID>", "in": "path" }, { - "name": "method", - "description": "Auth Method. Possible values: email-password,magic-url,email-otp,anonymous,invites,jwt,phone", + "name": "invoiceId", + "description": "Invoice unique ID", "required": true, "type": "string", - "x-example": "email-password", - "enum": [ - "email-password", - "magic-url", - "email-otp", - "anonymous", - "invites", - "jwt", - "phone" - ], - "x-enum-name": "AuthMethod", - "x-enum-keys": [], + "x-example": "<INVOICE_ID>", "in": "path" - }, - { - "name": "payload", - "in": "body", + } + ] + } + }, + "\/organizations\/{organizationId}\/invoices\/{invoiceId}\/view": { + "get": { + "summary": "View invoice in PDF", + "operationId": "organizationsGetInvoiceView", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "organizations" + ], + "description": "View invoice in PDF", + "responses": { + "200": { + "description": "paymentMethod", "schema": { - "type": "object", - "properties": { - "status": { - "type": "boolean", - "description": "Set the status of this auth method.", - "default": null, - "x-example": false - } - }, - "required": [ - "status" - ] + "$ref": "#\/definitions\/paymentMethod" } } + }, + "deprecated": false, + "x-appwrite": { + "method": "getInvoiceView", + "group": null, + "weight": 735, + "cookies": false, + "type": "", + "demo": "organizations\/get-invoice-view.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-invoice-view.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "type": "string", + "x-example": "<ORGANIZATION_ID>", + "in": "path" + }, + { + "name": "invoiceId", + "description": "Invoice unique ID", + "required": true, + "type": "string", + "x-example": "<INVOICE_ID>", + "in": "path" + } ] } }, - "\/projects\/{projectId}\/dev-keys": { + "\/organizations\/{organizationId}\/keys": { "get": { - "summary": "List dev keys", - "operationId": "projectsListDevKeys", + "summary": "List organization keys", + "operationId": "organizationsListKeys", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "projects" + "organizations" ], - "description": "List all the project\\'s dev keys. Dev keys are project specific and allow you to bypass rate limits and get better error logging during development.'", + "description": "Get a list of all API keys from the current organization. ", "responses": { "200": { - "description": "Dev Keys List", + "description": "API Keys List", "schema": { - "$ref": "#\/definitions\/devKeyList" + "$ref": "#\/definitions\/keyList" } } }, "deprecated": false, "x-appwrite": { - "method": "listDevKeys", - "group": "devKeys", - "weight": 410, + "method": "listKeys", + "group": "keys", + "weight": 748, "cookies": false, "type": "", - "demo": "projects\/list-dev-keys.md", + "demo": "organizations\/list-keys.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "devKeys.read", + "scope": "teams.read", "platforms": [ "console" ], @@ -38880,30 +38871,27 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization Unique ID", "required": true, "type": "string", - "x-example": "<PROJECT_ID>", + "x-example": "<ORGANIZATION_ID>", "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: accessedAt, expire", + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", "required": false, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], + "type": "boolean", + "x-example": false, + "default": true, "in": "query" } ] }, "post": { - "summary": "Create dev key", - "operationId": "projectsCreateDevKey", + "summary": "Create organization key", + "operationId": "organizationsCreateKey", "consumes": [ "application\/json" ], @@ -38911,29 +38899,29 @@ "application\/json" ], "tags": [ - "projects" + "organizations" ], - "description": "Create a new project dev key. Dev keys are project specific and allow you to bypass rate limits and get better error logging during development. Strictly meant for development purposes only.", + "description": "Create a new organization API key.", "responses": { "201": { - "description": "DevKey", + "description": "Key", "schema": { - "$ref": "#\/definitions\/devKey" + "$ref": "#\/definitions\/key" } } }, "deprecated": false, "x-appwrite": { - "method": "createDevKey", - "group": "devKeys", - "weight": 407, + "method": "createKey", + "group": "keys", + "weight": 746, "cookies": false, "type": "", - "demo": "projects\/create-dev-key.md", + "demo": "organizations\/create-key.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "devKeys.write", + "scope": "teams.write", "platforms": [ "console" ], @@ -38950,11 +38938,11 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization Unique ID", "required": true, "type": "string", - "x-example": "<PROJECT_ID>", + "x-example": "<ORGANIZATION_ID>", "in": "path" }, { @@ -38969,54 +38957,80 @@ "default": null, "x-example": "<NAME>" }, + "scopes": { + "type": "array", + "description": "Key scopes list. Maximum of 100 scopes are allowed.", + "default": null, + "x-example": null, + "items": { + "type": "string", + "enum": [ + "platforms.read", + "platforms.write", + "projects.read", + "projects.write", + "keys.read", + "keys.write", + "devKeys.read", + "devKeys.write", + "webhooks.read", + "webhooks.write", + "domains.read", + "domains.write" + ], + "x-enum-name": null, + "x-enum-keys": [] + } + }, "expire": { "type": "string", - "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format.", + "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", "default": null, - "x-example": null + "x-example": null, + "x-nullable": true } }, "required": [ "name", - "expire" + "scopes" ] } } ] } }, - "\/projects\/{projectId}\/dev-keys\/{keyId}": { + "\/organizations\/{organizationId}\/keys\/{keyId}": { "get": { - "summary": "Get dev key", - "operationId": "projectsGetDevKey", + "summary": "Get organization key", + "operationId": "organizationsGetKey", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "projects" + "organizations" ], - "description": "Get a project\\'s dev key by its unique ID. Dev keys are project specific and allow you to bypass rate limits and get better error logging during development.", + "description": "Get a key by its unique ID. This endpoint returns details about a specific API key in your organization including it's scopes.", "responses": { "200": { - "description": "DevKey", + "description": "Key", "schema": { - "$ref": "#\/definitions\/devKey" + "$ref": "#\/definitions\/key" } } }, "deprecated": false, "x-appwrite": { - "method": "getDevKey", - "group": "devKeys", - "weight": 409, + "method": "getKey", + "group": "keys", + "weight": 750, "cookies": false, "type": "", - "demo": "projects\/get-dev-key.md", + "demo": "organizations\/get-key.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "devKeys.read", + "scope": "teams.read", "platforms": [ "console" ], @@ -39033,11 +39047,11 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization Unique ID", "required": true, "type": "string", - "x-example": "<PROJECT_ID>", + "x-example": "<ORGANIZATION_ID>", "in": "path" }, { @@ -39051,8 +39065,8 @@ ] }, "put": { - "summary": "Update dev key", - "operationId": "projectsUpdateDevKey", + "summary": "Update organization key", + "operationId": "organizationsUpdateKey", "consumes": [ "application\/json" ], @@ -39060,29 +39074,29 @@ "application\/json" ], "tags": [ - "projects" + "organizations" ], - "description": "Update a project\\'s dev key by its unique ID. Use this endpoint to update a project\\'s dev key name or expiration time.'", + "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": "DevKey", + "description": "Key", "schema": { - "$ref": "#\/definitions\/devKey" + "$ref": "#\/definitions\/key" } } }, "deprecated": false, "x-appwrite": { - "method": "updateDevKey", - "group": "devKeys", - "weight": 408, + "method": "updateKey", + "group": "keys", + "weight": 747, "cookies": false, "type": "", - "demo": "projects\/update-dev-key.md", + "demo": "organizations\/update-key.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "devKeys.write", + "scope": "teams.write", "platforms": [ "console" ], @@ -39099,11 +39113,11 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization Unique ID", "required": true, "type": "string", - "x-example": "<PROJECT_ID>", + "x-example": "<ORGANIZATION_ID>", "in": "path" }, { @@ -39126,32 +39140,60 @@ "default": null, "x-example": "<NAME>" }, + "scopes": { + "type": "array", + "description": "Key scopes list. Maximum of 100 scopes are allowed.", + "default": null, + "x-example": null, + "items": { + "type": "string", + "enum": [ + "platforms.read", + "platforms.write", + "projects.read", + "projects.write", + "keys.read", + "keys.write", + "devKeys.read", + "devKeys.write", + "webhooks.read", + "webhooks.write", + "domains.read", + "domains.write" + ], + "x-enum-name": null, + "x-enum-keys": [] + } + }, "expire": { "type": "string", - "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format.", + "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", "default": null, - "x-example": null + "x-example": null, + "x-nullable": true } }, "required": [ "name", - "expire" + "scopes" ] } } ] }, "delete": { - "summary": "Delete dev key", - "operationId": "projectsDeleteDevKey", + "summary": "Delete organization key", + "operationId": "organizationsDeleteKey", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ - "projects" + "organizations" ], - "description": "Delete a project\\'s dev key by its unique ID. Once deleted, the key will no longer allow bypassing of rate limits and better logging of errors.", + "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" @@ -39159,16 +39201,16 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteDevKey", - "group": "devKeys", - "weight": 411, + "method": "deleteKey", + "group": "keys", + "weight": 749, "cookies": false, "type": "", - "demo": "projects\/delete-dev-key.md", + "demo": "organizations\/delete-key.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "devKeys.write", + "scope": "teams.write", "platforms": [ "console" ], @@ -39185,11 +39227,11 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization Unique ID", "required": true, "type": "string", - "x-example": "<PROJECT_ID>", + "x-example": "<ORGANIZATION_ID>", "in": "path" }, { @@ -39203,10 +39245,10 @@ ] } }, - "\/projects\/{projectId}\/jwts": { - "post": { - "summary": "Create JWT", - "operationId": "projectsCreateJWT", + "\/organizations\/{organizationId}\/payment-method": { + "patch": { + "summary": "Set team's payment method", + "operationId": "organizationsSetDefaultPaymentMethod", "consumes": [ "application\/json" ], @@ -39214,35 +39256,35 @@ "application\/json" ], "tags": [ - "projects" + "organizations" ], - "description": "Create a new JWT token. This token can be used to authenticate users with custom scopes and expiration time. ", + "description": "Set a organization's default payment method.", "responses": { - "201": { - "description": "JWT", + "200": { + "description": "Organization", "schema": { - "$ref": "#\/definitions\/jwt" + "$ref": "#\/definitions\/organization" } } }, "deprecated": false, "x-appwrite": { - "method": "createJWT", - "group": "auth", - "weight": 85, + "method": "setDefaultPaymentMethod", + "group": null, + "weight": 722, "cookies": false, "type": "", - "demo": "projects\/create-jwt.md", + "demo": "organizations\/set-default-payment-method.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "billing.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/create-jwt.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/set-default-payment-method.md", "auth": { "Project": [] } @@ -39254,11 +39296,11 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "type": "string", - "x-example": "<PROJECT_ID>", + "x-example": "<ORGANIZATION_ID>", "in": "path" }, { @@ -39267,139 +39309,59 @@ "schema": { "type": "object", "properties": { - "scopes": { - "type": "array", - "description": "List of scopes allowed for JWT key. Maximum of 100 scopes are allowed.", + "paymentMethodId": { + "type": "string", + "description": "Unique ID of payment method", "default": null, - "x-example": null, - "items": { - "type": "string", - "enum": [ - "sessions.write", - "users.read", - "users.write", - "teams.read", - "teams.write", - "databases.read", - "databases.write", - "collections.read", - "collections.write", - "tables.read", - "tables.write", - "attributes.read", - "attributes.write", - "columns.read", - "columns.write", - "indexes.read", - "indexes.write", - "documents.read", - "documents.write", - "rows.read", - "rows.write", - "files.read", - "files.write", - "buckets.read", - "buckets.write", - "functions.read", - "functions.write", - "sites.read", - "sites.write", - "log.read", - "log.write", - "execution.read", - "execution.write", - "locale.read", - "avatars.read", - "health.read", - "providers.read", - "providers.write", - "messages.read", - "messages.write", - "topics.read", - "topics.write", - "subscribers.read", - "subscribers.write", - "targets.read", - "targets.write", - "rules.read", - "rules.write", - "schedules.read", - "schedules.write", - "migrations.read", - "migrations.write", - "vcs.read", - "vcs.write", - "assistant.read", - "tokens.read", - "tokens.write", - "policies.write", - "policies.read", - "archives.read", - "archives.write", - "restorations.read", - "restorations.write", - "domains.read", - "domains.write", - "events.read" - ], - "x-enum-name": null, - "x-enum-keys": [] - } - }, - "duration": { - "type": "integer", - "description": "Time in seconds before JWT expires. Default duration is 900 seconds, and maximum is 3600 seconds.", - "default": 900, - "x-example": 0, - "format": "int32" + "x-example": "<PAYMENT_METHOD_ID>" } }, "required": [ - "scopes" + "paymentMethodId" ] } } ] - } - }, - "\/projects\/{projectId}\/keys": { - "get": { - "summary": "List keys", - "operationId": "projectsListKeys", - "consumes": [], + }, + "delete": { + "summary": "Delete team's default payment method", + "operationId": "organizationsDeleteDefaultPaymentMethod", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "projects" + "organizations" ], - "description": "Get a list of all API keys from the current project. ", + "description": "Delete the default payment method for an organization.", "responses": { "200": { - "description": "API Keys List", + "description": "Organization", "schema": { - "$ref": "#\/definitions\/keyList" + "$ref": "#\/definitions\/organization" } } }, "deprecated": false, "x-appwrite": { - "method": "listKeys", - "group": "keys", - "weight": 81, + "method": "deleteDefaultPaymentMethod", + "group": null, + "weight": 724, "cookies": false, "type": "", - "demo": "projects\/list-keys.md", + "demo": "organizations\/delete-default-payment-method.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "keys.read", + "scope": "billing.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/list-keys.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/delete-default-payment-method.md", "auth": { "Project": [] } @@ -39411,39 +39373,20 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "type": "string", - "x-example": "<PROJECT_ID>", + "x-example": "<ORGANIZATION_ID>", "in": "path" - }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: expire, accessedAt, name, scopes", - "required": false, - "type": "array", - "collectionFormat": "multi", - "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, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" } ] - }, - "post": { - "summary": "Create key", - "operationId": "projectsCreateKey", + } + }, + "\/organizations\/{organizationId}\/payment-method\/backup": { + "patch": { + "summary": "Set team's backup payment method", + "operationId": "organizationsSetBackupPaymentMethod", "consumes": [ "application\/json" ], @@ -39451,35 +39394,35 @@ "application\/json" ], "tags": [ - "projects" + "organizations" ], - "description": "Create a new API key. It's recommended to have multiple API keys with strict scopes for separate functions within your project.", + "description": "Set an organization's backup payment method.\n", "responses": { - "201": { - "description": "Key", + "200": { + "description": "Organization", "schema": { - "$ref": "#\/definitions\/key" + "$ref": "#\/definitions\/organization" } } }, "deprecated": false, "x-appwrite": { - "method": "createKey", - "group": "keys", - "weight": 80, + "method": "setBackupPaymentMethod", + "group": null, + "weight": 723, "cookies": false, "type": "", - "demo": "projects\/create-key.md", + "demo": "organizations\/set-backup-payment-method.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "keys.write", + "scope": "billing.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/create-key.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/set-backup-payment-method.md", "auth": { "Project": [] } @@ -39491,11 +39434,11 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "type": "string", - "x-example": "<PROJECT_ID>", + "x-example": "<ORGANIZATION_ID>", "in": "path" }, { @@ -39504,153 +39447,118 @@ "schema": { "type": "object", "properties": { - "keyId": { - "type": "string", - "description": "Key ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": "unique()", - "x-example": "<KEY_ID>" - }, - "name": { - "type": "string", - "description": "Key name. Max length: 128 chars.", - "default": null, - "x-example": "<NAME>" - }, - "scopes": { - "type": "array", - "description": "Key scopes list. Maximum of 100 scopes are allowed.", - "default": null, - "x-example": null, - "x-nullable": true, - "items": { - "type": "string", - "enum": [ - "sessions.write", - "users.read", - "users.write", - "teams.read", - "teams.write", - "databases.read", - "databases.write", - "collections.read", - "collections.write", - "tables.read", - "tables.write", - "attributes.read", - "attributes.write", - "columns.read", - "columns.write", - "indexes.read", - "indexes.write", - "documents.read", - "documents.write", - "rows.read", - "rows.write", - "files.read", - "files.write", - "buckets.read", - "buckets.write", - "functions.read", - "functions.write", - "sites.read", - "sites.write", - "log.read", - "log.write", - "execution.read", - "execution.write", - "locale.read", - "avatars.read", - "health.read", - "providers.read", - "providers.write", - "messages.read", - "messages.write", - "topics.read", - "topics.write", - "subscribers.read", - "subscribers.write", - "targets.read", - "targets.write", - "rules.read", - "rules.write", - "schedules.read", - "schedules.write", - "migrations.read", - "migrations.write", - "vcs.read", - "vcs.write", - "assistant.read", - "tokens.read", - "tokens.write", - "policies.write", - "policies.read", - "archives.read", - "archives.write", - "restorations.read", - "restorations.write", - "domains.read", - "domains.write", - "events.read" - ], - "x-enum-name": null, - "x-enum-keys": [] - } - }, - "expire": { + "paymentMethodId": { "type": "string", - "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", + "description": "Unique ID of payment method", "default": null, - "x-example": null, - "x-nullable": true + "x-example": "<PAYMENT_METHOD_ID>" } }, "required": [ - "name", - "scopes" + "paymentMethodId" ] } } ] + }, + "delete": { + "summary": "Delete team's backup payment method", + "operationId": "organizationsDeleteBackupPaymentMethod", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "organizations" + ], + "description": "Delete a backup payment method for an organization.", + "responses": { + "200": { + "description": "Organization", + "schema": { + "$ref": "#\/definitions\/organization" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteBackupPaymentMethod", + "group": null, + "weight": 725, + "cookies": false, + "type": "", + "demo": "organizations\/delete-backup-payment-method.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/delete-backup-payment-method.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization ID", + "required": true, + "type": "string", + "x-example": "<ORGANIZATION_ID>", + "in": "path" + } + ] } }, - "\/projects\/{projectId}\/keys\/{keyId}": { + "\/organizations\/{organizationId}\/payment-methods\/{paymentMethodId}": { "get": { - "summary": "Get key", - "operationId": "projectsGetKey", + "summary": "Get payment method", + "operationId": "organizationsGetPaymentMethod", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "projects" + "organizations" ], - "description": "Get a key by its unique ID. This endpoint returns details about a specific API key in your project including it's scopes.", + "description": "Get an organization's payment method using it's payment method ID.", "responses": { "200": { - "description": "Key", + "description": "paymentMethod", "schema": { - "$ref": "#\/definitions\/key" + "$ref": "#\/definitions\/paymentMethod" } } }, "deprecated": false, "x-appwrite": { - "method": "getKey", - "group": "keys", - "weight": 82, + "method": "getPaymentMethod", + "group": null, + "weight": 721, "cookies": false, "type": "", - "demo": "projects\/get-key.md", + "demo": "organizations\/get-payment-method.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "keys.read", + "scope": "billing.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/get-key.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-payment-method.md", "auth": { "Project": [] } @@ -39662,62 +39570,62 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "type": "string", - "x-example": "<PROJECT_ID>", + "x-example": "<ORGANIZATION_ID>", "in": "path" }, { - "name": "keyId", - "description": "Key unique ID.", + "name": "paymentMethodId", + "description": "Unique ID of payment method", "required": true, "type": "string", - "x-example": "<KEY_ID>", + "x-example": "<PAYMENT_METHOD_ID>", "in": "path" } ] - }, - "put": { - "summary": "Update key", - "operationId": "projectsUpdateKey", - "consumes": [ - "application\/json" - ], + } + }, + "\/organizations\/{organizationId}\/plan": { + "get": { + "summary": "Get organization billing plan details", + "operationId": "organizationsGetPlan", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "projects" + "organizations" ], - "description": "Update a key by its unique ID. Use this endpoint to update the name, scopes, or expiration time of an API key. ", + "description": "Get the details of the current billing plan for an organization.", "responses": { "200": { - "description": "Key", + "description": "billingPlan", "schema": { - "$ref": "#\/definitions\/key" + "$ref": "#\/definitions\/billingPlan" } } }, "deprecated": false, "x-appwrite": { - "method": "updateKey", - "group": "keys", - "weight": 83, + "method": "getPlan", + "group": null, + "weight": 712, "cookies": false, "type": "", - "demo": "projects\/update-key.md", + "demo": "organizations\/get-plan.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "keys.write", + "scope": "teams.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-key.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-plan.md", "auth": { "Project": [] } @@ -39729,19 +39637,70 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization Unique ID", "required": true, "type": "string", - "x-example": "<PROJECT_ID>", + "x-example": "<ORGANIZATION_ID>", "in": "path" - }, + } + ] + }, + "patch": { + "summary": "Update organization billing plan", + "operationId": "organizationsUpdatePlan", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "organizations" + ], + "description": "Update the billing plan for an organization.", + "responses": { + "200": { + "description": "Organization", + "schema": { + "$ref": "#\/definitions\/organization" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updatePlan", + "group": null, + "weight": 713, + "cookies": false, + "type": "", + "demo": "organizations\/update-plan.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "billing.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/update-plan.md", + "auth": { + "Project": [] + } + }, + "security": [ { - "name": "keyId", - "description": "Key unique ID.", + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Organization Unique ID", "required": true, "type": "string", - "x-example": "<KEY_ID>", + "x-example": "<ORGANIZATION_ID>", "in": "path" }, { @@ -39750,142 +39709,105 @@ "schema": { "type": "object", "properties": { - "name": { + "billingPlan": { "type": "string", - "description": "Key name. Max length: 128 chars.", + "description": "Organization billing plan chosen", "default": null, - "x-example": "<NAME>" + "x-example": "tier-0" }, - "scopes": { - "type": "array", - "description": "Key scopes list. Maximum of 100 events are allowed.", + "paymentMethodId": { + "type": "string", + "description": "Payment method ID. Required for pro plans when trial is not available and user doesn't have default payment method set.", "default": null, - "x-example": null, - "x-nullable": true, - "items": { - "type": "string", - "enum": [ - "sessions.write", - "users.read", - "users.write", - "teams.read", - "teams.write", - "databases.read", - "databases.write", - "collections.read", - "collections.write", - "tables.read", - "tables.write", - "attributes.read", - "attributes.write", - "columns.read", - "columns.write", - "indexes.read", - "indexes.write", - "documents.read", - "documents.write", - "rows.read", - "rows.write", - "files.read", - "files.write", - "buckets.read", - "buckets.write", - "functions.read", - "functions.write", - "sites.read", - "sites.write", - "log.read", - "log.write", - "execution.read", - "execution.write", - "locale.read", - "avatars.read", - "health.read", - "providers.read", - "providers.write", - "messages.read", - "messages.write", - "topics.read", - "topics.write", - "subscribers.read", - "subscribers.write", - "targets.read", - "targets.write", - "rules.read", - "rules.write", - "schedules.read", - "schedules.write", - "migrations.read", - "migrations.write", - "vcs.read", - "vcs.write", - "assistant.read", - "tokens.read", - "tokens.write", - "policies.write", - "policies.read", - "archives.read", - "archives.write", - "restorations.read", - "restorations.write", - "domains.read", - "domains.write", - "events.read" - ], - "x-enum-name": null, - "x-enum-keys": [] + "x-example": "<PAYMENT_METHOD_ID>", + "x-nullable": true + }, + "billingAddressId": { + "type": "string", + "description": "Unique ID of billing address", + "default": "", + "x-example": "<BILLING_ADDRESS_ID>" + }, + "invites": { + "type": "array", + "description": "Additional member invites", + "default": [], + "x-example": null, + "items": { + "type": "string" } }, - "expire": { + "couponId": { "type": "string", - "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", + "description": "Coupon id", "default": null, - "x-example": null, + "x-example": "<COUPON_ID>", + "x-nullable": true + }, + "taxId": { + "type": "string", + "description": "Tax Id associated to billing.", + "default": null, + "x-example": "<TAX_ID>", + "x-nullable": true + }, + "budget": { + "type": "integer", + "description": "Budget limit for additional usage set for the organization", + "default": null, + "x-example": 0, + "format": "int32", "x-nullable": true } }, "required": [ - "name", - "scopes" + "billingPlan" ] } } ] - }, - "delete": { - "summary": "Delete key", - "operationId": "projectsDeleteKey", + } + }, + "\/organizations\/{organizationId}\/plan\/cancel": { + "patch": { + "summary": "Cancel organization plan change", + "operationId": "organizationsCancelDowngrade", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ - "projects" + "organizations" ], - "description": "Delete a key by its unique ID. Once deleted, the key can no longer be used to authenticate API calls. ", + "description": "Cancel the downgrade initiated for an organization.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Organization", + "schema": { + "$ref": "#\/definitions\/organization" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteKey", - "group": "keys", - "weight": 84, + "method": "cancelDowngrade", + "group": null, + "weight": 714, "cookies": false, "type": "", - "demo": "projects\/delete-key.md", + "demo": "organizations\/cancel-downgrade.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "keys.write", + "scope": "billing.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/delete-key.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/cancel-downgrade.md", "auth": { "Project": [] } @@ -39897,63 +39819,113 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization Unique ID", "required": true, "type": "string", - "x-example": "<PROJECT_ID>", + "x-example": "<ORGANIZATION_ID>", "in": "path" - }, + } + ] + } + }, + "\/organizations\/{organizationId}\/regions": { + "get": { + "summary": "List Regions", + "operationId": "organizationsListRegions", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "organizations" + ], + "description": "Get all available regions for an organization.", + "responses": { + "200": { + "description": "Regions list", + "schema": { + "$ref": "#\/definitions\/consoleRegionList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listRegions", + "group": null, + "weight": 741, + "cookies": false, + "type": "", + "demo": "organizations\/list-regions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/list-regions.md", + "auth": { + "Project": [] + } + }, + "security": [ { - "name": "keyId", - "description": "Key unique ID.", + "Project": [] + } + ], + "parameters": [ + { + "name": "organizationId", + "description": "Team ID.", "required": true, "type": "string", - "x-example": "<KEY_ID>", + "x-example": "<ORGANIZATION_ID>", "in": "path" } ] } }, - "\/projects\/{projectId}\/labels": { - "put": { - "summary": "Update project labels", - "operationId": "projectsUpdateLabels", - "consumes": [ - "application\/json" - ], + "\/organizations\/{organizationId}\/roles": { + "get": { + "summary": "Get Scopes", + "operationId": "organizationsGetScopes", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "projects" + "organizations" ], - "description": "Update the project labels by its unique ID. Labels can be used to easily filter projects in an organization.", + "description": "Get Scopes", "responses": { "200": { - "description": "Project", + "description": "Roles", "schema": { - "$ref": "#\/definitions\/project" + "$ref": "#\/definitions\/roles" } } }, "deprecated": false, "x-appwrite": { - "method": "updateLabels", - "group": "projects", - "weight": 415, + "method": "getScopes", + "group": null, + "weight": 740, "cookies": false, "type": "", - "demo": "projects\/update-labels.md", + "demo": "organizations\/get-scopes.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "teams.read", "platforms": [ "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-scopes.md", "auth": { "Project": [] } @@ -39965,41 +39937,29 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization id", "required": true, "type": "string", - "x-example": "<PROJECT_ID>", + "x-example": "<ORGANIZATION_ID>", "in": "path" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "labels": { - "type": "array", - "description": "Array of project labels. Replaces the previous labels. Maximum of 1000 labels are allowed, each up to 36 alphanumeric characters long.", - "default": null, - "x-example": null, - "items": { - "type": "string" - } - } - }, - "required": [ - "labels" - ] - } + "name": "projectId", + "description": "Project id", + "required": false, + "type": "string", + "x-example": "<PROJECT_ID>", + "default": "", + "in": "query" } ] } }, - "\/projects\/{projectId}\/oauth2": { + "\/organizations\/{organizationId}\/taxId": { "patch": { - "summary": "Update project OAuth2", - "operationId": "projectsUpdateOAuth2", + "summary": "Set team's tax Id", + "operationId": "organizationsSetBillingTaxId", "consumes": [ "application\/json" ], @@ -40007,35 +39967,35 @@ "application\/json" ], "tags": [ - "projects" + "organizations" ], - "description": "Update the OAuth2 provider configurations. Use this endpoint to set up or update the OAuth2 provider credentials or enable\/disable providers. ", + "description": "Set an organization's billing tax ID.", "responses": { "200": { - "description": "Project", + "description": "Organization", "schema": { - "$ref": "#\/definitions\/project" + "$ref": "#\/definitions\/organization" } } }, "deprecated": false, "x-appwrite": { - "method": "updateOAuth2", - "group": "auth", - "weight": 62, + "method": "setBillingTaxId", + "group": null, + "weight": 716, "cookies": false, "type": "", - "demo": "projects\/update-o-auth-2.md", + "demo": "organizations\/set-billing-tax-id.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "billing.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-oauth2.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/set-billing-tax-id.md", "auth": { "Project": [] } @@ -40047,11 +40007,11 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "type": "string", - "x-example": "<PROJECT_ID>", + "x-example": "<ORGANIZATION_ID>", "in": "path" }, { @@ -40060,123 +40020,59 @@ "schema": { "type": "object", "properties": { - "provider": { - "type": "string", - "description": "Provider Name", - "default": null, - "x-example": "amazon", - "enum": [ - "amazon", - "apple", - "auth0", - "authentik", - "autodesk", - "bitbucket", - "bitly", - "box", - "dailymotion", - "discord", - "disqus", - "dropbox", - "etsy", - "facebook", - "figma", - "github", - "gitlab", - "google", - "linkedin", - "microsoft", - "notion", - "oidc", - "okta", - "paypal", - "paypalSandbox", - "podio", - "salesforce", - "slack", - "spotify", - "stripe", - "tradeshift", - "tradeshiftBox", - "twitch", - "wordpress", - "yahoo", - "yammer", - "yandex", - "zoho", - "zoom" - ], - "x-enum-name": "OAuthProvider", - "x-enum-keys": [] - }, - "appId": { - "type": "string", - "description": "Provider app ID. Max length: 256 chars.", - "default": null, - "x-example": "<APP_ID>", - "x-nullable": true - }, - "secret": { + "taxId": { "type": "string", - "description": "Provider secret key. Max length: 512 chars.", - "default": null, - "x-example": "<SECRET>", - "x-nullable": true - }, - "enabled": { - "type": "boolean", - "description": "Provider status. Set to 'false' to disable new session creation.", + "description": "Tax Id associated to billing.", "default": null, - "x-example": false, - "x-nullable": true + "x-example": "<TAX_ID>" } }, "required": [ - "provider" + "taxId" ] } } ] } }, - "\/projects\/{projectId}\/platforms": { + "\/organizations\/{organizationId}\/usage": { "get": { - "summary": "List platforms", - "operationId": "projectsListPlatforms", + "summary": "Get team's usage data", + "operationId": "organizationsGetUsage", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "projects" + "organizations" ], - "description": "Get a list of all platforms in the project. This endpoint returns an array of all platforms and their configurations. ", + "description": "Get the usage data for an organization.", "responses": { "200": { - "description": "Platforms List", + "description": "UsageOrganization", "schema": { - "$ref": "#\/definitions\/platformList" + "$ref": "#\/definitions\/usageOrganization" } } }, "deprecated": false, "x-appwrite": { - "method": "listPlatforms", - "group": "platforms", - "weight": 87, + "method": "getUsage", + "group": null, + "weight": 717, "cookies": false, "type": "", - "demo": "projects\/list-platforms.md", + "demo": "organizations\/get-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.read", + "scope": "teams.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/list-platforms.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/get-usage.md", "auth": { "Project": [] } @@ -40188,27 +40084,34 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "type": "string", - "x-example": "<PROJECT_ID>", + "x-example": "<ORGANIZATION_ID>", "in": "path" }, { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "name": "startDate", + "description": "Starting date for the usage", "required": false, - "type": "boolean", - "x-example": false, - "default": true, + "type": "string", + "in": "query" + }, + { + "name": "endDate", + "description": "End date for the usage", + "required": false, + "type": "string", "in": "query" } ] - }, - "post": { - "summary": "Create platform", - "operationId": "projectsCreatePlatform", + } + }, + "\/organizations\/{organizationId}\/validate": { + "patch": { + "summary": "Validate payment for the organization after creation or upgrade", + "operationId": "organizationsValidatePayment", "consumes": [ "application\/json" ], @@ -40216,35 +40119,35 @@ "application\/json" ], "tags": [ - "projects" + "organizations" ], - "description": "Create a new platform for your project. Use this endpoint to register a new platform where your users will run your application which will interact with the Appwrite API.", + "description": "Validate payment for team after creation or upgrade.", "responses": { - "201": { - "description": "Platform", + "200": { + "description": "Organization", "schema": { - "$ref": "#\/definitions\/platform" + "$ref": "#\/definitions\/organization" } } }, "deprecated": false, "x-appwrite": { - "method": "createPlatform", - "group": "platforms", - "weight": 86, + "method": "validatePayment", + "group": null, + "weight": 739, "cookies": false, "type": "", - "demo": "projects\/create-platform.md", + "demo": "organizations\/validate-payment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.write", + "scope": "teams.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/create-platform.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/organizations\/validate-payment.md", "auth": { "Project": [] } @@ -40256,11 +40159,11 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "organizationId", + "description": "Organization ID", "required": true, "type": "string", - "x-example": "<PROJECT_ID>", + "x-example": "<ORGANIZATION_ID>", "in": "path" }, { @@ -40269,103 +40172,59 @@ "schema": { "type": "object", "properties": { - "type": { - "type": "string", - "description": "Platform type. Possible values are: web, flutter-web, flutter-ios, flutter-android, flutter-linux, flutter-macos, flutter-windows, apple-ios, apple-macos, apple-watchos, apple-tvos, android, unity, react-native-ios, react-native-android.", - "default": null, - "x-example": "web", - "enum": [ - "web", - "flutter-web", - "flutter-ios", - "flutter-android", - "flutter-linux", - "flutter-macos", - "flutter-windows", - "apple-ios", - "apple-macos", - "apple-watchos", - "apple-tvos", - "android", - "unity", - "react-native-ios", - "react-native-android" - ], - "x-enum-name": "PlatformType", - "x-enum-keys": [] - }, - "name": { - "type": "string", - "description": "Platform name. Max length: 128 chars.", - "default": null, - "x-example": "<NAME>" - }, - "key": { - "type": "string", - "description": "Package name for Android or bundle ID for iOS or macOS. Max length: 256 chars.", - "default": "", - "x-example": "<KEY>" - }, - "store": { - "type": "string", - "description": "App store or Google Play store ID. Max length: 256 chars.", - "default": "", - "x-example": "<STORE>" - }, - "hostname": { - "type": "string", - "description": "Platform client hostname. Max length: 256 chars.", - "default": "", - "x-example": null - } - }, - "required": [ - "type", - "name" - ] + "invites": { + "type": "array", + "description": "Additional member invites", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + } + } } } ] } }, - "\/projects\/{projectId}\/platforms\/{platformId}": { + "\/project\/usage": { "get": { - "summary": "Get platform", - "operationId": "projectsGetPlatform", + "summary": "Get project usage stats", + "operationId": "projectGetUsage", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "projects" + "project" ], - "description": "Get a platform by its unique ID. This endpoint returns the platform's details, including its name, type, and key configurations. ", + "description": "Get comprehensive usage statistics for your project. View metrics including network requests, bandwidth, storage, function executions, database usage, and user activity. Specify a time range with startDate and endDate, and optionally set the data granularity with period (1h or 1d). The response includes both total counts and detailed breakdowns by resource, along with historical data over the specified period.", "responses": { "200": { - "description": "Platform", + "description": "UsageProject", "schema": { - "$ref": "#\/definitions\/platform" + "$ref": "#\/definitions\/usageProject" } } }, "deprecated": false, "x-appwrite": { - "method": "getPlatform", - "group": "platforms", - "weight": 88, + "method": "getUsage", + "group": null, + "weight": 625, "cookies": false, "type": "", - "demo": "projects\/get-platform.md", + "demo": "project\/get-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.read", + "scope": "projects.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/get-platform.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/project\/get-usage.md", "auth": { "Project": [] } @@ -40377,62 +40236,78 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "startDate", + "description": "Starting date for the usage", "required": true, "type": "string", - "x-example": "<PROJECT_ID>", - "in": "path" + "in": "query" }, { - "name": "platformId", - "description": "Platform unique ID.", + "name": "endDate", + "description": "End date for the usage", "required": true, "type": "string", - "x-example": "<PLATFORM_ID>", - "in": "path" + "in": "query" + }, + { + "name": "period", + "description": "Period used", + "required": false, + "type": "string", + "x-example": "1h", + "enum": [ + "1h", + "1d" + ], + "x-enum-name": "ProjectUsageRange", + "x-enum-keys": [ + "One Hour", + "One Day" + ], + "default": "1d", + "in": "query" } ] - }, - "put": { - "summary": "Update platform", - "operationId": "projectsUpdatePlatform", - "consumes": [ - "application\/json" - ], + } + }, + "\/project\/variables": { + "get": { + "summary": "List variables", + "operationId": "projectListVariables", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "projects" + "project" ], - "description": "Update a platform by its unique ID. Use this endpoint to update the platform's name, key, platform store ID, or hostname. ", + "description": "Get a list of all project variables. These variables will be accessible in all Appwrite Functions at runtime.", "responses": { "200": { - "description": "Platform", + "description": "Variables List", "schema": { - "$ref": "#\/definitions\/platform" + "$ref": "#\/definitions\/variableList" } } }, "deprecated": false, "x-appwrite": { - "method": "updatePlatform", - "group": "platforms", - "weight": 89, + "method": "listVariables", + "group": null, + "weight": 102, "cookies": false, "type": "", - "demo": "projects\/update-platform.md", + "demo": "project\/list-variables.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.write", + "scope": "projects.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-platform.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/project\/list-variables.md", "auth": { "Project": [] } @@ -40441,96 +40316,47 @@ { "Project": [] } - ], - "parameters": [ - { - "name": "projectId", - "description": "Project unique ID.", - "required": true, - "type": "string", - "x-example": "<PROJECT_ID>", - "in": "path" - }, - { - "name": "platformId", - "description": "Platform unique ID.", - "required": true, - "type": "string", - "x-example": "<PLATFORM_ID>", - "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Platform name. Max length: 128 chars.", - "default": null, - "x-example": "<NAME>" - }, - "key": { - "type": "string", - "description": "Package name for android or bundle ID for iOS. Max length: 256 chars.", - "default": "", - "x-example": "<KEY>" - }, - "store": { - "type": "string", - "description": "App store or Google Play store ID. Max length: 256 chars.", - "default": "", - "x-example": "<STORE>" - }, - "hostname": { - "type": "string", - "description": "Platform client URL. Max length: 256 chars.", - "default": "", - "x-example": null - } - }, - "required": [ - "name" - ] - } - } ] }, - "delete": { - "summary": "Delete platform", - "operationId": "projectsDeletePlatform", + "post": { + "summary": "Create variable", + "operationId": "projectCreateVariable", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ - "projects" + "project" ], - "description": "Delete a platform by its unique ID. This endpoint removes the platform and all its configurations from the project. ", + "description": "Create a new project variable. This variable will be accessible in all Appwrite Functions at runtime.", "responses": { - "204": { - "description": "No content" + "201": { + "description": "Variable", + "schema": { + "$ref": "#\/definitions\/variable" + } } }, "deprecated": false, "x-appwrite": { - "method": "deletePlatform", - "group": "platforms", - "weight": 90, + "method": "createVariable", + "group": null, + "weight": 101, "cookies": false, "type": "", - "demo": "projects\/delete-platform.md", + "demo": "project\/create-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "platforms.write", + "scope": "projects.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/delete-platform.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/project\/create-variable.md", "auth": { "Project": [] } @@ -40542,62 +40368,77 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", - "required": true, - "type": "string", - "x-example": "<PROJECT_ID>", - "in": "path" - }, - { - "name": "platformId", - "description": "Platform unique ID.", - "required": true, - "type": "string", - "x-example": "<PLATFORM_ID>", - "in": "path" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Variable key. Max length: 255 chars.", + "default": null, + "x-example": "<KEY>" + }, + "value": { + "type": "string", + "description": "Variable value. Max length: 8192 chars.", + "default": null, + "x-example": "<VALUE>" + }, + "secret": { + "type": "boolean", + "description": "Secret variables can be updated or deleted, but only projects can read them during build and runtime.", + "default": true, + "x-example": false + } + }, + "required": [ + "key", + "value" + ] + } } ] } }, - "\/projects\/{projectId}\/schedules": { + "\/project\/variables\/{variableId}": { "get": { - "summary": "List schedules", - "operationId": "projectsListSchedules", + "summary": "Get variable", + "operationId": "projectGetVariable", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "projects" + "project" ], - "description": "Get a list of all the project's schedules. You can use the query params to filter your results.", + "description": "Get a project variable by its unique ID.", "responses": { "200": { - "description": "Schedules List", + "description": "Variable", "schema": { - "$ref": "#\/definitions\/scheduleList" + "$ref": "#\/definitions\/variable" } } }, "deprecated": false, "x-appwrite": { - "method": "listSchedules", - "group": "schedules", - "weight": 419, + "method": "getVariable", + "group": null, + "weight": 103, "cookies": false, "type": "", - "demo": "projects\/list-schedules.md", + "demo": "project\/get-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "schedules.read", + "scope": "projects.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/list-schedules.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/project\/get-variable.md", "auth": { "Project": [] } @@ -40609,39 +40450,18 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "variableId", + "description": "Variable unique ID.", "required": true, "type": "string", - "x-example": "<PROJECT_ID>", + "x-example": "<VARIABLE_ID>", "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: resourceType, resourceId, projectId, schedule, active, region", - "required": false, - "type": "array", - "collectionFormat": "multi", - "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, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" } ] }, - "post": { - "summary": "Create schedule", - "operationId": "projectsCreateSchedule", + "put": { + "summary": "Update variable", + "operationId": "projectUpdateVariable", "consumes": [ "application\/json" ], @@ -40649,35 +40469,35 @@ "application\/json" ], "tags": [ - "projects" + "project" ], - "description": "Create a new schedule for a resource.", + "description": "Update project variable by its unique ID. This variable will be accessible in all Appwrite Functions at runtime.", "responses": { - "201": { - "description": "Schedule", + "200": { + "description": "Variable", "schema": { - "$ref": "#\/definitions\/schedule" + "$ref": "#\/definitions\/variable" } } }, "deprecated": false, "x-appwrite": { - "method": "createSchedule", - "group": "schedules", - "weight": 778, + "method": "updateVariable", + "group": null, + "weight": 104, "cookies": false, "type": "", - "demo": "projects\/create-schedule.md", + "demo": "project\/update-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "schedules.write", + "scope": "projects.write", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/create-schedule.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/project\/update-variable.md", "auth": { "Project": [] } @@ -40689,11 +40509,11 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "variableId", + "description": "Variable unique ID.", "required": true, "type": "string", - "x-example": "<PROJECT_ID>", + "x-example": "<VARIABLE_ID>", "in": "path" }, { @@ -40702,59 +40522,93 @@ "schema": { "type": "object", "properties": { - "resourceType": { - "type": "string", - "description": "The resource type for the schedule. Possible values: function, execution, message, backup.", - "default": null, - "x-example": "function", - "enum": [ - "function", - "execution", - "message", - "backup" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "resourceId": { + "key": { "type": "string", - "description": "The resource ID to associate with this schedule.", + "description": "Variable key. Max length: 255 chars.", "default": null, - "x-example": "<RESOURCE_ID>" + "x-example": "<KEY>" }, - "schedule": { + "value": { "type": "string", - "description": "Schedule CRON expression.", + "description": "Variable value. Max length: 8192 chars.", "default": null, - "x-example": null + "x-example": "<VALUE>", + "x-nullable": true }, - "active": { + "secret": { "type": "boolean", - "description": "Whether the schedule is active.", - "default": false, - "x-example": false - }, - "data": { - "type": "object", - "description": "Schedule data as a JSON string. Used to store resource-specific context needed for execution.", - "default": {}, - "x-example": "{}" + "description": "Secret variables can be updated or deleted, but only projects can read them during build and runtime.", + "default": null, + "x-example": false, + "x-nullable": true } }, "required": [ - "resourceType", - "resourceId", - "schedule" + "key" ] } } ] + }, + "delete": { + "summary": "Delete variable", + "operationId": "projectDeleteVariable", + "consumes": [ + "application\/json" + ], + "produces": [], + "tags": [ + "project" + ], + "description": "Delete a project variable by its unique ID. ", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteVariable", + "group": null, + "weight": 105, + "cookies": false, + "type": "", + "demo": "project\/delete-variable.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/project\/delete-variable.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "type": "string", + "x-example": "<VARIABLE_ID>", + "in": "path" + } + ] } }, - "\/projects\/{projectId}\/schedules\/{scheduleId}": { + "\/projects": { "get": { - "summary": "Get schedule", - "operationId": "projectsGetSchedule", + "summary": "List projects", + "operationId": "projectsList", "consumes": [], "produces": [ "application\/json" @@ -40762,33 +40616,32 @@ "tags": [ "projects" ], - "description": "Get a schedule by its unique ID.", + "description": "Get a list of all projects. You can use the query params to filter your results. ", "responses": { "200": { - "description": "Schedule", + "description": "Projects List", "schema": { - "$ref": "#\/definitions\/schedule" + "$ref": "#\/definitions\/projectList" } } }, "deprecated": false, "x-appwrite": { - "method": "getSchedule", - "group": "schedules", - "weight": 418, + "method": "list", + "group": "projects", + "weight": 798, "cookies": false, "type": "", - "demo": "projects\/get-schedule.md", + "demo": "projects\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "schedules.read", + "scope": "projects.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/get-schedule.md", "auth": { "Project": [] } @@ -40800,28 +40653,40 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", - "required": true, - "type": "string", - "x-example": "<PROJECT_ID>", - "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, teamId, labels, search", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" }, { - "name": "scheduleId", - "description": "Schedule ID.", - "required": true, + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, "type": "string", - "x-example": "<SCHEDULE_ID>", - "in": "path" + "x-example": "<SEARCH>", + "default": "", + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" } ] - } - }, - "\/projects\/{projectId}\/service": { - "patch": { - "summary": "Update service status", - "operationId": "projectsUpdateServiceStatus", + }, + "post": { + "summary": "Create project", + "operationId": "projectsCreate", "consumes": [ "application\/json" ], @@ -40831,9 +40696,9 @@ "tags": [ "projects" ], - "description": "Update the status of a specific service. Use this endpoint to enable or disable a service in your project. ", + "description": "Create a new project. You can create a maximum of 100 projects per account. ", "responses": { - "200": { + "201": { "description": "Project", "schema": { "$ref": "#\/definitions\/project" @@ -40842,12 +40707,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateServiceStatus", + "method": "create", "group": "projects", - "weight": 58, + "weight": 796, "cookies": false, "type": "", - "demo": "projects\/update-service-status.md", + "demo": "projects\/create.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -40857,7 +40722,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-service-status.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/create.md", "auth": { "Project": [] } @@ -40868,63 +40733,173 @@ } ], "parameters": [ - { - "name": "projectId", - "description": "Project unique ID.", - "required": true, - "type": "string", - "x-example": "<PROJECT_ID>", - "in": "path" - }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "service": { + "projectId": { "type": "string", - "description": "Service name.", + "description": "Unique Id. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, and hyphen. Can't start with a special char. Max length is 36 chars.", "default": null, - "x-example": "account", - "enum": [ - "account", - "avatars", - "databases", - "tablesdb", - "locale", - "health", - "storage", - "teams", - "users", - "sites", - "functions", - "graphql", - "messaging" + "x-example": null + }, + "name": { + "type": "string", + "description": "Project name. Max length: 128 chars.", + "default": null, + "x-example": "<NAME>" + }, + "teamId": { + "type": "string", + "description": "Team unique ID.", + "default": null, + "x-example": "<TEAM_ID>" + }, + "region": { + "type": "string", + "description": "Project Region.", + "default": "fra", + "x-example": "fra", + "enum": [ + "fra", + "nyc", + "syd", + "sfo", + "sgp", + "tor" ], - "x-enum-name": "ApiService", + "x-enum-name": null, "x-enum-keys": [] }, - "status": { - "type": "boolean", - "description": "Service status.", - "default": null, - "x-example": false + "description": { + "type": "string", + "description": "Project description. Max length: 256 chars.", + "default": "", + "x-example": "<DESCRIPTION>" + }, + "logo": { + "type": "string", + "description": "Project logo.", + "default": "", + "x-example": "<LOGO>" + }, + "url": { + "type": "string", + "description": "Project URL.", + "default": "", + "x-example": "https:\/\/example.com", + "format": "url" + }, + "legalName": { + "type": "string", + "description": "Project legal Name. Max length: 256 chars.", + "default": "", + "x-example": "<LEGAL_NAME>" + }, + "legalCountry": { + "type": "string", + "description": "Project legal Country. Max length: 256 chars.", + "default": "", + "x-example": "<LEGAL_COUNTRY>" + }, + "legalState": { + "type": "string", + "description": "Project legal State. Max length: 256 chars.", + "default": "", + "x-example": "<LEGAL_STATE>" + }, + "legalCity": { + "type": "string", + "description": "Project legal City. Max length: 256 chars.", + "default": "", + "x-example": "<LEGAL_CITY>" + }, + "legalAddress": { + "type": "string", + "description": "Project legal Address. Max length: 256 chars.", + "default": "", + "x-example": "<LEGAL_ADDRESS>" + }, + "legalTaxId": { + "type": "string", + "description": "Project legal Tax ID. Max length: 256 chars.", + "default": "", + "x-example": "<LEGAL_TAX_ID>" } }, "required": [ - "service", - "status" + "projectId", + "name", + "teamId" ] } } ] } }, - "\/projects\/{projectId}\/service\/all": { + "\/projects\/{projectId}": { + "get": { + "summary": "Get project", + "operationId": "projectsGet", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "projects" + ], + "description": "Get a project by its unique ID. This endpoint allows you to retrieve the project's details, including its name, description, team, region, and other metadata. ", + "responses": { + "200": { + "description": "Project", + "schema": { + "$ref": "#\/definitions\/project" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "get", + "group": "projects", + "weight": 57, + "cookies": false, + "type": "", + "demo": "projects\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/get.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "type": "string", + "x-example": "<PROJECT_ID>", + "in": "path" + } + ] + }, "patch": { - "summary": "Update all service status", - "operationId": "projectsUpdateServiceStatusAll", + "summary": "Update project", + "operationId": "projectsUpdate", "consumes": [ "application\/json" ], @@ -40934,7 +40909,7 @@ "tags": [ "projects" ], - "description": "Update the status of all services. Use this endpoint to enable or disable all optional services at once. ", + "description": "Update a project by its unique ID.", "responses": { "200": { "description": "Project", @@ -40945,12 +40920,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateServiceStatusAll", + "method": "update", "group": "projects", - "weight": 59, + "weight": 797, "cookies": false, "type": "", - "demo": "projects\/update-service-status-all.md", + "demo": "projects\/update.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -40960,7 +40935,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-service-status-all.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update.md", "auth": { "Project": [] } @@ -40985,25 +40960,134 @@ "schema": { "type": "object", "properties": { - "status": { - "type": "boolean", - "description": "Service status.", + "name": { + "type": "string", + "description": "Project name. Max length: 128 chars.", "default": null, - "x-example": false + "x-example": "<NAME>" + }, + "description": { + "type": "string", + "description": "Project description. Max length: 256 chars.", + "default": "", + "x-example": "<DESCRIPTION>" + }, + "logo": { + "type": "string", + "description": "Project logo.", + "default": "", + "x-example": "<LOGO>" + }, + "url": { + "type": "string", + "description": "Project URL.", + "default": "", + "x-example": "https:\/\/example.com", + "format": "url" + }, + "legalName": { + "type": "string", + "description": "Project legal name. Max length: 256 chars.", + "default": "", + "x-example": "<LEGAL_NAME>" + }, + "legalCountry": { + "type": "string", + "description": "Project legal country. Max length: 256 chars.", + "default": "", + "x-example": "<LEGAL_COUNTRY>" + }, + "legalState": { + "type": "string", + "description": "Project legal state. Max length: 256 chars.", + "default": "", + "x-example": "<LEGAL_STATE>" + }, + "legalCity": { + "type": "string", + "description": "Project legal city. Max length: 256 chars.", + "default": "", + "x-example": "<LEGAL_CITY>" + }, + "legalAddress": { + "type": "string", + "description": "Project legal address. Max length: 256 chars.", + "default": "", + "x-example": "<LEGAL_ADDRESS>" + }, + "legalTaxId": { + "type": "string", + "description": "Project legal tax ID. Max length: 256 chars.", + "default": "", + "x-example": "<LEGAL_TAX_ID>" } }, "required": [ - "status" + "name" ] } } ] + }, + "delete": { + "summary": "Delete project", + "operationId": "projectsDelete", + "consumes": [ + "application\/json" + ], + "produces": [], + "tags": [ + "projects" + ], + "description": "Delete a project by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "delete", + "group": "projects", + "weight": 73, + "cookies": false, + "type": "", + "demo": "projects\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/delete.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "type": "string", + "x-example": "<PROJECT_ID>", + "in": "path" + } + ] } }, - "\/projects\/{projectId}\/smtp": { + "\/projects\/{projectId}\/api": { "patch": { - "summary": "Update SMTP", - "operationId": "projectsUpdateSmtp", + "summary": "Update API status", + "operationId": "projectsUpdateApiStatus", "consumes": [ "application\/json" ], @@ -41013,7 +41097,7 @@ "tags": [ "projects" ], - "description": "Update the SMTP configuration for your project. Use this endpoint to configure your project's SMTP provider with your custom settings for sending transactional emails. ", + "description": "Update the status of a specific API type. Use this endpoint to enable or disable API types such as REST, GraphQL and Realtime.", "responses": { "200": { "description": "Project", @@ -41024,12 +41108,12 @@ }, "deprecated": true, "x-appwrite": { - "method": "updateSmtp", - "group": "templates", - "weight": 91, + "method": "updateApiStatus", + "group": "projects", + "weight": 60, "cookies": false, "type": "", - "demo": "projects\/update-smtp.md", + "demo": "projects\/update-api-status.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -41039,14 +41123,14 @@ ], "packaging": false, "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-smtp.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-api-status.md", "deprecated": { "since": "1.8.0", - "replaceWith": "projects.updateSMTP" + "replaceWith": "projects.updateAPIStatus" }, "methods": [ { - "name": "updateSmtp", + "name": "updateApiStatus", "namespace": "projects", "desc": "", "auth": { @@ -41054,19 +41138,13 @@ }, "parameters": [ "projectId", - "enabled", - "senderName", - "senderEmail", - "replyTo", - "host", - "port", - "username", - "password", - "secure" + "api", + "status" ], "required": [ "projectId", - "enabled" + "api", + "status" ], "responses": [ { @@ -41074,16 +41152,16 @@ "model": "#\/definitions\/project" } ], - "description": "Update the SMTP configuration for your project. Use this endpoint to configure your project's SMTP provider with your custom settings for sending transactional emails. ", - "demo": "projects\/update-smtp.md", + "description": "Update the status of a specific API type. Use this endpoint to enable or disable API types such as REST, GraphQL and Realtime.", + "demo": "projects\/update-api-status.md", "public": false, "deprecated": { "since": "1.8.0", - "replaceWith": "projects.updateSMTP" + "replaceWith": "projects.updateAPIStatus" } }, { - "name": "updateSMTP", + "name": "updateAPIStatus", "namespace": "projects", "desc": "", "auth": { @@ -41091,19 +41169,13 @@ }, "parameters": [ "projectId", - "enabled", - "senderName", - "senderEmail", - "replyTo", - "host", - "port", - "username", - "password", - "secure" + "api", + "status" ], "required": [ "projectId", - "enabled" + "api", + "status" ], "responses": [ { @@ -41111,8 +41183,8 @@ "model": "#\/definitions\/project" } ], - "description": "Update the SMTP configuration for your project. Use this endpoint to configure your project's SMTP provider with your custom settings for sending transactional emails. ", - "demo": "projects\/update-smtp.md", + "description": "Update the status of a specific API type. Use this endpoint to enable or disable API types such as REST, GraphQL and Realtime.", + "demo": "projects\/update-api-status.md", "public": true } ], @@ -41140,82 +41212,39 @@ "schema": { "type": "object", "properties": { - "enabled": { - "type": "boolean", - "description": "Enable custom SMTP service", - "default": null, - "x-example": false - }, - "senderName": { - "type": "string", - "description": "Name of the email sender", - "default": "", - "x-example": "<SENDER_NAME>" - }, - "senderEmail": { - "type": "string", - "description": "Email of the sender", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, - "replyTo": { - "type": "string", - "description": "Reply to email", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, - "host": { - "type": "string", - "description": "SMTP server host name", - "default": "", - "x-example": null - }, - "port": { - "type": "integer", - "description": "SMTP server port", - "default": 587, - "x-example": null, - "format": "int32" - }, - "username": { - "type": "string", - "description": "SMTP server username", - "default": "", - "x-example": "<USERNAME>" - }, - "password": { - "type": "string", - "description": "SMTP server password", - "default": "", - "x-example": "<PASSWORD>" - }, - "secure": { + "api": { "type": "string", - "description": "Does SMTP server use secure connection", - "default": "", - "x-example": "tls", + "description": "API name.", + "default": null, + "x-example": "rest", "enum": [ - "tls", - "ssl" + "rest", + "graphql", + "realtime" ], - "x-enum-name": "SMTPSecure", + "x-enum-name": null, "x-enum-keys": [] + }, + "status": { + "type": "boolean", + "description": "API status.", + "default": null, + "x-example": false } }, "required": [ - "enabled" + "api", + "status" ] } } ] } }, - "\/projects\/{projectId}\/smtp\/tests": { - "post": { - "summary": "Create SMTP test", - "operationId": "projectsCreateSmtpTest", + "\/projects\/{projectId}\/api\/all": { + "patch": { + "summary": "Update all API status", + "operationId": "projectsUpdateApiStatusAll", "consumes": [ "application\/json" ], @@ -41225,20 +41254,23 @@ "tags": [ "projects" ], - "description": "Send a test email to verify SMTP configuration. ", + "description": "Update the status of all API types. Use this endpoint to enable or disable API types such as REST, GraphQL and Realtime all at once.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Project", + "schema": { + "$ref": "#\/definitions\/project" + } } }, "deprecated": true, "x-appwrite": { - "method": "createSmtpTest", - "group": "templates", - "weight": 92, + "method": "updateApiStatusAll", + "group": "projects", + "weight": 61, "cookies": false, "type": "", - "demo": "projects\/create-smtp-test.md", + "demo": "projects\/update-api-status-all.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -41248,14 +41280,14 @@ ], "packaging": false, "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/create-smtp-test.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-api-status-all.md", "deprecated": { "since": "1.8.0", - "replaceWith": "projects.createSMTPTest" + "replaceWith": "projects.updateAPIStatusAll" }, "methods": [ { - "name": "createSmtpTest", + "name": "updateApiStatusAll", "namespace": "projects", "desc": "", "auth": { @@ -41263,38 +41295,28 @@ }, "parameters": [ "projectId", - "emails", - "senderName", - "senderEmail", - "replyTo", - "host", - "port", - "username", - "password", - "secure" + "status" ], "required": [ "projectId", - "emails", - "senderName", - "senderEmail", - "host" + "status" ], "responses": [ { - "code": 204 + "code": 200, + "model": "#\/definitions\/project" } ], - "description": "Send a test email to verify SMTP configuration. ", - "demo": "projects\/create-smtp-test.md", + "description": "Update the status of all API types. Use this endpoint to enable or disable API types such as REST, GraphQL and Realtime all at once.", + "demo": "projects\/update-api-status-all.md", "public": false, "deprecated": { "since": "1.8.0", - "replaceWith": "projects.createSMTPTest" + "replaceWith": "projects.updateAPIStatusAll" } }, { - "name": "createSMTPTest", + "name": "updateAPIStatusAll", "namespace": "projects", "desc": "", "auth": { @@ -41302,30 +41324,20 @@ }, "parameters": [ "projectId", - "emails", - "senderName", - "senderEmail", - "replyTo", - "host", - "port", - "username", - "password", - "secure" + "status" ], "required": [ "projectId", - "emails", - "senderName", - "senderEmail", - "host" + "status" ], "responses": [ { - "code": 204 + "code": 200, + "model": "#\/definitions\/project" } ], - "description": "Send a test email to verify SMTP configuration. ", - "demo": "projects\/create-smtp-test.md", + "description": "Update the status of all API types. Use this endpoint to enable or disable API types such as REST, GraphQL and Realtime all at once.", + "demo": "projects\/update-api-status-all.md", "public": true } ], @@ -41353,88 +41365,25 @@ "schema": { "type": "object", "properties": { - "emails": { - "type": "array", - "description": "Array of emails to send test email to. Maximum of 10 emails are allowed.", - "default": null, - "x-example": null, - "items": { - "type": "string" - } - }, - "senderName": { - "type": "string", - "description": "Name of the email sender", - "default": null, - "x-example": "<SENDER_NAME>" - }, - "senderEmail": { - "type": "string", - "description": "Email of the sender", - "default": null, - "x-example": "email@example.com", - "format": "email" - }, - "replyTo": { - "type": "string", - "description": "Reply to email", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, - "host": { - "type": "string", - "description": "SMTP server host name", + "status": { + "type": "boolean", + "description": "API status.", "default": null, - "x-example": null - }, - "port": { - "type": "integer", - "description": "SMTP server port", - "default": 587, - "x-example": null, - "format": "int32" - }, - "username": { - "type": "string", - "description": "SMTP server username", - "default": "", - "x-example": "<USERNAME>" - }, - "password": { - "type": "string", - "description": "SMTP server password", - "default": "", - "x-example": "<PASSWORD>" - }, - "secure": { - "type": "string", - "description": "Does SMTP server use secure connection", - "default": "", - "x-example": "tls", - "enum": [ - "tls", - "ssl" - ], - "x-enum-name": "SMTPSecure", - "x-enum-keys": [] + "x-example": false } }, "required": [ - "emails", - "senderName", - "senderEmail", - "host" + "status" ] } } ] } }, - "\/projects\/{projectId}\/team": { + "\/projects\/{projectId}\/auth\/duration": { "patch": { - "summary": "Update project team", - "operationId": "projectsUpdateTeam", + "summary": "Update project authentication duration", + "operationId": "projectsUpdateAuthDuration", "consumes": [ "application\/json" ], @@ -41444,7 +41393,7 @@ "tags": [ "projects" ], - "description": "Update the team ID of a project allowing for it to be transferred to another team.", + "description": "Update how long sessions created within a project should stay active for.", "responses": { "200": { "description": "Project", @@ -41455,12 +41404,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateTeam", - "group": "projects", - "weight": 774, + "method": "updateAuthDuration", + "group": "auth", + "weight": 66, "cookies": false, "type": "", - "demo": "projects\/update-team.md", + "demo": "projects\/update-auth-duration.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -41470,7 +41419,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-team.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-auth-duration.md", "auth": { "Project": [] } @@ -41495,49 +41444,52 @@ "schema": { "type": "object", "properties": { - "teamId": { - "type": "string", - "description": "Team ID of the team to transfer project to.", + "duration": { + "type": "integer", + "description": "Project session length in seconds. Max length: 31536000 seconds.", "default": null, - "x-example": "<TEAM_ID>" + "x-example": 0, + "format": "int32" } }, "required": [ - "teamId" + "duration" ] } } ] } }, - "\/projects\/{projectId}\/templates\/email\/{type}\/{locale}": { - "get": { - "summary": "Get custom email template", - "operationId": "projectsGetEmailTemplate", - "consumes": [], + "\/projects\/{projectId}\/auth\/limit": { + "patch": { + "summary": "Update project users limit", + "operationId": "projectsUpdateAuthLimit", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ "projects" ], - "description": "Get a custom email template for the specified locale and type. This endpoint returns the template content, subject, and other configuration details. ", + "description": "Update the maximum number of users allowed in this project. Set to 0 for unlimited users. ", "responses": { "200": { - "description": "EmailTemplate", + "description": "Project", "schema": { - "$ref": "#\/definitions\/emailTemplate" + "$ref": "#\/definitions\/project" } } }, "deprecated": false, "x-appwrite": { - "method": "getEmailTemplate", - "group": "templates", - "weight": 94, + "method": "updateAuthLimit", + "group": "auth", + "weight": 65, "cookies": false, "type": "", - "demo": "projects\/get-email-template.md", + "demo": "projects\/update-auth-limit.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -41547,7 +41499,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/get-email-template.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-auth-limit.md", "auth": { "Project": [] } @@ -41567,172 +41519,111 @@ "in": "path" }, { - "name": "type", - "description": "Template type", + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "limit": { + "type": "integer", + "description": "Set the max number of users allowed in this project. Use 0 for unlimited.", + "default": null, + "x-example": 0, + "format": "int32" + } + }, + "required": [ + "limit" + ] + } + } + ] + } + }, + "\/projects\/{projectId}\/auth\/max-sessions": { + "patch": { + "summary": "Update project user sessions limit", + "operationId": "projectsUpdateAuthSessionsLimit", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "projects" + ], + "description": "Update the maximum number of sessions allowed per user within the project, if the limit is hit the oldest session will be deleted to make room for new sessions.", + "responses": { + "200": { + "description": "Project", + "schema": { + "$ref": "#\/definitions\/project" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateAuthSessionsLimit", + "group": "auth", + "weight": 71, + "cookies": false, + "type": "", + "demo": "projects\/update-auth-sessions-limit.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-auth-sessions-limit.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", "required": true, "type": "string", - "x-example": "verification", - "enum": [ - "verification", - "magicSession", - "recovery", - "invitation", - "mfaChallenge", - "sessionAlert", - "otpSession" - ], - "x-enum-name": "EmailTemplateType", - "x-enum-keys": [], + "x-example": "<PROJECT_ID>", "in": "path" }, { - "name": "locale", - "description": "Template locale", - "required": true, - "type": "string", - "x-example": "af", - "enum": [ - "af", - "ar-ae", - "ar-bh", - "ar-dz", - "ar-eg", - "ar-iq", - "ar-jo", - "ar-kw", - "ar-lb", - "ar-ly", - "ar-ma", - "ar-om", - "ar-qa", - "ar-sa", - "ar-sy", - "ar-tn", - "ar-ye", - "as", - "az", - "be", - "bg", - "bh", - "bn", - "bs", - "ca", - "cs", - "cy", - "da", - "de", - "de-at", - "de-ch", - "de-li", - "de-lu", - "el", - "en", - "en-au", - "en-bz", - "en-ca", - "en-gb", - "en-ie", - "en-jm", - "en-nz", - "en-tt", - "en-us", - "en-za", - "eo", - "es", - "es-ar", - "es-bo", - "es-cl", - "es-co", - "es-cr", - "es-do", - "es-ec", - "es-gt", - "es-hn", - "es-mx", - "es-ni", - "es-pa", - "es-pe", - "es-pr", - "es-py", - "es-sv", - "es-uy", - "es-ve", - "et", - "eu", - "fa", - "fi", - "fo", - "fr", - "fr-be", - "fr-ca", - "fr-ch", - "fr-lu", - "ga", - "gd", - "he", - "hi", - "hr", - "hu", - "id", - "is", - "it", - "it-ch", - "ja", - "ji", - "ko", - "ku", - "lt", - "lv", - "mk", - "ml", - "ms", - "mt", - "nb", - "ne", - "nl", - "nl-be", - "nn", - "no", - "pa", - "pl", - "pt", - "pt-br", - "rm", - "ro", - "ro-md", - "ru", - "ru-md", - "sb", - "sk", - "sl", - "sq", - "sr", - "sv", - "sv-fi", - "th", - "tn", - "tr", - "ts", - "ua", - "ur", - "ve", - "vi", - "xh", - "zh-cn", - "zh-hk", - "zh-sg", - "zh-tw", - "zu" - ], - "x-enum-name": "EmailTemplateLocale", - "x-enum-keys": [], - "in": "path" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "limit": { + "type": "integer", + "description": "Set the max number of users allowed in this project. Value allowed is between 1-100. Default is 10", + "default": null, + "x-example": 1, + "format": "int32" + } + }, + "required": [ + "limit" + ] + } } ] - }, + } + }, + "\/projects\/{projectId}\/auth\/memberships-privacy": { "patch": { - "summary": "Update custom email templates", - "operationId": "projectsUpdateEmailTemplate", + "summary": "Update project memberships privacy attributes", + "operationId": "projectsUpdateMembershipsPrivacy", "consumes": [ "application\/json" ], @@ -41742,23 +41633,23 @@ "tags": [ "projects" ], - "description": "Update a custom email template for the specified locale and type. Use this endpoint to modify the content of your email templates.", + "description": "Update project membership privacy settings. Use this endpoint to control what user information is visible to other team members, such as user name, email, and MFA status. ", "responses": { "200": { - "description": "EmailTemplate", + "description": "Project", "schema": { - "$ref": "#\/definitions\/emailTemplate" + "$ref": "#\/definitions\/project" } } }, "deprecated": false, "x-appwrite": { - "method": "updateEmailTemplate", - "group": "templates", - "weight": 96, + "method": "updateMembershipsPrivacy", + "group": "auth", + "weight": 64, "cookies": false, "type": "", - "demo": "projects\/update-email-template.md", + "demo": "projects\/update-memberships-privacy.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -41768,7 +41659,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-email-template.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-memberships-privacy.md", "auth": { "Project": [] } @@ -41788,165 +41679,96 @@ "in": "path" }, { - "name": "type", - "description": "Template type", + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "userName": { + "type": "boolean", + "description": "Set to true to show userName to members of a team.", + "default": null, + "x-example": false + }, + "userEmail": { + "type": "boolean", + "description": "Set to true to show email to members of a team.", + "default": null, + "x-example": false + }, + "mfa": { + "type": "boolean", + "description": "Set to true to show mfa to members of a team.", + "default": null, + "x-example": false + } + }, + "required": [ + "userName", + "userEmail", + "mfa" + ] + } + } + ] + } + }, + "\/projects\/{projectId}\/auth\/mock-numbers": { + "patch": { + "summary": "Update the mock numbers for the project", + "operationId": "projectsUpdateMockNumbers", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "projects" + ], + "description": "Update the list of mock phone numbers for testing. Use these numbers to bypass SMS verification in development. ", + "responses": { + "200": { + "description": "Project", + "schema": { + "$ref": "#\/definitions\/project" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateMockNumbers", + "group": "auth", + "weight": 72, + "cookies": false, + "type": "", + "demo": "projects\/update-mock-numbers.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-mock-numbers.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", "required": true, "type": "string", - "x-example": "verification", - "enum": [ - "verification", - "magicSession", - "recovery", - "invitation", - "mfaChallenge", - "sessionAlert", - "otpSession" - ], - "x-enum-name": "EmailTemplateType", - "x-enum-keys": [], - "in": "path" - }, - { - "name": "locale", - "description": "Template locale", - "required": true, - "type": "string", - "x-example": "af", - "enum": [ - "af", - "ar-ae", - "ar-bh", - "ar-dz", - "ar-eg", - "ar-iq", - "ar-jo", - "ar-kw", - "ar-lb", - "ar-ly", - "ar-ma", - "ar-om", - "ar-qa", - "ar-sa", - "ar-sy", - "ar-tn", - "ar-ye", - "as", - "az", - "be", - "bg", - "bh", - "bn", - "bs", - "ca", - "cs", - "cy", - "da", - "de", - "de-at", - "de-ch", - "de-li", - "de-lu", - "el", - "en", - "en-au", - "en-bz", - "en-ca", - "en-gb", - "en-ie", - "en-jm", - "en-nz", - "en-tt", - "en-us", - "en-za", - "eo", - "es", - "es-ar", - "es-bo", - "es-cl", - "es-co", - "es-cr", - "es-do", - "es-ec", - "es-gt", - "es-hn", - "es-mx", - "es-ni", - "es-pa", - "es-pe", - "es-pr", - "es-py", - "es-sv", - "es-uy", - "es-ve", - "et", - "eu", - "fa", - "fi", - "fo", - "fr", - "fr-be", - "fr-ca", - "fr-ch", - "fr-lu", - "ga", - "gd", - "he", - "hi", - "hr", - "hu", - "id", - "is", - "it", - "it-ch", - "ja", - "ji", - "ko", - "ku", - "lt", - "lv", - "mk", - "ml", - "ms", - "mt", - "nb", - "ne", - "nl", - "nl-be", - "nn", - "no", - "pa", - "pl", - "pt", - "pt-br", - "rm", - "ro", - "ro-md", - "ru", - "ru-md", - "sb", - "sk", - "sl", - "sq", - "sr", - "sv", - "sv-fi", - "th", - "tn", - "tr", - "ts", - "ua", - "ur", - "ve", - "vi", - "xh", - "zh-cn", - "zh-hk", - "zh-sg", - "zh-tw", - "zu" - ], - "x-enum-name": "EmailTemplateLocale", - "x-enum-keys": [], + "x-example": "<PROJECT_ID>", "in": "path" }, { @@ -41955,50 +41777,28 @@ "schema": { "type": "object", "properties": { - "subject": { - "type": "string", - "description": "Email Subject", - "default": null, - "x-example": "<SUBJECT>" - }, - "message": { - "type": "string", - "description": "Template message", + "numbers": { + "type": "array", + "description": "An array of mock numbers and their corresponding verification codes (OTPs). Each number should be a valid E.164 formatted phone number. Maximum of 10 numbers are allowed.", "default": null, - "x-example": "<MESSAGE>" - }, - "senderName": { - "type": "string", - "description": "Name of the email sender", - "default": "", - "x-example": "<SENDER_NAME>" - }, - "senderEmail": { - "type": "string", - "description": "Email of the sender", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, - "replyTo": { - "type": "string", - "description": "Reply to email", - "default": "", - "x-example": "email@example.com", - "format": "email" + "x-example": null, + "items": { + "type": "object" + } } }, "required": [ - "subject", - "message" + "numbers" ] } } ] - }, - "delete": { - "summary": "Delete custom email template", - "operationId": "projectsDeleteEmailTemplate", + } + }, + "\/projects\/{projectId}\/auth\/password-dictionary": { + "patch": { + "summary": "Update authentication password dictionary status. Use this endpoint to enable or disable the dicitonary check for user password", + "operationId": "projectsUpdateAuthPasswordDictionary", "consumes": [ "application\/json" ], @@ -42008,23 +41808,23 @@ "tags": [ "projects" ], - "description": "Reset a custom email template to its default value. This endpoint removes any custom content and restores the template to its original state. ", + "description": "Enable or disable checking user passwords against common passwords dictionary. This helps ensure users don't use common and insecure passwords. ", "responses": { "200": { - "description": "EmailTemplate", + "description": "Project", "schema": { - "$ref": "#\/definitions\/emailTemplate" + "$ref": "#\/definitions\/project" } } }, "deprecated": false, "x-appwrite": { - "method": "deleteEmailTemplate", - "group": "templates", - "weight": 98, + "method": "updateAuthPasswordDictionary", + "group": "auth", + "weight": 69, "cookies": false, "type": "", - "demo": "projects\/delete-email-template.md", + "demo": "projects\/update-auth-password-dictionary.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -42034,7 +41834,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/delete-email-template.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-auth-password-dictionary.md", "auth": { "Project": [] } @@ -42054,198 +41854,56 @@ "in": "path" }, { - "name": "type", - "description": "Template type", - "required": true, - "type": "string", - "x-example": "verification", - "enum": [ - "verification", - "magicSession", - "recovery", - "invitation", - "mfaChallenge", - "sessionAlert", - "otpSession" - ], - "x-enum-name": "EmailTemplateType", - "x-enum-keys": [], - "in": "path" - }, - { - "name": "locale", - "description": "Template locale", - "required": true, - "type": "string", - "x-example": "af", - "enum": [ - "af", - "ar-ae", - "ar-bh", - "ar-dz", - "ar-eg", - "ar-iq", - "ar-jo", - "ar-kw", - "ar-lb", - "ar-ly", - "ar-ma", - "ar-om", - "ar-qa", - "ar-sa", - "ar-sy", - "ar-tn", - "ar-ye", - "as", - "az", - "be", - "bg", - "bh", - "bn", - "bs", - "ca", - "cs", - "cy", - "da", - "de", - "de-at", - "de-ch", - "de-li", - "de-lu", - "el", - "en", - "en-au", - "en-bz", - "en-ca", - "en-gb", - "en-ie", - "en-jm", - "en-nz", - "en-tt", - "en-us", - "en-za", - "eo", - "es", - "es-ar", - "es-bo", - "es-cl", - "es-co", - "es-cr", - "es-do", - "es-ec", - "es-gt", - "es-hn", - "es-mx", - "es-ni", - "es-pa", - "es-pe", - "es-pr", - "es-py", - "es-sv", - "es-uy", - "es-ve", - "et", - "eu", - "fa", - "fi", - "fo", - "fr", - "fr-be", - "fr-ca", - "fr-ch", - "fr-lu", - "ga", - "gd", - "he", - "hi", - "hr", - "hu", - "id", - "is", - "it", - "it-ch", - "ja", - "ji", - "ko", - "ku", - "lt", - "lv", - "mk", - "ml", - "ms", - "mt", - "nb", - "ne", - "nl", - "nl-be", - "nn", - "no", - "pa", - "pl", - "pt", - "pt-br", - "rm", - "ro", - "ro-md", - "ru", - "ru-md", - "sb", - "sk", - "sl", - "sq", - "sr", - "sv", - "sv-fi", - "th", - "tn", - "tr", - "ts", - "ua", - "ur", - "ve", - "vi", - "xh", - "zh-cn", - "zh-hk", - "zh-sg", - "zh-tw", - "zu" - ], - "x-enum-name": "EmailTemplateLocale", - "x-enum-keys": [], - "in": "path" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Set whether or not to enable checking user's password against most commonly used passwords. Default is false.", + "default": null, + "x-example": false + } + }, + "required": [ + "enabled" + ] + } } ] } }, - "\/projects\/{projectId}\/templates\/sms\/{type}\/{locale}": { - "get": { - "summary": "Get custom SMS template", - "operationId": "projectsGetSmsTemplate", - "consumes": [], + "\/projects\/{projectId}\/auth\/password-history": { + "patch": { + "summary": "Update authentication password history. Use this endpoint to set the number of password history to save and 0 to disable password history.", + "operationId": "projectsUpdateAuthPasswordHistory", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ "projects" ], - "description": "Get a custom SMS template for the specified locale and type returning it's contents.", + "description": "Update the authentication password history requirement. Use this endpoint to require new passwords to be different than the last X amount of previously used ones.", "responses": { "200": { - "description": "SmsTemplate", + "description": "Project", "schema": { - "$ref": "#\/definitions\/smsTemplate" + "$ref": "#\/definitions\/project" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "getSmsTemplate", - "group": "templates", - "weight": 93, + "method": "updateAuthPasswordHistory", + "group": "auth", + "weight": 68, "cookies": false, "type": "", - "demo": "projects\/get-sms-template.md", + "demo": "projects\/update-auth-password-history.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -42254,72 +41912,8 @@ "console" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/get-sms-template.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "projects.getSMSTemplate" - }, - "methods": [ - { - "name": "getSmsTemplate", - "namespace": "projects", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "projectId", - "type", - "locale" - ], - "required": [ - "projectId", - "type", - "locale" - ], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/smsTemplate" - } - ], - "description": "Get a custom SMS template for the specified locale and type returning it's contents.", - "demo": "projects\/get-sms-template.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "projects.getSMSTemplate" - } - }, - { - "name": "getSMSTemplate", - "namespace": "projects", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "projectId", - "type", - "locale" - ], - "required": [ - "projectId", - "type", - "locale" - ], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/smsTemplate" - } - ], - "description": "Get a custom SMS template for the specified locale and type returning it's contents.", - "demo": "projects\/get-sms-template.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-auth-password-history.md", "auth": { "Project": [] } @@ -42339,169 +41933,31 @@ "in": "path" }, { - "name": "type", - "description": "Template type", - "required": true, - "type": "string", - "x-example": "verification", - "enum": [ - "verification", - "login", - "invitation", - "mfaChallenge" - ], - "x-enum-name": "SmsTemplateType", - "x-enum-keys": [], - "in": "path" - }, - { - "name": "locale", - "description": "Template locale", - "required": true, - "type": "string", - "x-example": "af", - "enum": [ - "af", - "ar-ae", - "ar-bh", - "ar-dz", - "ar-eg", - "ar-iq", - "ar-jo", - "ar-kw", - "ar-lb", - "ar-ly", - "ar-ma", - "ar-om", - "ar-qa", - "ar-sa", - "ar-sy", - "ar-tn", - "ar-ye", - "as", - "az", - "be", - "bg", - "bh", - "bn", - "bs", - "ca", - "cs", - "cy", - "da", - "de", - "de-at", - "de-ch", - "de-li", - "de-lu", - "el", - "en", - "en-au", - "en-bz", - "en-ca", - "en-gb", - "en-ie", - "en-jm", - "en-nz", - "en-tt", - "en-us", - "en-za", - "eo", - "es", - "es-ar", - "es-bo", - "es-cl", - "es-co", - "es-cr", - "es-do", - "es-ec", - "es-gt", - "es-hn", - "es-mx", - "es-ni", - "es-pa", - "es-pe", - "es-pr", - "es-py", - "es-sv", - "es-uy", - "es-ve", - "et", - "eu", - "fa", - "fi", - "fo", - "fr", - "fr-be", - "fr-ca", - "fr-ch", - "fr-lu", - "ga", - "gd", - "he", - "hi", - "hr", - "hu", - "id", - "is", - "it", - "it-ch", - "ja", - "ji", - "ko", - "ku", - "lt", - "lv", - "mk", - "ml", - "ms", - "mt", - "nb", - "ne", - "nl", - "nl-be", - "nn", - "no", - "pa", - "pl", - "pt", - "pt-br", - "rm", - "ro", - "ro-md", - "ru", - "ru-md", - "sb", - "sk", - "sl", - "sq", - "sr", - "sv", - "sv-fi", - "th", - "tn", - "tr", - "ts", - "ua", - "ur", - "ve", - "vi", - "xh", - "zh-cn", - "zh-hk", - "zh-sg", - "zh-tw", - "zu" - ], - "x-enum-name": "SmsTemplateLocale", - "x-enum-keys": [], - "in": "path" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "limit": { + "type": "integer", + "description": "Set the max number of passwords to store in user history. User can't choose a new password that is already stored in the password history list. Max number of passwords allowed in history is20. Default value is 0", + "default": null, + "x-example": 0, + "format": "int32" + } + }, + "required": [ + "limit" + ] + } } ] - }, + } + }, + "\/projects\/{projectId}\/auth\/personal-data": { "patch": { - "summary": "Update custom SMS template", - "operationId": "projectsUpdateSmsTemplate", + "summary": "Update personal data check", + "operationId": "projectsUpdatePersonalDataCheck", "consumes": [ "application\/json" ], @@ -42511,23 +41967,23 @@ "tags": [ "projects" ], - "description": "Update a custom SMS template for the specified locale and type. Use this endpoint to modify the content of your SMS templates. ", + "description": "Enable or disable checking user passwords against their personal data. This helps prevent users from using personal information in their passwords. ", "responses": { "200": { - "description": "SmsTemplate", + "description": "Project", "schema": { - "$ref": "#\/definitions\/smsTemplate" + "$ref": "#\/definitions\/project" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateSmsTemplate", - "group": "templates", - "weight": 95, + "method": "updatePersonalDataCheck", + "group": "auth", + "weight": 70, "cookies": false, "type": "", - "demo": "projects\/update-sms-template.md", + "demo": "projects\/update-personal-data-check.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -42536,76 +41992,8 @@ "console" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-sms-template.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "projects.updateSMSTemplate" - }, - "methods": [ - { - "name": "updateSmsTemplate", - "namespace": "projects", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "projectId", - "type", - "locale", - "message" - ], - "required": [ - "projectId", - "type", - "locale", - "message" - ], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/smsTemplate" - } - ], - "description": "Update a custom SMS template for the specified locale and type. Use this endpoint to modify the content of your SMS templates. ", - "demo": "projects\/update-sms-template.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "projects.updateSMSTemplate" - } - }, - { - "name": "updateSMSTemplate", - "namespace": "projects", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "projectId", - "type", - "locale", - "message" - ], - "required": [ - "projectId", - "type", - "locale", - "message" - ], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/smsTemplate" - } - ], - "description": "Update a custom SMS template for the specified locale and type. Use this endpoint to modify the content of your SMS templates. ", - "demo": "projects\/update-sms-template.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-personal-data-check.md", "auth": { "Project": [] } @@ -42624,188 +42012,31 @@ "x-example": "<PROJECT_ID>", "in": "path" }, - { - "name": "type", - "description": "Template type", - "required": true, - "type": "string", - "x-example": "verification", - "enum": [ - "verification", - "login", - "invitation", - "mfaChallenge" - ], - "x-enum-name": "SmsTemplateType", - "x-enum-keys": [], - "in": "path" - }, - { - "name": "locale", - "description": "Template locale", - "required": true, - "type": "string", - "x-example": "af", - "enum": [ - "af", - "ar-ae", - "ar-bh", - "ar-dz", - "ar-eg", - "ar-iq", - "ar-jo", - "ar-kw", - "ar-lb", - "ar-ly", - "ar-ma", - "ar-om", - "ar-qa", - "ar-sa", - "ar-sy", - "ar-tn", - "ar-ye", - "as", - "az", - "be", - "bg", - "bh", - "bn", - "bs", - "ca", - "cs", - "cy", - "da", - "de", - "de-at", - "de-ch", - "de-li", - "de-lu", - "el", - "en", - "en-au", - "en-bz", - "en-ca", - "en-gb", - "en-ie", - "en-jm", - "en-nz", - "en-tt", - "en-us", - "en-za", - "eo", - "es", - "es-ar", - "es-bo", - "es-cl", - "es-co", - "es-cr", - "es-do", - "es-ec", - "es-gt", - "es-hn", - "es-mx", - "es-ni", - "es-pa", - "es-pe", - "es-pr", - "es-py", - "es-sv", - "es-uy", - "es-ve", - "et", - "eu", - "fa", - "fi", - "fo", - "fr", - "fr-be", - "fr-ca", - "fr-ch", - "fr-lu", - "ga", - "gd", - "he", - "hi", - "hr", - "hu", - "id", - "is", - "it", - "it-ch", - "ja", - "ji", - "ko", - "ku", - "lt", - "lv", - "mk", - "ml", - "ms", - "mt", - "nb", - "ne", - "nl", - "nl-be", - "nn", - "no", - "pa", - "pl", - "pt", - "pt-br", - "rm", - "ro", - "ro-md", - "ru", - "ru-md", - "sb", - "sk", - "sl", - "sq", - "sr", - "sv", - "sv-fi", - "th", - "tn", - "tr", - "ts", - "ua", - "ur", - "ve", - "vi", - "xh", - "zh-cn", - "zh-hk", - "zh-sg", - "zh-tw", - "zu" - ], - "x-enum-name": "SmsTemplateLocale", - "x-enum-keys": [], - "in": "path" - }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "message": { - "type": "string", - "description": "Template message", + "enabled": { + "type": "boolean", + "description": "Set whether or not to check a password for similarity with personal data. Default is false.", "default": null, - "x-example": "<MESSAGE>" + "x-example": false } }, "required": [ - "message" + "enabled" ] } } ] - }, - "delete": { - "summary": "Reset custom SMS template", - "operationId": "projectsDeleteSmsTemplate", + } + }, + "\/projects\/{projectId}\/auth\/session-alerts": { + "patch": { + "summary": "Update project sessions emails", + "operationId": "projectsUpdateSessionAlerts", "consumes": [ "application\/json" ], @@ -42815,23 +42046,23 @@ "tags": [ "projects" ], - "description": "Reset a custom SMS template to its default value. This endpoint removes any custom message and restores the template to its original state. ", + "description": "Enable or disable session email alerts. When enabled, users will receive email notifications when new sessions are created.", "responses": { "200": { - "description": "SmsTemplate", + "description": "Project", "schema": { - "$ref": "#\/definitions\/smsTemplate" + "$ref": "#\/definitions\/project" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "deleteSmsTemplate", - "group": "templates", - "weight": 97, + "method": "updateSessionAlerts", + "group": "auth", + "weight": 63, "cookies": false, "type": "", - "demo": "projects\/delete-sms-template.md", + "demo": "projects\/update-session-alerts.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -42840,72 +42071,8 @@ "console" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/delete-sms-template.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "projects.deleteSMSTemplate" - }, - "methods": [ - { - "name": "deleteSmsTemplate", - "namespace": "projects", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "projectId", - "type", - "locale" - ], - "required": [ - "projectId", - "type", - "locale" - ], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/smsTemplate" - } - ], - "description": "Reset a custom SMS template to its default value. This endpoint removes any custom message and restores the template to its original state. ", - "demo": "projects\/delete-sms-template.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "projects.deleteSMSTemplate" - } - }, - { - "name": "deleteSMSTemplate", - "namespace": "projects", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "projectId", - "type", - "locale" - ], - "required": [ - "projectId", - "type", - "locale" - ], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/smsTemplate" - } - ], - "description": "Reset a custom SMS template to its default value. This endpoint removes any custom message and restores the template to its original state. ", - "demo": "projects\/delete-sms-template.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-session-alerts.md", "auth": { "Project": [] } @@ -42925,205 +42092,7962 @@ "in": "path" }, { - "name": "type", - "description": "Template type", - "required": true, - "type": "string", - "x-example": "verification", - "enum": [ - "verification", - "login", - "invitation", - "mfaChallenge" - ], - "x-enum-name": "SmsTemplateType", - "x-enum-keys": [], - "in": "path" - }, - { - "name": "locale", - "description": "Template locale", - "required": true, + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "alerts": { + "type": "boolean", + "description": "Set to true to enable session emails.", + "default": null, + "x-example": false + } + }, + "required": [ + "alerts" + ] + } + } + ] + } + }, + "\/projects\/{projectId}\/auth\/session-invalidation": { + "patch": { + "summary": "Update invalidate session option of the project", + "operationId": "projectsUpdateSessionInvalidation", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "projects" + ], + "description": "Invalidate all existing sessions. An optional auth security setting for projects, and enabled by default for console project.", + "responses": { + "200": { + "description": "Project", + "schema": { + "$ref": "#\/definitions\/project" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateSessionInvalidation", + "group": "auth", + "weight": 99, + "cookies": false, + "type": "", + "demo": "projects\/update-session-invalidation.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-session-invalidation.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "type": "string", + "x-example": "<PROJECT_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Update authentication session invalidation status. Use this endpoint to enable or disable session invalidation on password change", + "default": null, + "x-example": false + } + }, + "required": [ + "enabled" + ] + } + } + ] + } + }, + "\/projects\/{projectId}\/auth\/{method}": { + "patch": { + "summary": "Update project auth method status. Use this endpoint to enable or disable a given auth method for this project.", + "operationId": "projectsUpdateAuthStatus", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "projects" + ], + "description": "Update the status of a specific authentication method. Use this endpoint to enable or disable different authentication methods such as email, magic urls or sms in your project. ", + "responses": { + "200": { + "description": "Project", + "schema": { + "$ref": "#\/definitions\/project" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateAuthStatus", + "group": "auth", + "weight": 67, + "cookies": false, + "type": "", + "demo": "projects\/update-auth-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-auth-status.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "type": "string", + "x-example": "<PROJECT_ID>", + "in": "path" + }, + { + "name": "method", + "description": "Auth Method. Possible values: email-password,magic-url,email-otp,anonymous,invites,jwt,phone", + "required": true, + "type": "string", + "x-example": "email-password", + "enum": [ + "email-password", + "magic-url", + "email-otp", + "anonymous", + "invites", + "jwt", + "phone" + ], + "x-enum-name": "AuthMethod", + "x-enum-keys": [], + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "status": { + "type": "boolean", + "description": "Set the status of this auth method.", + "default": null, + "x-example": false + } + }, + "required": [ + "status" + ] + } + } + ] + } + }, + "\/projects\/{projectId}\/console-access": { + "patch": { + "summary": "Record console access to a project", + "operationId": "projectsUpdateConsoleAccess", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "projects" + ], + "description": "Record console access to a project. This endpoint updates the last accessed timestamp for the project to track console activity.\n", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateConsoleAccess", + "group": null, + "weight": 793, + "cookies": false, + "type": "", + "demo": "projects\/update-console-access.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/projects\/update-console-access.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project ID", + "required": true, + "type": "string", + "x-example": "<PROJECT_ID>", + "in": "path" + } + ] + } + }, + "\/projects\/{projectId}\/dev-keys": { + "get": { + "summary": "List dev keys", + "operationId": "projectsListDevKeys", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "projects" + ], + "description": "List all the project\\'s dev keys. Dev keys are project specific and allow you to bypass rate limits and get better error logging during development.'", + "responses": { + "200": { + "description": "Dev Keys List", + "schema": { + "$ref": "#\/definitions\/devKeyList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listDevKeys", + "group": "devKeys", + "weight": 464, + "cookies": false, + "type": "", + "demo": "projects\/list-dev-keys.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "devKeys.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "type": "string", + "x-example": "<PROJECT_ID>", + "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: accessedAt, expire", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + } + ] + }, + "post": { + "summary": "Create dev key", + "operationId": "projectsCreateDevKey", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "projects" + ], + "description": "Create a new project dev key. Dev keys are project specific and allow you to bypass rate limits and get better error logging during development. Strictly meant for development purposes only.", + "responses": { + "201": { + "description": "DevKey", + "schema": { + "$ref": "#\/definitions\/devKey" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createDevKey", + "group": "devKeys", + "weight": 461, + "cookies": false, + "type": "", + "demo": "projects\/create-dev-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "devKeys.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "type": "string", + "x-example": "<PROJECT_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Key name. Max length: 128 chars.", + "default": null, + "x-example": "<NAME>" + }, + "expire": { + "type": "string", + "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format.", + "default": null, + "x-example": null + } + }, + "required": [ + "name", + "expire" + ] + } + } + ] + } + }, + "\/projects\/{projectId}\/dev-keys\/{keyId}": { + "get": { + "summary": "Get dev key", + "operationId": "projectsGetDevKey", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "projects" + ], + "description": "Get a project\\'s dev key by its unique ID. Dev keys are project specific and allow you to bypass rate limits and get better error logging during development.", + "responses": { + "200": { + "description": "DevKey", + "schema": { + "$ref": "#\/definitions\/devKey" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getDevKey", + "group": "devKeys", + "weight": 463, + "cookies": false, + "type": "", + "demo": "projects\/get-dev-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "devKeys.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "type": "string", + "x-example": "<PROJECT_ID>", + "in": "path" + }, + { + "name": "keyId", + "description": "Key unique ID.", + "required": true, + "type": "string", + "x-example": "<KEY_ID>", + "in": "path" + } + ] + }, + "put": { + "summary": "Update dev key", + "operationId": "projectsUpdateDevKey", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "projects" + ], + "description": "Update a project\\'s dev key by its unique ID. Use this endpoint to update a project\\'s dev key name or expiration time.'", + "responses": { + "200": { + "description": "DevKey", + "schema": { + "$ref": "#\/definitions\/devKey" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateDevKey", + "group": "devKeys", + "weight": 462, + "cookies": false, + "type": "", + "demo": "projects\/update-dev-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "devKeys.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "type": "string", + "x-example": "<PROJECT_ID>", + "in": "path" + }, + { + "name": "keyId", + "description": "Key unique ID.", + "required": true, + "type": "string", + "x-example": "<KEY_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Key name. Max length: 128 chars.", + "default": null, + "x-example": "<NAME>" + }, + "expire": { + "type": "string", + "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format.", + "default": null, + "x-example": null + } + }, + "required": [ + "name", + "expire" + ] + } + } + ] + }, + "delete": { + "summary": "Delete dev key", + "operationId": "projectsDeleteDevKey", + "consumes": [ + "application\/json" + ], + "produces": [], + "tags": [ + "projects" + ], + "description": "Delete a project\\'s dev key by its unique ID. Once deleted, the key will no longer allow bypassing of rate limits and better logging of errors.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteDevKey", + "group": "devKeys", + "weight": 465, + "cookies": false, + "type": "", + "demo": "projects\/delete-dev-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "devKeys.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "type": "string", + "x-example": "<PROJECT_ID>", + "in": "path" + }, + { + "name": "keyId", + "description": "Key unique ID.", + "required": true, + "type": "string", + "x-example": "<KEY_ID>", + "in": "path" + } + ] + } + }, + "\/projects\/{projectId}\/jwts": { + "post": { + "summary": "Create JWT", + "operationId": "projectsCreateJWT", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "projects" + ], + "description": "Create a new JWT token. This token can be used to authenticate users with custom scopes and expiration time. ", + "responses": { + "201": { + "description": "JWT", + "schema": { + "$ref": "#\/definitions\/jwt" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createJWT", + "group": "auth", + "weight": 85, + "cookies": false, + "type": "", + "demo": "projects\/create-jwt.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/create-jwt.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "type": "string", + "x-example": "<PROJECT_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "scopes": { + "type": "array", + "description": "List of scopes allowed for JWT key. Maximum of 100 scopes are allowed.", + "default": null, + "x-example": null, + "items": { + "type": "string", + "enum": [ + "sessions.write", + "users.read", + "users.write", + "teams.read", + "teams.write", + "databases.read", + "databases.write", + "collections.read", + "collections.write", + "tables.read", + "tables.write", + "attributes.read", + "attributes.write", + "columns.read", + "columns.write", + "indexes.read", + "indexes.write", + "documents.read", + "documents.write", + "rows.read", + "rows.write", + "files.read", + "files.write", + "buckets.read", + "buckets.write", + "functions.read", + "functions.write", + "sites.read", + "sites.write", + "log.read", + "log.write", + "execution.read", + "execution.write", + "locale.read", + "avatars.read", + "health.read", + "providers.read", + "providers.write", + "messages.read", + "messages.write", + "topics.read", + "topics.write", + "subscribers.read", + "subscribers.write", + "targets.read", + "targets.write", + "rules.read", + "rules.write", + "schedules.read", + "schedules.write", + "migrations.read", + "migrations.write", + "vcs.read", + "vcs.write", + "assistant.read", + "tokens.read", + "tokens.write", + "policies.write", + "policies.read", + "archives.read", + "archives.write", + "restorations.read", + "restorations.write", + "domains.read", + "domains.write", + "events.read" + ], + "x-enum-name": null, + "x-enum-keys": [] + } + }, + "duration": { + "type": "integer", + "description": "Time in seconds before JWT expires. Default duration is 900 seconds, and maximum is 3600 seconds.", + "default": 900, + "x-example": 0, + "format": "int32" + } + }, + "required": [ + "scopes" + ] + } + } + ] + } + }, + "\/projects\/{projectId}\/keys": { + "get": { + "summary": "List keys", + "operationId": "projectsListKeys", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "projects" + ], + "description": "Get a list of all API keys from the current project. ", + "responses": { + "200": { + "description": "API Keys List", + "schema": { + "$ref": "#\/definitions\/keyList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listKeys", + "group": "keys", + "weight": 81, + "cookies": false, + "type": "", + "demo": "projects\/list-keys.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "keys.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/list-keys.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "type": "string", + "x-example": "<PROJECT_ID>", + "in": "path" + }, + { + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: expire, accessedAt, name, scopes", + "required": false, + "type": "array", + "collectionFormat": "multi", + "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, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" + } + ] + }, + "post": { + "summary": "Create key", + "operationId": "projectsCreateKey", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "projects" + ], + "description": "Create a new API key. It's recommended to have multiple API keys with strict scopes for separate functions within your project.", + "responses": { + "201": { + "description": "Key", + "schema": { + "$ref": "#\/definitions\/key" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createKey", + "group": "keys", + "weight": 80, + "cookies": false, + "type": "", + "demo": "projects\/create-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "keys.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/create-key.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "type": "string", + "x-example": "<PROJECT_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "keyId": { + "type": "string", + "description": "Key ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "default": "unique()", + "x-example": "<KEY_ID>" + }, + "name": { + "type": "string", + "description": "Key name. Max length: 128 chars.", + "default": null, + "x-example": "<NAME>" + }, + "scopes": { + "type": "array", + "description": "Key scopes list. Maximum of 100 scopes are allowed.", + "default": null, + "x-example": null, + "x-nullable": true, + "items": { + "type": "string", + "enum": [ + "sessions.write", + "users.read", + "users.write", + "teams.read", + "teams.write", + "databases.read", + "databases.write", + "collections.read", + "collections.write", + "tables.read", + "tables.write", + "attributes.read", + "attributes.write", + "columns.read", + "columns.write", + "indexes.read", + "indexes.write", + "documents.read", + "documents.write", + "rows.read", + "rows.write", + "files.read", + "files.write", + "buckets.read", + "buckets.write", + "functions.read", + "functions.write", + "sites.read", + "sites.write", + "log.read", + "log.write", + "execution.read", + "execution.write", + "locale.read", + "avatars.read", + "health.read", + "providers.read", + "providers.write", + "messages.read", + "messages.write", + "topics.read", + "topics.write", + "subscribers.read", + "subscribers.write", + "targets.read", + "targets.write", + "rules.read", + "rules.write", + "schedules.read", + "schedules.write", + "migrations.read", + "migrations.write", + "vcs.read", + "vcs.write", + "assistant.read", + "tokens.read", + "tokens.write", + "policies.write", + "policies.read", + "archives.read", + "archives.write", + "restorations.read", + "restorations.write", + "domains.read", + "domains.write", + "events.read" + ], + "x-enum-name": null, + "x-enum-keys": [] + } + }, + "expire": { + "type": "string", + "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", + "default": null, + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "name", + "scopes" + ] + } + } + ] + } + }, + "\/projects\/{projectId}\/keys\/{keyId}": { + "get": { + "summary": "Get key", + "operationId": "projectsGetKey", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "projects" + ], + "description": "Get a key by its unique ID. This endpoint returns details about a specific API key in your project including it's scopes.", + "responses": { + "200": { + "description": "Key", + "schema": { + "$ref": "#\/definitions\/key" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getKey", + "group": "keys", + "weight": 82, + "cookies": false, + "type": "", + "demo": "projects\/get-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "keys.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/get-key.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "type": "string", + "x-example": "<PROJECT_ID>", + "in": "path" + }, + { + "name": "keyId", + "description": "Key unique ID.", + "required": true, + "type": "string", + "x-example": "<KEY_ID>", + "in": "path" + } + ] + }, + "put": { + "summary": "Update key", + "operationId": "projectsUpdateKey", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "projects" + ], + "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", + "schema": { + "$ref": "#\/definitions\/key" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateKey", + "group": "keys", + "weight": 83, + "cookies": false, + "type": "", + "demo": "projects\/update-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "keys.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-key.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "type": "string", + "x-example": "<PROJECT_ID>", + "in": "path" + }, + { + "name": "keyId", + "description": "Key unique ID.", + "required": true, + "type": "string", + "x-example": "<KEY_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Key name. Max length: 128 chars.", + "default": null, + "x-example": "<NAME>" + }, + "scopes": { + "type": "array", + "description": "Key scopes list. Maximum of 100 events are allowed.", + "default": null, + "x-example": null, + "x-nullable": true, + "items": { + "type": "string", + "enum": [ + "sessions.write", + "users.read", + "users.write", + "teams.read", + "teams.write", + "databases.read", + "databases.write", + "collections.read", + "collections.write", + "tables.read", + "tables.write", + "attributes.read", + "attributes.write", + "columns.read", + "columns.write", + "indexes.read", + "indexes.write", + "documents.read", + "documents.write", + "rows.read", + "rows.write", + "files.read", + "files.write", + "buckets.read", + "buckets.write", + "functions.read", + "functions.write", + "sites.read", + "sites.write", + "log.read", + "log.write", + "execution.read", + "execution.write", + "locale.read", + "avatars.read", + "health.read", + "providers.read", + "providers.write", + "messages.read", + "messages.write", + "topics.read", + "topics.write", + "subscribers.read", + "subscribers.write", + "targets.read", + "targets.write", + "rules.read", + "rules.write", + "schedules.read", + "schedules.write", + "migrations.read", + "migrations.write", + "vcs.read", + "vcs.write", + "assistant.read", + "tokens.read", + "tokens.write", + "policies.write", + "policies.read", + "archives.read", + "archives.write", + "restorations.read", + "restorations.write", + "domains.read", + "domains.write", + "events.read" + ], + "x-enum-name": null, + "x-enum-keys": [] + } + }, + "expire": { + "type": "string", + "description": "Expiration time in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Use null for unlimited expiration.", + "default": null, + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "name", + "scopes" + ] + } + } + ] + }, + "delete": { + "summary": "Delete key", + "operationId": "projectsDeleteKey", + "consumes": [ + "application\/json" + ], + "produces": [], + "tags": [ + "projects" + ], + "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": { + "method": "deleteKey", + "group": "keys", + "weight": 84, + "cookies": false, + "type": "", + "demo": "projects\/delete-key.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "keys.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/delete-key.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "type": "string", + "x-example": "<PROJECT_ID>", + "in": "path" + }, + { + "name": "keyId", + "description": "Key unique ID.", + "required": true, + "type": "string", + "x-example": "<KEY_ID>", + "in": "path" + } + ] + } + }, + "\/projects\/{projectId}\/labels": { + "put": { + "summary": "Update project labels", + "operationId": "projectsUpdateLabels", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "projects" + ], + "description": "Update the project labels by its unique ID. Labels can be used to easily filter projects in an organization.", + "responses": { + "200": { + "description": "Project", + "schema": { + "$ref": "#\/definitions\/project" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateLabels", + "group": "projects", + "weight": 469, + "cookies": false, + "type": "", + "demo": "projects\/update-labels.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "type": "string", + "x-example": "<PROJECT_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "labels": { + "type": "array", + "description": "Array of project labels. Replaces the previous labels. Maximum of 1000 labels are allowed, each up to 36 alphanumeric characters long.", + "default": null, + "x-example": null, + "items": { + "type": "string" + } + } + }, + "required": [ + "labels" + ] + } + } + ] + } + }, + "\/projects\/{projectId}\/oauth2": { + "patch": { + "summary": "Update project OAuth2", + "operationId": "projectsUpdateOAuth2", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "projects" + ], + "description": "Update the OAuth2 provider configurations. Use this endpoint to set up or update the OAuth2 provider credentials or enable\/disable providers. ", + "responses": { + "200": { + "description": "Project", + "schema": { + "$ref": "#\/definitions\/project" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateOAuth2", + "group": "auth", + "weight": 62, + "cookies": false, + "type": "", + "demo": "projects\/update-o-auth-2.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-oauth2.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "type": "string", + "x-example": "<PROJECT_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "provider": { + "type": "string", + "description": "Provider Name", + "default": null, + "x-example": "amazon", + "enum": [ + "amazon", + "apple", + "auth0", + "authentik", + "autodesk", + "bitbucket", + "bitly", + "box", + "dailymotion", + "discord", + "disqus", + "dropbox", + "etsy", + "facebook", + "figma", + "github", + "gitlab", + "google", + "linkedin", + "microsoft", + "notion", + "oidc", + "okta", + "paypal", + "paypalSandbox", + "podio", + "salesforce", + "slack", + "spotify", + "stripe", + "tradeshift", + "tradeshiftBox", + "twitch", + "wordpress", + "yahoo", + "yammer", + "yandex", + "zoho", + "zoom" + ], + "x-enum-name": "OAuthProvider", + "x-enum-keys": [] + }, + "appId": { + "type": "string", + "description": "Provider app ID. Max length: 256 chars.", + "default": null, + "x-example": "<APP_ID>", + "x-nullable": true + }, + "secret": { + "type": "string", + "description": "Provider secret key. Max length: 512 chars.", + "default": null, + "x-example": "<SECRET>", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "Provider status. Set to 'false' to disable new session creation.", + "default": null, + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "provider" + ] + } + } + ] + } + }, + "\/projects\/{projectId}\/platforms": { + "get": { + "summary": "List platforms", + "operationId": "projectsListPlatforms", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "projects" + ], + "description": "Get a list of all platforms in the project. This endpoint returns an array of all platforms and their configurations. ", + "responses": { + "200": { + "description": "Platforms List", + "schema": { + "$ref": "#\/definitions\/platformList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listPlatforms", + "group": "platforms", + "weight": 87, + "cookies": false, + "type": "", + "demo": "projects\/list-platforms.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "platforms.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/list-platforms.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "type": "string", + "x-example": "<PROJECT_ID>", + "in": "path" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" + } + ] + }, + "post": { + "summary": "Create platform", + "operationId": "projectsCreatePlatform", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "projects" + ], + "description": "Create a new platform for your project. Use this endpoint to register a new platform where your users will run your application which will interact with the Appwrite API.", + "responses": { + "201": { + "description": "Platform", + "schema": { + "$ref": "#\/definitions\/platform" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createPlatform", + "group": "platforms", + "weight": 86, + "cookies": false, + "type": "", + "demo": "projects\/create-platform.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "platforms.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/create-platform.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "type": "string", + "x-example": "<PROJECT_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Platform type. Possible values are: web, flutter-web, flutter-ios, flutter-android, flutter-linux, flutter-macos, flutter-windows, apple-ios, apple-macos, apple-watchos, apple-tvos, android, unity, react-native-ios, react-native-android.", + "default": null, + "x-example": "web", + "enum": [ + "web", + "flutter-web", + "flutter-ios", + "flutter-android", + "flutter-linux", + "flutter-macos", + "flutter-windows", + "apple-ios", + "apple-macos", + "apple-watchos", + "apple-tvos", + "android", + "unity", + "react-native-ios", + "react-native-android" + ], + "x-enum-name": "PlatformType", + "x-enum-keys": [] + }, + "name": { + "type": "string", + "description": "Platform name. Max length: 128 chars.", + "default": null, + "x-example": "<NAME>" + }, + "key": { + "type": "string", + "description": "Package name for Android or bundle ID for iOS or macOS. Max length: 256 chars.", + "default": "", + "x-example": "<KEY>" + }, + "store": { + "type": "string", + "description": "App store or Google Play store ID. Max length: 256 chars.", + "default": "", + "x-example": "<STORE>" + }, + "hostname": { + "type": "string", + "description": "Platform client hostname. Max length: 256 chars.", + "default": "", + "x-example": null + } + }, + "required": [ + "type", + "name" + ] + } + } + ] + } + }, + "\/projects\/{projectId}\/platforms\/{platformId}": { + "get": { + "summary": "Get platform", + "operationId": "projectsGetPlatform", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "projects" + ], + "description": "Get a platform by its unique ID. This endpoint returns the platform's details, including its name, type, and key configurations. ", + "responses": { + "200": { + "description": "Platform", + "schema": { + "$ref": "#\/definitions\/platform" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getPlatform", + "group": "platforms", + "weight": 88, + "cookies": false, + "type": "", + "demo": "projects\/get-platform.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "platforms.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/get-platform.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "type": "string", + "x-example": "<PROJECT_ID>", + "in": "path" + }, + { + "name": "platformId", + "description": "Platform unique ID.", + "required": true, + "type": "string", + "x-example": "<PLATFORM_ID>", + "in": "path" + } + ] + }, + "put": { + "summary": "Update platform", + "operationId": "projectsUpdatePlatform", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "projects" + ], + "description": "Update a platform by its unique ID. Use this endpoint to update the platform's name, key, platform store ID, or hostname. ", + "responses": { + "200": { + "description": "Platform", + "schema": { + "$ref": "#\/definitions\/platform" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updatePlatform", + "group": "platforms", + "weight": 89, + "cookies": false, + "type": "", + "demo": "projects\/update-platform.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "platforms.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-platform.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "type": "string", + "x-example": "<PROJECT_ID>", + "in": "path" + }, + { + "name": "platformId", + "description": "Platform unique ID.", + "required": true, + "type": "string", + "x-example": "<PLATFORM_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Platform name. Max length: 128 chars.", + "default": null, + "x-example": "<NAME>" + }, + "key": { + "type": "string", + "description": "Package name for android or bundle ID for iOS. Max length: 256 chars.", + "default": "", + "x-example": "<KEY>" + }, + "store": { + "type": "string", + "description": "App store or Google Play store ID. Max length: 256 chars.", + "default": "", + "x-example": "<STORE>" + }, + "hostname": { + "type": "string", + "description": "Platform client URL. Max length: 256 chars.", + "default": "", + "x-example": null + } + }, + "required": [ + "name" + ] + } + } + ] + }, + "delete": { + "summary": "Delete platform", + "operationId": "projectsDeletePlatform", + "consumes": [ + "application\/json" + ], + "produces": [], + "tags": [ + "projects" + ], + "description": "Delete a platform by its unique ID. This endpoint removes the platform and all its configurations from the project. ", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deletePlatform", + "group": "platforms", + "weight": 90, + "cookies": false, + "type": "", + "demo": "projects\/delete-platform.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "platforms.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/delete-platform.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "type": "string", + "x-example": "<PROJECT_ID>", + "in": "path" + }, + { + "name": "platformId", + "description": "Platform unique ID.", + "required": true, + "type": "string", + "x-example": "<PLATFORM_ID>", + "in": "path" + } + ] + } + }, + "\/projects\/{projectId}\/schedules": { + "get": { + "summary": "List schedules", + "operationId": "projectsListSchedules", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "projects" + ], + "description": "Get a list of all the project's schedules. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Schedules List", + "schema": { + "$ref": "#\/definitions\/scheduleList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listSchedules", + "group": "schedules", + "weight": 473, + "cookies": false, + "type": "", + "demo": "projects\/list-schedules.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "schedules.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/list-schedules.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "type": "string", + "x-example": "<PROJECT_ID>", + "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: resourceType, resourceId, projectId, schedule, active, region", + "required": false, + "type": "array", + "collectionFormat": "multi", + "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, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" + } + ] + }, + "post": { + "summary": "Create schedule", + "operationId": "projectsCreateSchedule", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "projects" + ], + "description": "Create a new schedule for a resource.", + "responses": { + "201": { + "description": "Schedule", + "schema": { + "$ref": "#\/definitions\/schedule" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createSchedule", + "group": "schedules", + "weight": 799, + "cookies": false, + "type": "", + "demo": "projects\/create-schedule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "schedules.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/create-schedule.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "type": "string", + "x-example": "<PROJECT_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "resourceType": { + "type": "string", + "description": "The resource type for the schedule. Possible values: function, execution, message, backup.", + "default": null, + "x-example": "function", + "enum": [ + "function", + "execution", + "message", + "backup" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "resourceId": { + "type": "string", + "description": "The resource ID to associate with this schedule.", + "default": null, + "x-example": "<RESOURCE_ID>" + }, + "schedule": { + "type": "string", + "description": "Schedule CRON expression.", + "default": null, + "x-example": null + }, + "active": { + "type": "boolean", + "description": "Whether the schedule is active.", + "default": false, + "x-example": false + }, + "data": { + "type": "object", + "description": "Schedule data as a JSON string. Used to store resource-specific context needed for execution.", + "default": {}, + "x-example": "{}" + } + }, + "required": [ + "resourceType", + "resourceId", + "schedule" + ] + } + } + ] + } + }, + "\/projects\/{projectId}\/schedules\/{scheduleId}": { + "get": { + "summary": "Get schedule", + "operationId": "projectsGetSchedule", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "projects" + ], + "description": "Get a schedule by its unique ID.", + "responses": { + "200": { + "description": "Schedule", + "schema": { + "$ref": "#\/definitions\/schedule" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getSchedule", + "group": "schedules", + "weight": 472, + "cookies": false, + "type": "", + "demo": "projects\/get-schedule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "schedules.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/get-schedule.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "type": "string", + "x-example": "<PROJECT_ID>", + "in": "path" + }, + { + "name": "scheduleId", + "description": "Schedule ID.", + "required": true, + "type": "string", + "x-example": "<SCHEDULE_ID>", + "in": "path" + } + ] + } + }, + "\/projects\/{projectId}\/service": { + "patch": { + "summary": "Update service status", + "operationId": "projectsUpdateServiceStatus", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "projects" + ], + "description": "Update the status of a specific service. Use this endpoint to enable or disable a service in your project. ", + "responses": { + "200": { + "description": "Project", + "schema": { + "$ref": "#\/definitions\/project" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateServiceStatus", + "group": "projects", + "weight": 58, + "cookies": false, + "type": "", + "demo": "projects\/update-service-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-service-status.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "type": "string", + "x-example": "<PROJECT_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "service": { + "type": "string", + "description": "Service name.", + "default": null, + "x-example": "account", + "enum": [ + "account", + "avatars", + "databases", + "tablesdb", + "locale", + "health", + "storage", + "teams", + "users", + "sites", + "functions", + "graphql", + "messaging" + ], + "x-enum-name": "ApiService", + "x-enum-keys": [] + }, + "status": { + "type": "boolean", + "description": "Service status.", + "default": null, + "x-example": false + } + }, + "required": [ + "service", + "status" + ] + } + } + ] + } + }, + "\/projects\/{projectId}\/service\/all": { + "patch": { + "summary": "Update all service status", + "operationId": "projectsUpdateServiceStatusAll", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "projects" + ], + "description": "Update the status of all services. Use this endpoint to enable or disable all optional services at once. ", + "responses": { + "200": { + "description": "Project", + "schema": { + "$ref": "#\/definitions\/project" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateServiceStatusAll", + "group": "projects", + "weight": 59, + "cookies": false, + "type": "", + "demo": "projects\/update-service-status-all.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-service-status-all.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "type": "string", + "x-example": "<PROJECT_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "status": { + "type": "boolean", + "description": "Service status.", + "default": null, + "x-example": false + } + }, + "required": [ + "status" + ] + } + } + ] + } + }, + "\/projects\/{projectId}\/smtp": { + "patch": { + "summary": "Update SMTP", + "operationId": "projectsUpdateSmtp", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "projects" + ], + "description": "Update the SMTP configuration for your project. Use this endpoint to configure your project's SMTP provider with your custom settings for sending transactional emails. ", + "responses": { + "200": { + "description": "Project", + "schema": { + "$ref": "#\/definitions\/project" + } + } + }, + "deprecated": true, + "x-appwrite": { + "method": "updateSmtp", + "group": "templates", + "weight": 91, + "cookies": false, + "type": "", + "demo": "projects\/update-smtp.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-smtp.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "projects.updateSMTP" + }, + "methods": [ + { + "name": "updateSmtp", + "namespace": "projects", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "projectId", + "enabled", + "senderName", + "senderEmail", + "replyTo", + "host", + "port", + "username", + "password", + "secure" + ], + "required": [ + "projectId", + "enabled" + ], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/project" + } + ], + "description": "Update the SMTP configuration for your project. Use this endpoint to configure your project's SMTP provider with your custom settings for sending transactional emails. ", + "demo": "projects\/update-smtp.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "projects.updateSMTP" + } + }, + { + "name": "updateSMTP", + "namespace": "projects", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "projectId", + "enabled", + "senderName", + "senderEmail", + "replyTo", + "host", + "port", + "username", + "password", + "secure" + ], + "required": [ + "projectId", + "enabled" + ], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/project" + } + ], + "description": "Update the SMTP configuration for your project. Use this endpoint to configure your project's SMTP provider with your custom settings for sending transactional emails. ", + "demo": "projects\/update-smtp.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "type": "string", + "x-example": "<PROJECT_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Enable custom SMTP service", + "default": null, + "x-example": false + }, + "senderName": { + "type": "string", + "description": "Name of the email sender", + "default": "", + "x-example": "<SENDER_NAME>" + }, + "senderEmail": { + "type": "string", + "description": "Email of the sender", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "replyTo": { + "type": "string", + "description": "Reply to email", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "host": { + "type": "string", + "description": "SMTP server host name", + "default": "", + "x-example": null + }, + "port": { + "type": "integer", + "description": "SMTP server port", + "default": 587, + "x-example": null, + "format": "int32" + }, + "username": { + "type": "string", + "description": "SMTP server username", + "default": "", + "x-example": "<USERNAME>" + }, + "password": { + "type": "string", + "description": "SMTP server password", + "default": "", + "x-example": "<PASSWORD>" + }, + "secure": { + "type": "string", + "description": "Does SMTP server use secure connection", + "default": "", + "x-example": "tls", + "enum": [ + "tls", + "ssl" + ], + "x-enum-name": "SMTPSecure", + "x-enum-keys": [] + } + }, + "required": [ + "enabled" + ] + } + } + ] + } + }, + "\/projects\/{projectId}\/smtp\/tests": { + "post": { + "summary": "Create SMTP test", + "operationId": "projectsCreateSmtpTest", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "projects" + ], + "description": "Send a test email to verify SMTP configuration. ", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": true, + "x-appwrite": { + "method": "createSmtpTest", + "group": "templates", + "weight": 92, + "cookies": false, + "type": "", + "demo": "projects\/create-smtp-test.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/create-smtp-test.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "projects.createSMTPTest" + }, + "methods": [ + { + "name": "createSmtpTest", + "namespace": "projects", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "projectId", + "emails", + "senderName", + "senderEmail", + "replyTo", + "host", + "port", + "username", + "password", + "secure" + ], + "required": [ + "projectId", + "emails", + "senderName", + "senderEmail", + "host" + ], + "responses": [ + { + "code": 204 + } + ], + "description": "Send a test email to verify SMTP configuration. ", + "demo": "projects\/create-smtp-test.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "projects.createSMTPTest" + } + }, + { + "name": "createSMTPTest", + "namespace": "projects", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "projectId", + "emails", + "senderName", + "senderEmail", + "replyTo", + "host", + "port", + "username", + "password", + "secure" + ], + "required": [ + "projectId", + "emails", + "senderName", + "senderEmail", + "host" + ], + "responses": [ + { + "code": 204 + } + ], + "description": "Send a test email to verify SMTP configuration. ", + "demo": "projects\/create-smtp-test.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "type": "string", + "x-example": "<PROJECT_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "emails": { + "type": "array", + "description": "Array of emails to send test email to. Maximum of 10 emails are allowed.", + "default": null, + "x-example": null, + "items": { + "type": "string" + } + }, + "senderName": { + "type": "string", + "description": "Name of the email sender", + "default": null, + "x-example": "<SENDER_NAME>" + }, + "senderEmail": { + "type": "string", + "description": "Email of the sender", + "default": null, + "x-example": "email@example.com", + "format": "email" + }, + "replyTo": { + "type": "string", + "description": "Reply to email", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "host": { + "type": "string", + "description": "SMTP server host name", + "default": null, + "x-example": null + }, + "port": { + "type": "integer", + "description": "SMTP server port", + "default": 587, + "x-example": null, + "format": "int32" + }, + "username": { + "type": "string", + "description": "SMTP server username", + "default": "", + "x-example": "<USERNAME>" + }, + "password": { + "type": "string", + "description": "SMTP server password", + "default": "", + "x-example": "<PASSWORD>" + }, + "secure": { + "type": "string", + "description": "Does SMTP server use secure connection", + "default": "", + "x-example": "tls", + "enum": [ + "tls", + "ssl" + ], + "x-enum-name": "SMTPSecure", + "x-enum-keys": [] + } + }, + "required": [ + "emails", + "senderName", + "senderEmail", + "host" + ] + } + } + ] + } + }, + "\/projects\/{projectId}\/status": { + "patch": { + "summary": "Update the status of a project", + "operationId": "projectsUpdateStatus", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "projects" + ], + "description": "Update the status of a project. Can be used to archive\/restore projects, and to restore paused projects. When restoring a paused project, the console fingerprint header must be provided and the project must not be blocked for any reason other than inactivity.\n", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateStatus", + "group": null, + "weight": 794, + "cookies": false, + "type": "", + "demo": "projects\/update-status.md", + "rate-limit": 10, + "rate-time": 3600, + "rate-key": "ip:{ip},userId:{userId}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/projects\/update-status.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project ID", + "required": true, + "type": "string", + "x-example": "<PROJECT_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "New status for the project", + "default": null, + "x-example": "active", + "enum": [ + "active" + ], + "x-enum-name": null, + "x-enum-keys": [] + } + }, + "required": [ + "status" + ] + } + } + ] + } + }, + "\/projects\/{projectId}\/team": { + "patch": { + "summary": "Update project team", + "operationId": "projectsUpdateTeam", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "projects" + ], + "description": "Update the team ID of a project allowing for it to be transferred to another team.", + "responses": { + "200": { + "description": "Project", + "schema": { + "$ref": "#\/definitions\/project" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateTeam", + "group": "projects", + "weight": 795, + "cookies": false, + "type": "", + "demo": "projects\/update-team.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-team.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "type": "string", + "x-example": "<PROJECT_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "teamId": { + "type": "string", + "description": "Team ID of the team to transfer project to.", + "default": null, + "x-example": "<TEAM_ID>" + } + }, + "required": [ + "teamId" + ] + } + } + ] + } + }, + "\/projects\/{projectId}\/templates\/email\/{type}\/{locale}": { + "get": { + "summary": "Get custom email template", + "operationId": "projectsGetEmailTemplate", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "projects" + ], + "description": "Get a custom email template for the specified locale and type. This endpoint returns the template content, subject, and other configuration details. ", + "responses": { + "200": { + "description": "EmailTemplate", + "schema": { + "$ref": "#\/definitions\/emailTemplate" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getEmailTemplate", + "group": "templates", + "weight": 94, + "cookies": false, + "type": "", + "demo": "projects\/get-email-template.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/get-email-template.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "type": "string", + "x-example": "<PROJECT_ID>", + "in": "path" + }, + { + "name": "type", + "description": "Template type", + "required": true, + "type": "string", + "x-example": "verification", + "enum": [ + "verification", + "magicSession", + "recovery", + "invitation", + "mfaChallenge", + "sessionAlert", + "otpSession" + ], + "x-enum-name": "EmailTemplateType", + "x-enum-keys": [], + "in": "path" + }, + { + "name": "locale", + "description": "Template locale", + "required": true, + "type": "string", + "x-example": "af", + "enum": [ + "af", + "ar-ae", + "ar-bh", + "ar-dz", + "ar-eg", + "ar-iq", + "ar-jo", + "ar-kw", + "ar-lb", + "ar-ly", + "ar-ma", + "ar-om", + "ar-qa", + "ar-sa", + "ar-sy", + "ar-tn", + "ar-ye", + "as", + "az", + "be", + "bg", + "bh", + "bn", + "bs", + "ca", + "cs", + "cy", + "da", + "de", + "de-at", + "de-ch", + "de-li", + "de-lu", + "el", + "en", + "en-au", + "en-bz", + "en-ca", + "en-gb", + "en-ie", + "en-jm", + "en-nz", + "en-tt", + "en-us", + "en-za", + "eo", + "es", + "es-ar", + "es-bo", + "es-cl", + "es-co", + "es-cr", + "es-do", + "es-ec", + "es-gt", + "es-hn", + "es-mx", + "es-ni", + "es-pa", + "es-pe", + "es-pr", + "es-py", + "es-sv", + "es-uy", + "es-ve", + "et", + "eu", + "fa", + "fi", + "fo", + "fr", + "fr-be", + "fr-ca", + "fr-ch", + "fr-lu", + "ga", + "gd", + "he", + "hi", + "hr", + "hu", + "id", + "is", + "it", + "it-ch", + "ja", + "ji", + "ko", + "ku", + "lt", + "lv", + "mk", + "ml", + "ms", + "mt", + "nb", + "ne", + "nl", + "nl-be", + "nn", + "no", + "pa", + "pl", + "pt", + "pt-br", + "rm", + "ro", + "ro-md", + "ru", + "ru-md", + "sb", + "sk", + "sl", + "sq", + "sr", + "sv", + "sv-fi", + "th", + "tn", + "tr", + "ts", + "ua", + "ur", + "ve", + "vi", + "xh", + "zh-cn", + "zh-hk", + "zh-sg", + "zh-tw", + "zu" + ], + "x-enum-name": "EmailTemplateLocale", + "x-enum-keys": [], + "in": "path" + } + ] + }, + "patch": { + "summary": "Update custom email templates", + "operationId": "projectsUpdateEmailTemplate", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "projects" + ], + "description": "Update a custom email template for the specified locale and type. Use this endpoint to modify the content of your email templates.", + "responses": { + "200": { + "description": "EmailTemplate", + "schema": { + "$ref": "#\/definitions\/emailTemplate" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateEmailTemplate", + "group": "templates", + "weight": 96, + "cookies": false, + "type": "", + "demo": "projects\/update-email-template.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-email-template.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "type": "string", + "x-example": "<PROJECT_ID>", + "in": "path" + }, + { + "name": "type", + "description": "Template type", + "required": true, + "type": "string", + "x-example": "verification", + "enum": [ + "verification", + "magicSession", + "recovery", + "invitation", + "mfaChallenge", + "sessionAlert", + "otpSession" + ], + "x-enum-name": "EmailTemplateType", + "x-enum-keys": [], + "in": "path" + }, + { + "name": "locale", + "description": "Template locale", + "required": true, + "type": "string", + "x-example": "af", + "enum": [ + "af", + "ar-ae", + "ar-bh", + "ar-dz", + "ar-eg", + "ar-iq", + "ar-jo", + "ar-kw", + "ar-lb", + "ar-ly", + "ar-ma", + "ar-om", + "ar-qa", + "ar-sa", + "ar-sy", + "ar-tn", + "ar-ye", + "as", + "az", + "be", + "bg", + "bh", + "bn", + "bs", + "ca", + "cs", + "cy", + "da", + "de", + "de-at", + "de-ch", + "de-li", + "de-lu", + "el", + "en", + "en-au", + "en-bz", + "en-ca", + "en-gb", + "en-ie", + "en-jm", + "en-nz", + "en-tt", + "en-us", + "en-za", + "eo", + "es", + "es-ar", + "es-bo", + "es-cl", + "es-co", + "es-cr", + "es-do", + "es-ec", + "es-gt", + "es-hn", + "es-mx", + "es-ni", + "es-pa", + "es-pe", + "es-pr", + "es-py", + "es-sv", + "es-uy", + "es-ve", + "et", + "eu", + "fa", + "fi", + "fo", + "fr", + "fr-be", + "fr-ca", + "fr-ch", + "fr-lu", + "ga", + "gd", + "he", + "hi", + "hr", + "hu", + "id", + "is", + "it", + "it-ch", + "ja", + "ji", + "ko", + "ku", + "lt", + "lv", + "mk", + "ml", + "ms", + "mt", + "nb", + "ne", + "nl", + "nl-be", + "nn", + "no", + "pa", + "pl", + "pt", + "pt-br", + "rm", + "ro", + "ro-md", + "ru", + "ru-md", + "sb", + "sk", + "sl", + "sq", + "sr", + "sv", + "sv-fi", + "th", + "tn", + "tr", + "ts", + "ua", + "ur", + "ve", + "vi", + "xh", + "zh-cn", + "zh-hk", + "zh-sg", + "zh-tw", + "zu" + ], + "x-enum-name": "EmailTemplateLocale", + "x-enum-keys": [], + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "subject": { + "type": "string", + "description": "Email Subject", + "default": null, + "x-example": "<SUBJECT>" + }, + "message": { + "type": "string", + "description": "Template message", + "default": null, + "x-example": "<MESSAGE>" + }, + "senderName": { + "type": "string", + "description": "Name of the email sender", + "default": "", + "x-example": "<SENDER_NAME>" + }, + "senderEmail": { + "type": "string", + "description": "Email of the sender", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "replyTo": { + "type": "string", + "description": "Reply to email", + "default": "", + "x-example": "email@example.com", + "format": "email" + } + }, + "required": [ + "subject", + "message" + ] + } + } + ] + }, + "delete": { + "summary": "Delete custom email template", + "operationId": "projectsDeleteEmailTemplate", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "projects" + ], + "description": "Reset a custom email template to its default value. This endpoint removes any custom content and restores the template to its original state. ", + "responses": { + "200": { + "description": "EmailTemplate", + "schema": { + "$ref": "#\/definitions\/emailTemplate" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteEmailTemplate", + "group": "templates", + "weight": 98, + "cookies": false, + "type": "", + "demo": "projects\/delete-email-template.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/delete-email-template.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "type": "string", + "x-example": "<PROJECT_ID>", + "in": "path" + }, + { + "name": "type", + "description": "Template type", + "required": true, + "type": "string", + "x-example": "verification", + "enum": [ + "verification", + "magicSession", + "recovery", + "invitation", + "mfaChallenge", + "sessionAlert", + "otpSession" + ], + "x-enum-name": "EmailTemplateType", + "x-enum-keys": [], + "in": "path" + }, + { + "name": "locale", + "description": "Template locale", + "required": true, + "type": "string", + "x-example": "af", + "enum": [ + "af", + "ar-ae", + "ar-bh", + "ar-dz", + "ar-eg", + "ar-iq", + "ar-jo", + "ar-kw", + "ar-lb", + "ar-ly", + "ar-ma", + "ar-om", + "ar-qa", + "ar-sa", + "ar-sy", + "ar-tn", + "ar-ye", + "as", + "az", + "be", + "bg", + "bh", + "bn", + "bs", + "ca", + "cs", + "cy", + "da", + "de", + "de-at", + "de-ch", + "de-li", + "de-lu", + "el", + "en", + "en-au", + "en-bz", + "en-ca", + "en-gb", + "en-ie", + "en-jm", + "en-nz", + "en-tt", + "en-us", + "en-za", + "eo", + "es", + "es-ar", + "es-bo", + "es-cl", + "es-co", + "es-cr", + "es-do", + "es-ec", + "es-gt", + "es-hn", + "es-mx", + "es-ni", + "es-pa", + "es-pe", + "es-pr", + "es-py", + "es-sv", + "es-uy", + "es-ve", + "et", + "eu", + "fa", + "fi", + "fo", + "fr", + "fr-be", + "fr-ca", + "fr-ch", + "fr-lu", + "ga", + "gd", + "he", + "hi", + "hr", + "hu", + "id", + "is", + "it", + "it-ch", + "ja", + "ji", + "ko", + "ku", + "lt", + "lv", + "mk", + "ml", + "ms", + "mt", + "nb", + "ne", + "nl", + "nl-be", + "nn", + "no", + "pa", + "pl", + "pt", + "pt-br", + "rm", + "ro", + "ro-md", + "ru", + "ru-md", + "sb", + "sk", + "sl", + "sq", + "sr", + "sv", + "sv-fi", + "th", + "tn", + "tr", + "ts", + "ua", + "ur", + "ve", + "vi", + "xh", + "zh-cn", + "zh-hk", + "zh-sg", + "zh-tw", + "zu" + ], + "x-enum-name": "EmailTemplateLocale", + "x-enum-keys": [], + "in": "path" + } + ] + } + }, + "\/projects\/{projectId}\/templates\/sms\/{type}\/{locale}": { + "get": { + "summary": "Get custom SMS template", + "operationId": "projectsGetSmsTemplate", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "projects" + ], + "description": "Get a custom SMS template for the specified locale and type returning it's contents.", + "responses": { + "200": { + "description": "SmsTemplate", + "schema": { + "$ref": "#\/definitions\/smsTemplate" + } + } + }, + "deprecated": true, + "x-appwrite": { + "method": "getSmsTemplate", + "group": "templates", + "weight": 93, + "cookies": false, + "type": "", + "demo": "projects\/get-sms-template.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/get-sms-template.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "projects.getSMSTemplate" + }, + "methods": [ + { + "name": "getSmsTemplate", + "namespace": "projects", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "projectId", + "type", + "locale" + ], + "required": [ + "projectId", + "type", + "locale" + ], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/smsTemplate" + } + ], + "description": "Get a custom SMS template for the specified locale and type returning it's contents.", + "demo": "projects\/get-sms-template.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "projects.getSMSTemplate" + } + }, + { + "name": "getSMSTemplate", + "namespace": "projects", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "projectId", + "type", + "locale" + ], + "required": [ + "projectId", + "type", + "locale" + ], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/smsTemplate" + } + ], + "description": "Get a custom SMS template for the specified locale and type returning it's contents.", + "demo": "projects\/get-sms-template.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "type": "string", + "x-example": "<PROJECT_ID>", + "in": "path" + }, + { + "name": "type", + "description": "Template type", + "required": true, + "type": "string", + "x-example": "verification", + "enum": [ + "verification", + "login", + "invitation", + "mfaChallenge" + ], + "x-enum-name": "SmsTemplateType", + "x-enum-keys": [], + "in": "path" + }, + { + "name": "locale", + "description": "Template locale", + "required": true, + "type": "string", + "x-example": "af", + "enum": [ + "af", + "ar-ae", + "ar-bh", + "ar-dz", + "ar-eg", + "ar-iq", + "ar-jo", + "ar-kw", + "ar-lb", + "ar-ly", + "ar-ma", + "ar-om", + "ar-qa", + "ar-sa", + "ar-sy", + "ar-tn", + "ar-ye", + "as", + "az", + "be", + "bg", + "bh", + "bn", + "bs", + "ca", + "cs", + "cy", + "da", + "de", + "de-at", + "de-ch", + "de-li", + "de-lu", + "el", + "en", + "en-au", + "en-bz", + "en-ca", + "en-gb", + "en-ie", + "en-jm", + "en-nz", + "en-tt", + "en-us", + "en-za", + "eo", + "es", + "es-ar", + "es-bo", + "es-cl", + "es-co", + "es-cr", + "es-do", + "es-ec", + "es-gt", + "es-hn", + "es-mx", + "es-ni", + "es-pa", + "es-pe", + "es-pr", + "es-py", + "es-sv", + "es-uy", + "es-ve", + "et", + "eu", + "fa", + "fi", + "fo", + "fr", + "fr-be", + "fr-ca", + "fr-ch", + "fr-lu", + "ga", + "gd", + "he", + "hi", + "hr", + "hu", + "id", + "is", + "it", + "it-ch", + "ja", + "ji", + "ko", + "ku", + "lt", + "lv", + "mk", + "ml", + "ms", + "mt", + "nb", + "ne", + "nl", + "nl-be", + "nn", + "no", + "pa", + "pl", + "pt", + "pt-br", + "rm", + "ro", + "ro-md", + "ru", + "ru-md", + "sb", + "sk", + "sl", + "sq", + "sr", + "sv", + "sv-fi", + "th", + "tn", + "tr", + "ts", + "ua", + "ur", + "ve", + "vi", + "xh", + "zh-cn", + "zh-hk", + "zh-sg", + "zh-tw", + "zu" + ], + "x-enum-name": "SmsTemplateLocale", + "x-enum-keys": [], + "in": "path" + } + ] + }, + "patch": { + "summary": "Update custom SMS template", + "operationId": "projectsUpdateSmsTemplate", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "projects" + ], + "description": "Update a custom SMS template for the specified locale and type. Use this endpoint to modify the content of your SMS templates. ", + "responses": { + "200": { + "description": "SmsTemplate", + "schema": { + "$ref": "#\/definitions\/smsTemplate" + } + } + }, + "deprecated": true, + "x-appwrite": { + "method": "updateSmsTemplate", + "group": "templates", + "weight": 95, + "cookies": false, + "type": "", + "demo": "projects\/update-sms-template.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-sms-template.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "projects.updateSMSTemplate" + }, + "methods": [ + { + "name": "updateSmsTemplate", + "namespace": "projects", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "projectId", + "type", + "locale", + "message" + ], + "required": [ + "projectId", + "type", + "locale", + "message" + ], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/smsTemplate" + } + ], + "description": "Update a custom SMS template for the specified locale and type. Use this endpoint to modify the content of your SMS templates. ", + "demo": "projects\/update-sms-template.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "projects.updateSMSTemplate" + } + }, + { + "name": "updateSMSTemplate", + "namespace": "projects", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "projectId", + "type", + "locale", + "message" + ], + "required": [ + "projectId", + "type", + "locale", + "message" + ], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/smsTemplate" + } + ], + "description": "Update a custom SMS template for the specified locale and type. Use this endpoint to modify the content of your SMS templates. ", + "demo": "projects\/update-sms-template.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "type": "string", + "x-example": "<PROJECT_ID>", + "in": "path" + }, + { + "name": "type", + "description": "Template type", + "required": true, + "type": "string", + "x-example": "verification", + "enum": [ + "verification", + "login", + "invitation", + "mfaChallenge" + ], + "x-enum-name": "SmsTemplateType", + "x-enum-keys": [], + "in": "path" + }, + { + "name": "locale", + "description": "Template locale", + "required": true, + "type": "string", + "x-example": "af", + "enum": [ + "af", + "ar-ae", + "ar-bh", + "ar-dz", + "ar-eg", + "ar-iq", + "ar-jo", + "ar-kw", + "ar-lb", + "ar-ly", + "ar-ma", + "ar-om", + "ar-qa", + "ar-sa", + "ar-sy", + "ar-tn", + "ar-ye", + "as", + "az", + "be", + "bg", + "bh", + "bn", + "bs", + "ca", + "cs", + "cy", + "da", + "de", + "de-at", + "de-ch", + "de-li", + "de-lu", + "el", + "en", + "en-au", + "en-bz", + "en-ca", + "en-gb", + "en-ie", + "en-jm", + "en-nz", + "en-tt", + "en-us", + "en-za", + "eo", + "es", + "es-ar", + "es-bo", + "es-cl", + "es-co", + "es-cr", + "es-do", + "es-ec", + "es-gt", + "es-hn", + "es-mx", + "es-ni", + "es-pa", + "es-pe", + "es-pr", + "es-py", + "es-sv", + "es-uy", + "es-ve", + "et", + "eu", + "fa", + "fi", + "fo", + "fr", + "fr-be", + "fr-ca", + "fr-ch", + "fr-lu", + "ga", + "gd", + "he", + "hi", + "hr", + "hu", + "id", + "is", + "it", + "it-ch", + "ja", + "ji", + "ko", + "ku", + "lt", + "lv", + "mk", + "ml", + "ms", + "mt", + "nb", + "ne", + "nl", + "nl-be", + "nn", + "no", + "pa", + "pl", + "pt", + "pt-br", + "rm", + "ro", + "ro-md", + "ru", + "ru-md", + "sb", + "sk", + "sl", + "sq", + "sr", + "sv", + "sv-fi", + "th", + "tn", + "tr", + "ts", + "ua", + "ur", + "ve", + "vi", + "xh", + "zh-cn", + "zh-hk", + "zh-sg", + "zh-tw", + "zu" + ], + "x-enum-name": "SmsTemplateLocale", + "x-enum-keys": [], + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "Template message", + "default": null, + "x-example": "<MESSAGE>" + } + }, + "required": [ + "message" + ] + } + } + ] + }, + "delete": { + "summary": "Reset custom SMS template", + "operationId": "projectsDeleteSmsTemplate", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "projects" + ], + "description": "Reset a custom SMS template to its default value. This endpoint removes any custom message and restores the template to its original state. ", + "responses": { + "200": { + "description": "SmsTemplate", + "schema": { + "$ref": "#\/definitions\/smsTemplate" + } + } + }, + "deprecated": true, + "x-appwrite": { + "method": "deleteSmsTemplate", + "group": "templates", + "weight": 97, + "cookies": false, + "type": "", + "demo": "projects\/delete-sms-template.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/delete-sms-template.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "projects.deleteSMSTemplate" + }, + "methods": [ + { + "name": "deleteSmsTemplate", + "namespace": "projects", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "projectId", + "type", + "locale" + ], + "required": [ + "projectId", + "type", + "locale" + ], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/smsTemplate" + } + ], + "description": "Reset a custom SMS template to its default value. This endpoint removes any custom message and restores the template to its original state. ", + "demo": "projects\/delete-sms-template.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "projects.deleteSMSTemplate" + } + }, + { + "name": "deleteSMSTemplate", + "namespace": "projects", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "projectId", + "type", + "locale" + ], + "required": [ + "projectId", + "type", + "locale" + ], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/smsTemplate" + } + ], + "description": "Reset a custom SMS template to its default value. This endpoint removes any custom message and restores the template to its original state. ", + "demo": "projects\/delete-sms-template.md", + "public": true + } + ], + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "type": "string", + "x-example": "<PROJECT_ID>", + "in": "path" + }, + { + "name": "type", + "description": "Template type", + "required": true, + "type": "string", + "x-example": "verification", + "enum": [ + "verification", + "login", + "invitation", + "mfaChallenge" + ], + "x-enum-name": "SmsTemplateType", + "x-enum-keys": [], + "in": "path" + }, + { + "name": "locale", + "description": "Template locale", + "required": true, + "type": "string", + "x-example": "af", + "enum": [ + "af", + "ar-ae", + "ar-bh", + "ar-dz", + "ar-eg", + "ar-iq", + "ar-jo", + "ar-kw", + "ar-lb", + "ar-ly", + "ar-ma", + "ar-om", + "ar-qa", + "ar-sa", + "ar-sy", + "ar-tn", + "ar-ye", + "as", + "az", + "be", + "bg", + "bh", + "bn", + "bs", + "ca", + "cs", + "cy", + "da", + "de", + "de-at", + "de-ch", + "de-li", + "de-lu", + "el", + "en", + "en-au", + "en-bz", + "en-ca", + "en-gb", + "en-ie", + "en-jm", + "en-nz", + "en-tt", + "en-us", + "en-za", + "eo", + "es", + "es-ar", + "es-bo", + "es-cl", + "es-co", + "es-cr", + "es-do", + "es-ec", + "es-gt", + "es-hn", + "es-mx", + "es-ni", + "es-pa", + "es-pe", + "es-pr", + "es-py", + "es-sv", + "es-uy", + "es-ve", + "et", + "eu", + "fa", + "fi", + "fo", + "fr", + "fr-be", + "fr-ca", + "fr-ch", + "fr-lu", + "ga", + "gd", + "he", + "hi", + "hr", + "hu", + "id", + "is", + "it", + "it-ch", + "ja", + "ji", + "ko", + "ku", + "lt", + "lv", + "mk", + "ml", + "ms", + "mt", + "nb", + "ne", + "nl", + "nl-be", + "nn", + "no", + "pa", + "pl", + "pt", + "pt-br", + "rm", + "ro", + "ro-md", + "ru", + "ru-md", + "sb", + "sk", + "sl", + "sq", + "sr", + "sv", + "sv-fi", + "th", + "tn", + "tr", + "ts", + "ua", + "ur", + "ve", + "vi", + "xh", + "zh-cn", + "zh-hk", + "zh-sg", + "zh-tw", + "zu" + ], + "x-enum-name": "SmsTemplateLocale", + "x-enum-keys": [], + "in": "path" + } + ] + } + }, + "\/projects\/{projectId}\/webhooks": { + "get": { + "summary": "List webhooks", + "operationId": "projectsListWebhooks", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "projects" + ], + "description": "Get a list of all webhooks belonging to the project. You can use the query params to filter your results. ", + "responses": { + "200": { + "description": "Webhooks List", + "schema": { + "$ref": "#\/definitions\/webhookList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listWebhooks", + "group": "webhooks", + "weight": 75, + "cookies": false, + "type": "", + "demo": "projects\/list-webhooks.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/list-webhooks.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "type": "string", + "x-example": "<PROJECT_ID>", + "in": "path" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" + } + ] + }, + "post": { + "summary": "Create webhook", + "operationId": "projectsCreateWebhook", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "projects" + ], + "description": "Create a new webhook. Use this endpoint to configure a URL that will receive events from Appwrite when specific events occur. ", + "responses": { + "201": { + "description": "Webhook", + "schema": { + "$ref": "#\/definitions\/webhook" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createWebhook", + "group": "webhooks", + "weight": 74, + "cookies": false, + "type": "", + "demo": "projects\/create-webhook.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/create-webhook.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "type": "string", + "x-example": "<PROJECT_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Webhook name. Max length: 128 chars.", + "default": null, + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "description": "Enable or disable a webhook.", + "default": true, + "x-example": false + }, + "events": { + "type": "array", + "description": "Events list. Maximum of 100 events are allowed.", + "default": null, + "x-example": null, + "items": { + "type": "string" + } + }, + "url": { + "type": "string", + "description": "Webhook URL.", + "default": null, + "x-example": null + }, + "security": { + "type": "boolean", + "description": "Certificate verification, false for disabled or true for enabled.", + "default": null, + "x-example": false + }, + "httpUser": { + "type": "string", + "description": "Webhook HTTP user. Max length: 256 chars.", + "default": "", + "x-example": "<HTTP_USER>" + }, + "httpPass": { + "type": "string", + "description": "Webhook HTTP password. Max length: 256 chars.", + "default": "", + "x-example": "<HTTP_PASS>" + } + }, + "required": [ + "name", + "events", + "url", + "security" + ] + } + } + ] + } + }, + "\/projects\/{projectId}\/webhooks\/{webhookId}": { + "get": { + "summary": "Get webhook", + "operationId": "projectsGetWebhook", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "projects" + ], + "description": "Get a webhook by its unique ID. This endpoint returns details about a specific webhook configured for a project. ", + "responses": { + "200": { + "description": "Webhook", + "schema": { + "$ref": "#\/definitions\/webhook" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getWebhook", + "group": "webhooks", + "weight": 76, + "cookies": false, + "type": "", + "demo": "projects\/get-webhook.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/get-webhook.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "type": "string", + "x-example": "<PROJECT_ID>", + "in": "path" + }, + { + "name": "webhookId", + "description": "Webhook unique ID.", + "required": true, + "type": "string", + "x-example": "<WEBHOOK_ID>", + "in": "path" + } + ] + }, + "put": { + "summary": "Update webhook", + "operationId": "projectsUpdateWebhook", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "projects" + ], + "description": "Update a webhook by its unique ID. Use this endpoint to update the URL, events, or status of an existing webhook. ", + "responses": { + "200": { + "description": "Webhook", + "schema": { + "$ref": "#\/definitions\/webhook" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateWebhook", + "group": "webhooks", + "weight": 77, + "cookies": false, + "type": "", + "demo": "projects\/update-webhook.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-webhook.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "type": "string", + "x-example": "<PROJECT_ID>", + "in": "path" + }, + { + "name": "webhookId", + "description": "Webhook unique ID.", + "required": true, + "type": "string", + "x-example": "<WEBHOOK_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Webhook name. Max length: 128 chars.", + "default": null, + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "description": "Enable or disable a webhook.", + "default": true, + "x-example": false + }, + "events": { + "type": "array", + "description": "Events list. Maximum of 100 events are allowed.", + "default": null, + "x-example": null, + "items": { + "type": "string" + } + }, + "url": { + "type": "string", + "description": "Webhook URL.", + "default": null, + "x-example": null + }, + "security": { + "type": "boolean", + "description": "Certificate verification, false for disabled or true for enabled.", + "default": null, + "x-example": false + }, + "httpUser": { + "type": "string", + "description": "Webhook HTTP user. Max length: 256 chars.", + "default": "", + "x-example": "<HTTP_USER>" + }, + "httpPass": { + "type": "string", + "description": "Webhook HTTP password. Max length: 256 chars.", + "default": "", + "x-example": "<HTTP_PASS>" + } + }, + "required": [ + "name", + "events", + "url", + "security" + ] + } + } + ] + }, + "delete": { + "summary": "Delete webhook", + "operationId": "projectsDeleteWebhook", + "consumes": [ + "application\/json" + ], + "produces": [], + "tags": [ + "projects" + ], + "description": "Delete a webhook by its unique ID. Once deleted, the webhook will no longer receive project events. ", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteWebhook", + "group": "webhooks", + "weight": 79, + "cookies": false, + "type": "", + "demo": "projects\/delete-webhook.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/delete-webhook.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "type": "string", + "x-example": "<PROJECT_ID>", + "in": "path" + }, + { + "name": "webhookId", + "description": "Webhook unique ID.", + "required": true, + "type": "string", + "x-example": "<WEBHOOK_ID>", + "in": "path" + } + ] + } + }, + "\/projects\/{projectId}\/webhooks\/{webhookId}\/signature": { + "patch": { + "summary": "Update webhook signature key", + "operationId": "projectsUpdateWebhookSignature", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "projects" + ], + "description": "Update the webhook signature key. This endpoint can be used to regenerate the signature key used to sign and validate payload deliveries for a specific webhook. ", + "responses": { + "200": { + "description": "Webhook", + "schema": { + "$ref": "#\/definitions\/webhook" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateWebhookSignature", + "group": "webhooks", + "weight": 78, + "cookies": false, + "type": "", + "demo": "projects\/update-webhook-signature.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "projects.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-webhook-signature.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "projectId", + "description": "Project unique ID.", + "required": true, + "type": "string", + "x-example": "<PROJECT_ID>", + "in": "path" + }, + { + "name": "webhookId", + "description": "Webhook unique ID.", + "required": true, + "type": "string", + "x-example": "<WEBHOOK_ID>", + "in": "path" + } + ] + } + }, + "\/proxy\/rules": { + "get": { + "summary": "List rules", + "operationId": "proxyListRules", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "proxy" + ], + "description": "Get a list of all the proxy rules. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Rule List", + "schema": { + "$ref": "#\/definitions\/proxyRuleList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listRules", + "group": null, + "weight": 809, + "cookies": false, + "type": "", + "demo": "proxy\/list-rules.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "rules.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "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: domain, type, trigger, deploymentResourceType, deploymentResourceId, deploymentId, deploymentVcsProviderBranch", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "type": "string", + "x-example": "<SEARCH>", + "default": "", + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" + } + ] + } + }, + "\/proxy\/rules\/api": { + "post": { + "summary": "Create API rule", + "operationId": "proxyCreateAPIRule", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "proxy" + ], + "description": "Create a new proxy rule for serving Appwrite's API on custom domain.", + "responses": { + "201": { + "description": "Rule", + "schema": { + "$ref": "#\/definitions\/proxyRule" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createAPIRule", + "group": null, + "weight": 804, + "cookies": false, + "type": "", + "demo": "proxy\/create-api-rule.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "userId:{userId}, url:{url}", + "scope": "rules.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "domain": { + "type": "string", + "description": "Domain name.", + "default": null, + "x-example": null + } + }, + "required": [ + "domain" + ] + } + } + ] + } + }, + "\/proxy\/rules\/function": { + "post": { + "summary": "Create function rule", + "operationId": "proxyCreateFunctionRule", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "proxy" + ], + "description": "Create a new proxy rule for executing Appwrite Function on custom domain.", + "responses": { + "201": { + "description": "Rule", + "schema": { + "$ref": "#\/definitions\/proxyRule" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createFunctionRule", + "group": null, + "weight": 806, + "cookies": false, + "type": "", + "demo": "proxy\/create-function-rule.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "userId:{userId}, url:{url}", + "scope": "rules.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "domain": { + "type": "string", + "description": "Domain name.", + "default": null, + "x-example": null + }, + "functionId": { + "type": "string", + "description": "ID of function to be executed.", + "default": null, + "x-example": "<FUNCTION_ID>" + }, + "branch": { + "type": "string", + "description": "Name of VCS branch to deploy changes automatically", + "default": "", + "x-example": "<BRANCH>" + } + }, + "required": [ + "domain", + "functionId" + ] + } + } + ] + } + }, + "\/proxy\/rules\/redirect": { + "post": { + "summary": "Create Redirect rule", + "operationId": "proxyCreateRedirectRule", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "proxy" + ], + "description": "Create a new proxy rule for to redirect from custom domain to another domain.", + "responses": { + "201": { + "description": "Rule", + "schema": { + "$ref": "#\/definitions\/proxyRule" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createRedirectRule", + "group": null, + "weight": 807, + "cookies": false, + "type": "", + "demo": "proxy\/create-redirect-rule.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "userId:{userId}, url:{url}", + "scope": "rules.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "domain": { + "type": "string", + "description": "Domain name.", + "default": null, + "x-example": null + }, + "url": { + "type": "string", + "description": "Target URL of redirection", + "default": null, + "x-example": "https:\/\/example.com", + "format": "url" + }, + "statusCode": { + "type": "string", + "description": "Status code of redirection", + "default": null, + "x-example": "301", + "enum": [ + "301", + "302", + "307", + "308" + ], + "x-enum-name": null, + "x-enum-keys": [ + "Moved Permanently 301", + "Found 302", + "Temporary Redirect 307", + "Permanent Redirect 308" + ] + }, + "resourceId": { + "type": "string", + "description": "ID of parent resource.", + "default": null, + "x-example": "<RESOURCE_ID>" + }, + "resourceType": { + "type": "string", + "description": "Type of parent resource.", + "default": null, + "x-example": "site", + "enum": [ + "site", + "function" + ], + "x-enum-name": "ProxyResourceType", + "x-enum-keys": [ + "Site", + "Function" + ] + } + }, + "required": [ + "domain", + "url", + "statusCode", + "resourceId", + "resourceType" + ] + } + } + ] + } + }, + "\/proxy\/rules\/site": { + "post": { + "summary": "Create site rule", + "operationId": "proxyCreateSiteRule", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "proxy" + ], + "description": "Create a new proxy rule for serving Appwrite Site on custom domain.", + "responses": { + "201": { + "description": "Rule", + "schema": { + "$ref": "#\/definitions\/proxyRule" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createSiteRule", + "group": null, + "weight": 805, + "cookies": false, + "type": "", + "demo": "proxy\/create-site-rule.md", + "rate-limit": 10, + "rate-time": 60, + "rate-key": "userId:{userId}, url:{url}", + "scope": "rules.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "domain": { + "type": "string", + "description": "Domain name.", + "default": null, + "x-example": null + }, + "siteId": { + "type": "string", + "description": "ID of site to be executed.", + "default": null, + "x-example": "<SITE_ID>" + }, + "branch": { + "type": "string", + "description": "Name of VCS branch to deploy changes automatically", + "default": "", + "x-example": "<BRANCH>" + } + }, + "required": [ + "domain", + "siteId" + ] + } + } + ] + } + }, + "\/proxy\/rules\/{ruleId}": { + "get": { + "summary": "Get rule", + "operationId": "proxyGetRule", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "proxy" + ], + "description": "Get a proxy rule by its unique ID.", + "responses": { + "200": { + "description": "Rule", + "schema": { + "$ref": "#\/definitions\/proxyRule" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getRule", + "group": null, + "weight": 808, + "cookies": false, + "type": "", + "demo": "proxy\/get-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "rules.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "ruleId", + "description": "Rule ID.", + "required": true, + "type": "string", + "x-example": "<RULE_ID>", + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete rule", + "operationId": "proxyDeleteRule", + "consumes": [ + "application\/json" + ], + "produces": [], + "tags": [ + "proxy" + ], + "description": "Delete a proxy rule by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteRule", + "group": null, + "weight": 810, + "cookies": false, + "type": "", + "demo": "proxy\/delete-rule.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "rules.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "ruleId", + "description": "Rule ID.", + "required": true, + "type": "string", + "x-example": "<RULE_ID>", + "in": "path" + } + ] + } + }, + "\/proxy\/rules\/{ruleId}\/verification": { + "patch": { + "summary": "Update rule verification status", + "operationId": "proxyUpdateRuleVerification", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "proxy" + ], + "description": "Retry getting verification process of a proxy rule. This endpoint triggers domain verification by checking DNS records (CNAME) against the configured target domain. If verification is successful, a TLS certificate will be automatically provisioned for the domain.", + "responses": { + "200": { + "description": "Rule", + "schema": { + "$ref": "#\/definitions\/proxyRule" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateRuleVerification", + "group": null, + "weight": 811, + "cookies": false, + "type": "", + "demo": "proxy\/update-rule-verification.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "rules.write", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "ruleId", + "description": "Rule ID.", + "required": true, + "type": "string", + "x-example": "<RULE_ID>", + "in": "path" + } + ] + } + }, + "\/sites": { + "get": { + "summary": "List sites", + "operationId": "sitesList", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "sites" + ], + "description": "Get a list of all the project's sites. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Sites List", + "schema": { + "$ref": "#\/definitions\/siteList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "list", + "group": "sites", + "weight": 531, + "cookies": false, + "type": "", + "demo": "sites\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "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, framework, deploymentId, buildCommand, installCommand, outputDirectory, installationId", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "type": "string", + "x-example": "<SEARCH>", + "default": "", + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" + } + ] + }, + "post": { + "summary": "Create site", + "operationId": "sitesCreate", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "sites" + ], + "description": "Create a new site.", + "responses": { + "201": { + "description": "Site", + "schema": { + "$ref": "#\/definitions\/site" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "create", + "group": "sites", + "weight": 629, + "cookies": false, + "type": "", + "demo": "sites\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "siteId": { + "type": "string", + "description": "Site ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "default": null, + "x-example": "<SITE_ID>" + }, + "name": { + "type": "string", + "description": "Site name. Max length: 128 chars.", + "default": null, + "x-example": "<NAME>" + }, + "framework": { + "type": "string", + "description": "Sites framework.", + "default": null, + "x-example": "analog", + "enum": [ + "analog", + "angular", + "nextjs", + "react", + "nuxt", + "vue", + "sveltekit", + "astro", + "tanstack-start", + "remix", + "lynx", + "flutter", + "react-native", + "vite", + "other" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "enabled": { + "type": "boolean", + "description": "Is site enabled? When set to 'disabled', users cannot access the site but Server SDKs with and API key can still access the site. No data is lost when this is toggled.", + "default": true, + "x-example": false + }, + "logging": { + "type": "boolean", + "description": "When disabled, request logs will exclude logs and errors, and site responses will be slightly faster.", + "default": true, + "x-example": false + }, + "timeout": { + "type": "integer", + "description": "Maximum request time in seconds.", + "default": 30, + "x-example": 1, + "format": "int32" + }, + "installCommand": { + "type": "string", + "description": "Install Command.", + "default": "", + "x-example": "<INSTALL_COMMAND>" + }, + "buildCommand": { + "type": "string", + "description": "Build Command.", + "default": "", + "x-example": "<BUILD_COMMAND>" + }, + "outputDirectory": { + "type": "string", + "description": "Output Directory for site.", + "default": "", + "x-example": "<OUTPUT_DIRECTORY>" + }, + "buildRuntime": { + "type": "string", + "description": "Runtime to use during build step.", + "default": null, + "x-example": "node-14.5", + "enum": [ + "node-14.5", + "node-16.0", + "node-18.0", + "node-19.0", + "node-20.0", + "node-21.0", + "node-22", + "node-23", + "node-24", + "node-25", + "php-8.0", + "php-8.1", + "php-8.2", + "php-8.3", + "php-8.4", + "ruby-3.0", + "ruby-3.1", + "ruby-3.2", + "ruby-3.3", + "ruby-3.4", + "ruby-4.0", + "python-3.8", + "python-3.9", + "python-3.10", + "python-3.11", + "python-3.12", + "python-3.13", + "python-3.14", + "python-ml-3.11", + "python-ml-3.12", + "python-ml-3.13", + "deno-1.21", + "deno-1.24", + "deno-1.35", + "deno-1.40", + "deno-1.46", + "deno-2.0", + "deno-2.5", + "deno-2.6", + "dart-2.15", + "dart-2.16", + "dart-2.17", + "dart-2.18", + "dart-2.19", + "dart-3.0", + "dart-3.1", + "dart-3.3", + "dart-3.5", + "dart-3.8", + "dart-3.9", + "dart-3.10", + "dotnet-6.0", + "dotnet-7.0", + "dotnet-8.0", + "dotnet-10", + "java-8.0", + "java-11.0", + "java-17.0", + "java-18.0", + "java-21.0", + "java-22", + "java-25", + "swift-5.5", + "swift-5.8", + "swift-5.9", + "swift-5.10", + "swift-6.2", + "kotlin-1.6", + "kotlin-1.8", + "kotlin-1.9", + "kotlin-2.0", + "kotlin-2.3", + "cpp-17", + "cpp-20", + "bun-1.0", + "bun-1.1", + "bun-1.2", + "bun-1.3", + "go-1.23", + "go-1.24", + "go-1.25", + "go-1.26", + "static-1", + "flutter-3.24", + "flutter-3.27", + "flutter-3.29", + "flutter-3.32", + "flutter-3.35", + "flutter-3.38" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "adapter": { + "type": "string", + "description": "Framework adapter defining rendering strategy. Allowed values are: static, ssr", + "default": "", + "x-example": "static", + "enum": [ + "static", + "ssr" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "installationId": { + "type": "string", + "description": "Appwrite Installation ID for VCS (Version Control System) deployment.", + "default": "", + "x-example": "<INSTALLATION_ID>" + }, + "fallbackFile": { + "type": "string", + "description": "Fallback file for single page application sites.", + "default": "", + "x-example": "<FALLBACK_FILE>" + }, + "providerRepositoryId": { + "type": "string", + "description": "Repository ID of the repo linked to the site.", + "default": "", + "x-example": "<PROVIDER_REPOSITORY_ID>" + }, + "providerBranch": { + "type": "string", + "description": "Production branch for the repo linked to the site.", + "default": "", + "x-example": "<PROVIDER_BRANCH>" + }, + "providerSilentMode": { + "type": "boolean", + "description": "Is the VCS (Version Control System) connection in silent mode for the repo linked to the site? In silent mode, comments will not be made on commits and pull requests.", + "default": false, + "x-example": false + }, + "providerRootDirectory": { + "type": "string", + "description": "Path to site code in the linked repo.", + "default": "", + "x-example": "<PROVIDER_ROOT_DIRECTORY>" + }, + "specification": { + "type": "string", + "description": "Framework specification for the site and builds.", + "default": {}, + "x-example": null + } + }, + "required": [ + "siteId", + "name", + "framework", + "buildRuntime" + ] + } + } + ] + } + }, + "\/sites\/frameworks": { + "get": { + "summary": "List frameworks", + "operationId": "sitesListFrameworks", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "sites" + ], + "description": "Get a list of all frameworks that are currently available on the server instance.", + "responses": { + "200": { + "description": "Frameworks List", + "schema": { + "$ref": "#\/definitions\/frameworkList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listFrameworks", + "group": "frameworks", + "weight": 534, + "cookies": false, + "type": "", + "demo": "sites\/list-frameworks.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ] + } + }, + "\/sites\/specifications": { + "get": { + "summary": "List specifications", + "operationId": "sitesListSpecifications", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "sites" + ], + "description": "List allowed site specifications for this instance.", + "responses": { + "200": { + "description": "Specifications List", + "schema": { + "$ref": "#\/definitions\/specificationList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listSpecifications", + "group": "frameworks", + "weight": 557, + "cookies": false, + "type": "", + "demo": "sites\/list-specifications.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.read", + "platforms": [ + "server", + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ] + } + }, + "\/sites\/templates": { + "get": { + "summary": "List templates", + "operationId": "sitesListTemplates", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "sites" + ], + "description": "List available site templates. You can use template details in [createSite](\/docs\/references\/cloud\/server-nodejs\/sites#create) method.", + "responses": { + "200": { + "description": "Site Templates List", + "schema": { + "$ref": "#\/definitions\/templateSiteList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listTemplates", + "group": "templates", + "weight": 553, + "cookies": false, + "type": "", + "demo": "sites\/list-templates.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "frameworks", + "description": "List of frameworks allowed for filtering site templates. Maximum of 100 frameworks are allowed.", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string", + "enum": [ + "analog", + "angular", + "nextjs", + "react", + "nuxt", + "vue", + "sveltekit", + "astro", + "tanstack-start", + "remix", + "lynx", + "flutter", + "react-native", + "vite", + "other" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "default": [], + "in": "query" + }, + { + "name": "useCases", + "description": "List of use cases allowed for filtering site templates. Maximum of 100 use cases are allowed.", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string", + "enum": [ + "portfolio", + "starter", + "events", + "ecommerce", + "documentation", + "blog", + "ai", + "forms", + "dashboard" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "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, + "type": "integer", + "format": "int32", + "x-example": 1, + "default": 25, + "in": "query" + }, + { + "name": "offset", + "description": "Offset the list of returned templates. Maximum offset is 5000.", + "required": false, + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0, + "in": "query" + } + ] + } + }, + "\/sites\/templates\/{templateId}": { + "get": { + "summary": "Get site template", + "operationId": "sitesGetTemplate", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "sites" + ], + "description": "Get a site template using ID. You can use template details in [createSite](\/docs\/references\/cloud\/server-nodejs\/sites#create) method.", + "responses": { + "200": { + "description": "Template Site", + "schema": { + "$ref": "#\/definitions\/templateSite" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getTemplate", + "group": "templates", + "weight": 554, + "cookies": false, + "type": "", + "demo": "sites\/get-template.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "templateId", + "description": "Template ID.", + "required": true, + "type": "string", + "x-example": "<TEMPLATE_ID>", + "in": "path" + } + ] + } + }, + "\/sites\/usage": { + "get": { + "summary": "Get sites usage", + "operationId": "sitesListUsage", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "sites" + ], + "description": "Get usage metrics and statistics for all sites in the project. View statistics including total deployments, builds, logs, storage usage, and compute time. The response includes both current totals and historical data for each metric. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, defaults to 30 days.", + "responses": { + "200": { + "description": "UsageSites", + "schema": { + "$ref": "#\/definitions\/usageSites" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listUsage", + "group": null, + "weight": 555, + "cookies": false, + "type": "", + "demo": "sites\/list-usage.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.read", + "platforms": [ + "console" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "range", + "description": "Date range.", + "required": false, + "type": "string", + "x-example": "24h", + "enum": [ + "24h", + "30d", + "90d" + ], + "x-enum-name": "UsageRange", + "x-enum-keys": [ + "Twenty Four Hours", + "Thirty Days", + "Ninety Days" + ], + "default": "30d", + "in": "query" + } + ] + } + }, + "\/sites\/{siteId}": { + "get": { + "summary": "Get site", + "operationId": "sitesGet", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "sites" + ], + "description": "Get a site by its unique ID.", + "responses": { + "200": { + "description": "Site", + "schema": { + "$ref": "#\/definitions\/site" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "get", + "group": "sites", + "weight": 530, + "cookies": false, + "type": "", + "demo": "sites\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "type": "string", + "x-example": "<SITE_ID>", + "in": "path" + } + ] + }, + "put": { + "summary": "Update site", + "operationId": "sitesUpdate", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "sites" + ], + "description": "Update site by its unique ID.", + "responses": { + "200": { + "description": "Site", + "schema": { + "$ref": "#\/definitions\/site" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "update", + "group": "sites", + "weight": 630, + "cookies": false, + "type": "", + "demo": "sites\/update.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "type": "string", + "x-example": "<SITE_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Site name. Max length: 128 chars.", + "default": null, + "x-example": "<NAME>" + }, + "framework": { + "type": "string", + "description": "Sites framework.", + "default": null, + "x-example": "analog", + "enum": [ + "analog", + "angular", + "nextjs", + "react", + "nuxt", + "vue", + "sveltekit", + "astro", + "tanstack-start", + "remix", + "lynx", + "flutter", + "react-native", + "vite", + "other" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "enabled": { + "type": "boolean", + "description": "Is site enabled? When set to 'disabled', users cannot access the site but Server SDKs with and API key can still access the site. No data is lost when this is toggled.", + "default": true, + "x-example": false + }, + "logging": { + "type": "boolean", + "description": "When disabled, request logs will exclude logs and errors, and site responses will be slightly faster.", + "default": true, + "x-example": false + }, + "timeout": { + "type": "integer", + "description": "Maximum request time in seconds.", + "default": 30, + "x-example": 1, + "format": "int32" + }, + "installCommand": { + "type": "string", + "description": "Install Command.", + "default": "", + "x-example": "<INSTALL_COMMAND>" + }, + "buildCommand": { + "type": "string", + "description": "Build Command.", + "default": "", + "x-example": "<BUILD_COMMAND>" + }, + "outputDirectory": { + "type": "string", + "description": "Output Directory for site.", + "default": "", + "x-example": "<OUTPUT_DIRECTORY>" + }, + "buildRuntime": { + "type": "string", + "description": "Runtime to use during build step.", + "default": "", + "x-example": "node-14.5", + "enum": [ + "node-14.5", + "node-16.0", + "node-18.0", + "node-19.0", + "node-20.0", + "node-21.0", + "node-22", + "node-23", + "node-24", + "node-25", + "php-8.0", + "php-8.1", + "php-8.2", + "php-8.3", + "php-8.4", + "ruby-3.0", + "ruby-3.1", + "ruby-3.2", + "ruby-3.3", + "ruby-3.4", + "ruby-4.0", + "python-3.8", + "python-3.9", + "python-3.10", + "python-3.11", + "python-3.12", + "python-3.13", + "python-3.14", + "python-ml-3.11", + "python-ml-3.12", + "python-ml-3.13", + "deno-1.21", + "deno-1.24", + "deno-1.35", + "deno-1.40", + "deno-1.46", + "deno-2.0", + "deno-2.5", + "deno-2.6", + "dart-2.15", + "dart-2.16", + "dart-2.17", + "dart-2.18", + "dart-2.19", + "dart-3.0", + "dart-3.1", + "dart-3.3", + "dart-3.5", + "dart-3.8", + "dart-3.9", + "dart-3.10", + "dotnet-6.0", + "dotnet-7.0", + "dotnet-8.0", + "dotnet-10", + "java-8.0", + "java-11.0", + "java-17.0", + "java-18.0", + "java-21.0", + "java-22", + "java-25", + "swift-5.5", + "swift-5.8", + "swift-5.9", + "swift-5.10", + "swift-6.2", + "kotlin-1.6", + "kotlin-1.8", + "kotlin-1.9", + "kotlin-2.0", + "kotlin-2.3", + "cpp-17", + "cpp-20", + "bun-1.0", + "bun-1.1", + "bun-1.2", + "bun-1.3", + "go-1.23", + "go-1.24", + "go-1.25", + "go-1.26", + "static-1", + "flutter-3.24", + "flutter-3.27", + "flutter-3.29", + "flutter-3.32", + "flutter-3.35", + "flutter-3.38" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "adapter": { + "type": "string", + "description": "Framework adapter defining rendering strategy. Allowed values are: static, ssr", + "default": "", + "x-example": "static", + "enum": [ + "static", + "ssr" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "fallbackFile": { + "type": "string", + "description": "Fallback file for single page application sites.", + "default": "", + "x-example": "<FALLBACK_FILE>" + }, + "installationId": { + "type": "string", + "description": "Appwrite Installation ID for VCS (Version Control System) deployment.", + "default": "", + "x-example": "<INSTALLATION_ID>" + }, + "providerRepositoryId": { + "type": "string", + "description": "Repository ID of the repo linked to the site.", + "default": "", + "x-example": "<PROVIDER_REPOSITORY_ID>" + }, + "providerBranch": { + "type": "string", + "description": "Production branch for the repo linked to the site.", + "default": "", + "x-example": "<PROVIDER_BRANCH>" + }, + "providerSilentMode": { + "type": "boolean", + "description": "Is the VCS (Version Control System) connection in silent mode for the repo linked to the site? In silent mode, comments will not be made on commits and pull requests.", + "default": false, + "x-example": false + }, + "providerRootDirectory": { + "type": "string", + "description": "Path to site code in the linked repo.", + "default": "", + "x-example": "<PROVIDER_ROOT_DIRECTORY>" + }, + "specification": { + "type": "string", + "description": "Framework specification for the site and builds.", + "default": {}, + "x-example": null + } + }, + "required": [ + "name", + "framework" + ] + } + } + ] + }, + "delete": { + "summary": "Delete site", + "operationId": "sitesDelete", + "consumes": [ + "application\/json" + ], + "produces": [], + "tags": [ + "sites" + ], + "description": "Delete a site by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "delete", + "group": "sites", + "weight": 533, + "cookies": false, + "type": "", + "demo": "sites\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "type": "string", + "x-example": "<SITE_ID>", + "in": "path" + } + ] + } + }, + "\/sites\/{siteId}\/deployment": { + "patch": { + "summary": "Update site's deployment", + "operationId": "sitesUpdateSiteDeployment", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "sites" + ], + "description": "Update the site active deployment. Use this endpoint to switch the code deployment that should be used when visitor opens your site.", + "responses": { + "200": { + "description": "Site", + "schema": { + "$ref": "#\/definitions\/site" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateSiteDeployment", + "group": "sites", + "weight": 540, + "cookies": false, + "type": "", + "demo": "sites\/update-site-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "type": "string", + "x-example": "<SITE_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "deploymentId": { + "type": "string", + "description": "Deployment ID.", + "default": null, + "x-example": "<DEPLOYMENT_ID>" + } + }, + "required": [ + "deploymentId" + ] + } + } + ] + } + }, + "\/sites\/{siteId}\/deployments": { + "get": { + "summary": "List deployments", + "operationId": "sitesListDeployments", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "sites" + ], + "description": "Get a list of all the site's code deployments. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Deployments List", + "schema": { + "$ref": "#\/definitions\/deploymentList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listDeployments", + "group": "deployments", + "weight": 539, + "cookies": false, + "type": "", + "demo": "sites\/list-deployments.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "type": "string", + "x-example": "<SITE_ID>", + "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, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "type": "string", + "x-example": "<SEARCH>", + "default": "", + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" + } + ] + }, + "post": { + "summary": "Create deployment", + "operationId": "sitesCreateDeployment", + "consumes": [ + "multipart\/form-data" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "sites" + ], + "description": "Create a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the site's deployment to use your new deployment ID.", + "responses": { + "202": { + "description": "Deployment", + "schema": { + "$ref": "#\/definitions\/deployment" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createDeployment", + "group": "deployments", + "weight": 535, + "cookies": false, + "type": "upload", + "demo": "sites\/create-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": true, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "type": "string", + "x-example": "<SITE_ID>", + "in": "path" + }, + { + "name": "installCommand", + "description": "Install Commands.", + "required": false, + "type": "string", + "x-example": "<INSTALL_COMMAND>", + "in": "formData" + }, + { + "name": "buildCommand", + "description": "Build Commands.", + "required": false, + "type": "string", + "x-example": "<BUILD_COMMAND>", + "in": "formData" + }, + { + "name": "outputDirectory", + "description": "Output Directory.", + "required": false, + "type": "string", + "x-example": "<OUTPUT_DIRECTORY>", + "in": "formData" + }, + { + "name": "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.", + "required": true, + "type": "file", + "in": "formData" + }, + { + "name": "activate", + "description": "Automatically activate the deployment when it is finished building.", + "required": false, + "type": "boolean", + "x-example": false, + "default": false, + "in": "formData" + } + ] + } + }, + "\/sites\/{siteId}\/deployments\/duplicate": { + "post": { + "summary": "Create duplicate deployment", + "operationId": "sitesCreateDuplicateDeployment", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "sites" + ], + "description": "Create a new build for an existing site deployment. This endpoint allows you to rebuild a deployment with the updated site configuration, including its commands and output directory if they have been modified. The build process will be queued and executed asynchronously. The original deployment's code will be preserved and used for the new build.", + "responses": { + "202": { + "description": "Deployment", + "schema": { + "$ref": "#\/definitions\/deployment" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createDuplicateDeployment", + "group": "deployments", + "weight": 543, + "cookies": false, + "type": "", + "demo": "sites\/create-duplicate-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "type": "string", + "x-example": "<SITE_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "deploymentId": { + "type": "string", + "description": "Deployment ID.", + "default": null, + "x-example": "<DEPLOYMENT_ID>" + } + }, + "required": [ + "deploymentId" + ] + } + } + ] + } + }, + "\/sites\/{siteId}\/deployments\/template": { + "post": { + "summary": "Create template deployment", + "operationId": "sitesCreateTemplateDeployment", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "sites" + ], + "description": "Create a deployment based on a template.\n\nUse this endpoint with combination of [listTemplates](https:\/\/appwrite.io\/docs\/products\/sites\/templates) to find the template details.", + "responses": { + "202": { + "description": "Deployment", + "schema": { + "$ref": "#\/definitions\/deployment" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createTemplateDeployment", + "group": "deployments", + "weight": 536, + "cookies": false, + "type": "", + "demo": "sites\/create-template-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "type": "string", + "x-example": "<SITE_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "repository": { + "type": "string", + "description": "Repository name of the template.", + "default": null, + "x-example": "<REPOSITORY>" + }, + "owner": { + "type": "string", + "description": "The name of the owner of the template.", + "default": null, + "x-example": "<OWNER>" + }, + "rootDirectory": { + "type": "string", + "description": "Path to site code in the template repo.", + "default": null, + "x-example": "<ROOT_DIRECTORY>" + }, + "type": { + "type": "string", + "description": "Type for the reference provided. Can be commit, branch, or tag", + "default": null, + "x-example": "branch", + "enum": [ + "branch", + "commit", + "tag" + ], + "x-enum-name": "TemplateReferenceType", + "x-enum-keys": [] + }, + "reference": { + "type": "string", + "description": "Reference value, can be a commit hash, branch name, or release tag", + "default": null, + "x-example": "<REFERENCE>" + }, + "activate": { + "type": "boolean", + "description": "Automatically activate the deployment when it is finished building.", + "default": false, + "x-example": false + } + }, + "required": [ + "repository", + "owner", + "rootDirectory", + "type", + "reference" + ] + } + } + ] + } + }, + "\/sites\/{siteId}\/deployments\/vcs": { + "post": { + "summary": "Create VCS deployment", + "operationId": "sitesCreateVcsDeployment", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "sites" + ], + "description": "Create a deployment when a site is connected to VCS.\n\nThis endpoint lets you create deployment from a branch, commit, or a tag.", + "responses": { + "202": { + "description": "Deployment", + "schema": { + "$ref": "#\/definitions\/deployment" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createVcsDeployment", + "group": "deployments", + "weight": 537, + "cookies": false, + "type": "", + "demo": "sites\/create-vcs-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "type": "string", + "x-example": "<SITE_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Type of reference passed. Allowed values are: branch, commit", + "default": null, + "x-example": "branch", + "enum": [ + "branch", + "commit", + "tag" + ], + "x-enum-name": "VCSReferenceType", + "x-enum-keys": [] + }, + "reference": { + "type": "string", + "description": "VCS reference to create deployment from. Depending on type this can be: branch name, commit hash", + "default": null, + "x-example": "<REFERENCE>" + }, + "activate": { + "type": "boolean", + "description": "Automatically activate the deployment when it is finished building.", + "default": false, + "x-example": false + } + }, + "required": [ + "type", + "reference" + ] + } + } + ] + } + }, + "\/sites\/{siteId}\/deployments\/{deploymentId}": { + "get": { + "summary": "Get deployment", + "operationId": "sitesGetDeployment", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "sites" + ], + "description": "Get a site deployment by its unique ID.", + "responses": { + "200": { + "description": "Deployment", + "schema": { + "$ref": "#\/definitions\/deployment" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getDeployment", + "group": "deployments", + "weight": 538, + "cookies": false, + "type": "", + "demo": "sites\/get-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, "type": "string", - "x-example": "af", + "x-example": "<SITE_ID>", + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "type": "string", + "x-example": "<DEPLOYMENT_ID>", + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete deployment", + "operationId": "sitesDeleteDeployment", + "consumes": [ + "application\/json" + ], + "produces": [], + "tags": [ + "sites" + ], + "description": "Delete a site deployment by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteDeployment", + "group": "deployments", + "weight": 541, + "cookies": false, + "type": "", + "demo": "sites\/delete-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "type": "string", + "x-example": "<SITE_ID>", + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "type": "string", + "x-example": "<DEPLOYMENT_ID>", + "in": "path" + } + ] + } + }, + "\/sites\/{siteId}\/deployments\/{deploymentId}\/download": { + "get": { + "summary": "Get deployment download", + "operationId": "sitesGetDeploymentDownload", + "consumes": [], + "produces": [ + "*\/*" + ], + "tags": [ + "sites" + ], + "description": "Get a site deployment content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory.", + "responses": { + "200": { + "description": "File", + "schema": { + "type": "file" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getDeploymentDownload", + "group": "deployments", + "weight": 542, + "cookies": false, + "type": "location", + "demo": "sites\/get-deployment-download.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "type": "string", + "x-example": "<SITE_ID>", + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "type": "string", + "x-example": "<DEPLOYMENT_ID>", + "in": "path" + }, + { + "name": "type", + "description": "Deployment file to download. Can be: \"source\", \"output\".", + "required": false, + "type": "string", + "x-example": "source", "enum": [ - "af", - "ar-ae", - "ar-bh", - "ar-dz", - "ar-eg", - "ar-iq", - "ar-jo", - "ar-kw", - "ar-lb", - "ar-ly", - "ar-ma", - "ar-om", - "ar-qa", - "ar-sa", - "ar-sy", - "ar-tn", - "ar-ye", - "as", - "az", - "be", - "bg", - "bh", - "bn", - "bs", - "ca", - "cs", - "cy", - "da", - "de", - "de-at", - "de-ch", - "de-li", - "de-lu", - "el", - "en", - "en-au", - "en-bz", - "en-ca", - "en-gb", - "en-ie", - "en-jm", - "en-nz", - "en-tt", - "en-us", - "en-za", - "eo", - "es", - "es-ar", - "es-bo", - "es-cl", - "es-co", - "es-cr", - "es-do", - "es-ec", - "es-gt", - "es-hn", - "es-mx", - "es-ni", - "es-pa", - "es-pe", - "es-pr", - "es-py", - "es-sv", - "es-uy", - "es-ve", - "et", - "eu", - "fa", - "fi", - "fo", - "fr", - "fr-be", - "fr-ca", - "fr-ch", - "fr-lu", - "ga", - "gd", - "he", - "hi", - "hr", - "hu", - "id", - "is", - "it", - "it-ch", - "ja", - "ji", - "ko", - "ku", - "lt", - "lv", - "mk", - "ml", - "ms", - "mt", - "nb", - "ne", - "nl", - "nl-be", - "nn", - "no", - "pa", - "pl", - "pt", - "pt-br", - "rm", - "ro", - "ro-md", - "ru", - "ru-md", - "sb", - "sk", - "sl", - "sq", - "sr", - "sv", - "sv-fi", - "th", - "tn", - "tr", - "ts", - "ua", - "ur", - "ve", - "vi", - "xh", - "zh-cn", - "zh-hk", - "zh-sg", - "zh-tw", - "zu" + "source", + "output" ], - "x-enum-name": "SmsTemplateLocale", + "x-enum-name": "DeploymentDownloadType", "x-enum-keys": [], + "default": "source", + "in": "query" + } + ] + } + }, + "\/sites\/{siteId}\/deployments\/{deploymentId}\/status": { + "patch": { + "summary": "Update deployment status", + "operationId": "sitesUpdateDeploymentStatus", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "sites" + ], + "description": "Cancel an ongoing site deployment build. If the build is already in progress, it will be stopped and marked as canceled. If the build hasn't started yet, it will be marked as canceled without executing. You cannot cancel builds that have already completed (status 'ready') or failed. The response includes the final build status and details.", + "responses": { + "200": { + "description": "Deployment", + "schema": { + "$ref": "#\/definitions\/deployment" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateDeploymentStatus", + "group": "deployments", + "weight": 544, + "cookies": false, + "type": "", + "demo": "sites\/update-deployment-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "type": "string", + "x-example": "<SITE_ID>", + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "type": "string", + "x-example": "<DEPLOYMENT_ID>", + "in": "path" + } + ] + } + }, + "\/sites\/{siteId}\/logs": { + "get": { + "summary": "List logs", + "operationId": "sitesListLogs", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "sites" + ], + "description": "Get a list of all site logs. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Executions List", + "schema": { + "$ref": "#\/definitions\/executionList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listLogs", + "group": "logs", + "weight": 546, + "cookies": false, + "type": "", + "demo": "sites\/list-logs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "log.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "type": "string", + "x-example": "<SITE_ID>", + "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, + "type": "array", + "collectionFormat": "multi", + "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, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" + } + ] + } + }, + "\/sites\/{siteId}\/logs\/{logId}": { + "get": { + "summary": "Get log", + "operationId": "sitesGetLog", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "sites" + ], + "description": "Get a site request log by its unique ID.", + "responses": { + "200": { + "description": "Execution", + "schema": { + "$ref": "#\/definitions\/execution" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getLog", + "group": "logs", + "weight": 545, + "cookies": false, + "type": "", + "demo": "sites\/get-log.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "log.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "type": "string", + "x-example": "<SITE_ID>", + "in": "path" + }, + { + "name": "logId", + "description": "Log ID.", + "required": true, + "type": "string", + "x-example": "<LOG_ID>", + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete log", + "operationId": "sitesDeleteLog", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "sites" + ], + "description": "Delete a site log by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteLog", + "group": "logs", + "weight": 547, + "cookies": false, + "type": "", + "demo": "sites\/delete-log.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "log.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "type": "string", + "x-example": "<SITE_ID>", + "in": "path" + }, + { + "name": "logId", + "description": "Log ID.", + "required": true, + "type": "string", + "x-example": "<LOG_ID>", "in": "path" } ] } }, - "\/projects\/{projectId}\/webhooks": { + "\/sites\/{siteId}\/usage": { "get": { - "summary": "List webhooks", - "operationId": "projectsListWebhooks", + "summary": "Get site usage", + "operationId": "sitesGetUsage", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "projects" + "sites" ], - "description": "Get a list of all webhooks belonging to the project. You can use the query params to filter your results. ", + "description": "Get usage metrics and statistics for a for a specific site. View statistics including total deployments, builds, executions, storage usage, and compute time. The response includes both current totals and historical data for each metric. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, defaults to 30 days.", "responses": { "200": { - "description": "Webhooks List", + "description": "UsageSite", "schema": { - "$ref": "#\/definitions\/webhookList" + "$ref": "#\/definitions\/usageSite" } } }, "deprecated": false, "x-appwrite": { - "method": "listWebhooks", - "group": "webhooks", - "weight": 75, + "method": "getUsage", + "group": null, + "weight": 556, "cookies": false, "type": "", - "demo": "projects\/list-webhooks.md", + "demo": "sites\/get-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.read", + "scope": "sites.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/list-webhooks.md", "auth": { "Project": [] } @@ -43135,27 +50059,98 @@ ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "type": "string", - "x-example": "<PROJECT_ID>", + "x-example": "<SITE_ID>", "in": "path" }, { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "name": "range", + "description": "Date range.", "required": false, - "type": "boolean", - "x-example": false, - "default": true, + "type": "string", + "x-example": "24h", + "enum": [ + "24h", + "30d", + "90d" + ], + "x-enum-name": "UsageRange", + "x-enum-keys": [ + "Twenty Four Hours", + "Thirty Days", + "Ninety Days" + ], + "default": "30d", "in": "query" } ] + } + }, + "\/sites\/{siteId}\/variables": { + "get": { + "summary": "List variables", + "operationId": "sitesListVariables", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "sites" + ], + "description": "Get a list of all variables of a specific site.", + "responses": { + "200": { + "description": "Variables List", + "schema": { + "$ref": "#\/definitions\/variableList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listVariables", + "group": "variables", + "weight": 550, + "cookies": false, + "type": "", + "demo": "sites\/list-variables.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site unique ID.", + "required": true, + "type": "string", + "x-example": "<SITE_ID>", + "in": "path" + } + ] }, "post": { - "summary": "Create webhook", - "operationId": "projectsCreateWebhook", + "summary": "Create variable", + "operationId": "sitesCreateVariable", "consumes": [ "application\/json" ], @@ -43163,51 +50158,52 @@ "application\/json" ], "tags": [ - "projects" + "sites" ], - "description": "Create a new webhook. Use this endpoint to configure a URL that will receive events from Appwrite when specific events occur. ", + "description": "Create a new site variable. These variables can be accessed during build and runtime (server-side rendering) as environment variables.", "responses": { "201": { - "description": "Webhook", + "description": "Variable", "schema": { - "$ref": "#\/definitions\/webhook" + "$ref": "#\/definitions\/variable" } } }, "deprecated": false, "x-appwrite": { - "method": "createWebhook", - "group": "webhooks", - "weight": 74, + "method": "createVariable", + "group": "variables", + "weight": 631, "cookies": false, "type": "", - "demo": "projects\/create-webhook.md", + "demo": "sites\/create-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "sites.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/create-webhook.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "siteId", + "description": "Site unique ID.", "required": true, "type": "string", - "x-example": "<PROJECT_ID>", + "x-example": "<SITE_ID>", "in": "path" }, { @@ -43216,132 +50212,104 @@ "schema": { "type": "object", "properties": { - "name": { + "key": { "type": "string", - "description": "Webhook name. Max length: 128 chars.", - "default": null, - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Enable or disable a webhook.", - "default": true, - "x-example": false - }, - "events": { - "type": "array", - "description": "Events list. Maximum of 100 events are allowed.", + "description": "Variable key. Max length: 255 chars.", "default": null, - "x-example": null, - "items": { - "type": "string" - } + "x-example": "<KEY>" }, - "url": { + "value": { "type": "string", - "description": "Webhook URL.", + "description": "Variable value. Max length: 8192 chars.", "default": null, - "x-example": null + "x-example": "<VALUE>" }, - "security": { + "secret": { "type": "boolean", - "description": "Certificate verification, false for disabled or true for enabled.", - "default": null, + "description": "Secret variables can be updated or deleted, but only sites can read them during build and runtime.", + "default": true, "x-example": false - }, - "httpUser": { - "type": "string", - "description": "Webhook HTTP user. Max length: 256 chars.", - "default": "", - "x-example": "<HTTP_USER>" - }, - "httpPass": { - "type": "string", - "description": "Webhook HTTP password. Max length: 256 chars.", - "default": "", - "x-example": "<HTTP_PASS>" } }, "required": [ - "name", - "events", - "url", - "security" + "key", + "value" ] } } ] } }, - "\/projects\/{projectId}\/webhooks\/{webhookId}": { + "\/sites\/{siteId}\/variables\/{variableId}": { "get": { - "summary": "Get webhook", - "operationId": "projectsGetWebhook", + "summary": "Get variable", + "operationId": "sitesGetVariable", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "projects" + "sites" ], - "description": "Get a webhook by its unique ID. This endpoint returns details about a specific webhook configured for a project. ", + "description": "Get a variable by its unique ID.", "responses": { "200": { - "description": "Webhook", + "description": "Variable", "schema": { - "$ref": "#\/definitions\/webhook" + "$ref": "#\/definitions\/variable" } } }, "deprecated": false, "x-appwrite": { - "method": "getWebhook", - "group": "webhooks", - "weight": 76, + "method": "getVariable", + "group": "variables", + "weight": 549, "cookies": false, "type": "", - "demo": "projects\/get-webhook.md", + "demo": "sites\/get-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.read", + "scope": "sites.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/get-webhook.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "siteId", + "description": "Site unique ID.", "required": true, "type": "string", - "x-example": "<PROJECT_ID>", + "x-example": "<SITE_ID>", "in": "path" }, { - "name": "webhookId", - "description": "Webhook unique ID.", + "name": "variableId", + "description": "Variable unique ID.", "required": true, "type": "string", - "x-example": "<WEBHOOK_ID>", + "x-example": "<VARIABLE_ID>", "in": "path" } ] }, "put": { - "summary": "Update webhook", - "operationId": "projectsUpdateWebhook", + "summary": "Update variable", + "operationId": "sitesUpdateVariable", "consumes": [ "application\/json" ], @@ -43349,59 +50317,60 @@ "application\/json" ], "tags": [ - "projects" + "sites" ], - "description": "Update a webhook by its unique ID. Use this endpoint to update the URL, events, or status of an existing webhook. ", + "description": "Update variable by its unique ID.", "responses": { "200": { - "description": "Webhook", + "description": "Variable", "schema": { - "$ref": "#\/definitions\/webhook" + "$ref": "#\/definitions\/variable" } } }, "deprecated": false, "x-appwrite": { - "method": "updateWebhook", - "group": "webhooks", - "weight": 77, + "method": "updateVariable", + "group": "variables", + "weight": 551, "cookies": false, "type": "", - "demo": "projects\/update-webhook.md", + "demo": "sites\/update-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "sites.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-webhook.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "projectId", - "description": "Project unique ID.", + "name": "siteId", + "description": "Site unique ID.", "required": true, "type": "string", - "x-example": "<PROJECT_ID>", + "x-example": "<SITE_ID>", "in": "path" }, { - "name": "webhookId", - "description": "Webhook unique ID.", + "name": "variableId", + "description": "Variable unique ID.", "required": true, "type": "string", - "x-example": "<WEBHOOK_ID>", + "x-example": "<VARIABLE_ID>", "in": "path" }, { @@ -43410,73 +50379,45 @@ "schema": { "type": "object", "properties": { - "name": { + "key": { "type": "string", - "description": "Webhook name. Max length: 128 chars.", - "default": null, - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Enable or disable a webhook.", - "default": true, - "x-example": false - }, - "events": { - "type": "array", - "description": "Events list. Maximum of 100 events are allowed.", + "description": "Variable key. Max length: 255 chars.", "default": null, - "x-example": null, - "items": { - "type": "string" - } + "x-example": "<KEY>" }, - "url": { + "value": { "type": "string", - "description": "Webhook URL.", + "description": "Variable value. Max length: 8192 chars.", "default": null, - "x-example": null + "x-example": "<VALUE>", + "x-nullable": true }, - "security": { + "secret": { "type": "boolean", - "description": "Certificate verification, false for disabled or true for enabled.", + "description": "Secret variables can be updated or deleted, but only sites can read them during build and runtime.", "default": null, - "x-example": false - }, - "httpUser": { - "type": "string", - "description": "Webhook HTTP user. Max length: 256 chars.", - "default": "", - "x-example": "<HTTP_USER>" - }, - "httpPass": { - "type": "string", - "description": "Webhook HTTP password. Max length: 256 chars.", - "default": "", - "x-example": "<HTTP_PASS>" + "x-example": false, + "x-nullable": true } }, "required": [ - "name", - "events", - "url", - "security" + "key" ] } } ] }, "delete": { - "summary": "Delete webhook", - "operationId": "projectsDeleteWebhook", + "summary": "Delete variable", + "operationId": "sitesDeleteVariable", "consumes": [ "application\/json" ], "produces": [], "tags": [ - "projects" + "sites" ], - "description": "Delete a webhook by its unique ID. Once deleted, the webhook will no longer receive project events. ", + "description": "Delete a variable by its unique ID.", "responses": { "204": { "description": "No content" @@ -43484,170 +50425,105 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteWebhook", - "group": "webhooks", - "weight": 79, - "cookies": false, - "type": "", - "demo": "projects\/delete-webhook.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/delete-webhook.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "projectId", - "description": "Project unique ID.", - "required": true, - "type": "string", - "x-example": "<PROJECT_ID>", - "in": "path" - }, - { - "name": "webhookId", - "description": "Webhook unique ID.", - "required": true, - "type": "string", - "x-example": "<WEBHOOK_ID>", - "in": "path" - } - ] - } - }, - "\/projects\/{projectId}\/webhooks\/{webhookId}\/signature": { - "patch": { - "summary": "Update webhook signature key", - "operationId": "projectsUpdateWebhookSignature", - "consumes": [ - "application\/json" - ], - "produces": [ - "application\/json" - ], - "tags": [ - "projects" - ], - "description": "Update the webhook signature key. This endpoint can be used to regenerate the signature key used to sign and validate payload deliveries for a specific webhook. ", - "responses": { - "200": { - "description": "Webhook", - "schema": { - "$ref": "#\/definitions\/webhook" - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "updateWebhookSignature", - "group": "webhooks", - "weight": 78, + "method": "deleteVariable", + "group": "variables", + "weight": 552, "cookies": false, "type": "", - "demo": "projects\/update-webhook-signature.md", + "demo": "sites\/delete-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "projects.write", + "scope": "sites.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/projects\/update-webhook-signature.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ - { - "name": "projectId", - "description": "Project unique ID.", + { + "name": "siteId", + "description": "Site unique ID.", "required": true, "type": "string", - "x-example": "<PROJECT_ID>", + "x-example": "<SITE_ID>", "in": "path" }, { - "name": "webhookId", - "description": "Webhook unique ID.", + "name": "variableId", + "description": "Variable unique ID.", "required": true, "type": "string", - "x-example": "<WEBHOOK_ID>", + "x-example": "<VARIABLE_ID>", "in": "path" } ] } }, - "\/proxy\/rules": { + "\/storage\/buckets": { "get": { - "summary": "List rules", - "operationId": "proxyListRules", + "summary": "List buckets", + "operationId": "storageListBuckets", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "proxy" + "storage" ], - "description": "Get a list of all the proxy rules. You can use the query params to filter your results.", + "description": "Get a list of all the storage buckets. You can use the query params to filter your results.", "responses": { "200": { - "description": "Rule List", + "description": "Buckets List", "schema": { - "$ref": "#\/definitions\/proxyRuleList" + "$ref": "#\/definitions\/bucketList" } } }, "deprecated": false, "x-appwrite": { - "method": "listRules", - "group": null, - "weight": 787, + "method": "listBuckets", + "group": "buckets", + "weight": 598, "cookies": false, "type": "", - "demo": "proxy\/list-rules.md", + "demo": "storage\/list-buckets.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rules.read", + "scope": "buckets.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/list-buckets.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "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 the following attributes: domain, type, trigger, deploymentResourceType, deploymentResourceId, deploymentId, deploymentVcsProviderBranch", + "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: enabled, name, fileSecurity, maximumFileSize, encryption, antivirus, transformations", "required": false, "type": "array", "collectionFormat": "multi", @@ -43676,12 +50552,10 @@ "in": "query" } ] - } - }, - "\/proxy\/rules\/api": { + }, "post": { - "summary": "Create API rule", - "operationId": "proxyCreateAPIRule", + "summary": "Create bucket", + "operationId": "storageCreateBucket", "consumes": [ "application\/json" ], @@ -43689,41 +50563,44 @@ "application\/json" ], "tags": [ - "proxy" + "storage" ], - "description": "Create a new proxy rule for serving Appwrite's API on custom domain.", + "description": "Create a new storage bucket.", "responses": { "201": { - "description": "Rule", + "description": "Bucket", "schema": { - "$ref": "#\/definitions\/proxyRule" + "$ref": "#\/definitions\/bucket" } } }, "deprecated": false, "x-appwrite": { - "method": "createAPIRule", - "group": null, - "weight": 782, + "method": "createBucket", + "group": "buckets", + "weight": 596, "cookies": false, "type": "", - "demo": "proxy\/create-api-rule.md", - "rate-limit": 10, - "rate-time": 60, - "rate-key": "userId:{userId}, url:{url}", - "scope": "rules.write", + "demo": "storage\/create-bucket.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "buckets.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/create-bucket.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ @@ -43733,229 +50610,160 @@ "schema": { "type": "object", "properties": { - "domain": { + "bucketId": { "type": "string", - "description": "Domain name.", + "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.", "default": null, - "x-example": null - } - }, - "required": [ - "domain" - ] - } - } - ] - } - }, - "\/proxy\/rules\/function": { - "post": { - "summary": "Create function rule", - "operationId": "proxyCreateFunctionRule", - "consumes": [ - "application\/json" - ], - "produces": [ - "application\/json" - ], - "tags": [ - "proxy" - ], - "description": "Create a new proxy rule for executing Appwrite Function on custom domain.", - "responses": { - "201": { - "description": "Rule", - "schema": { - "$ref": "#\/definitions\/proxyRule" - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "createFunctionRule", - "group": null, - "weight": 784, - "cookies": false, - "type": "", - "demo": "proxy\/create-function-rule.md", - "rate-limit": 10, - "rate-time": 60, - "rate-key": "userId:{userId}, url:{url}", - "scope": "rules.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "domain": { + "x-example": "<BUCKET_ID>" + }, + "name": { "type": "string", - "description": "Domain name.", + "description": "Bucket name", "default": null, - "x-example": null + "x-example": "<NAME>" }, - "functionId": { - "type": "string", - "description": "ID of function to be executed.", + "permissions": { + "type": "array", + "description": "An array of permission strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", "default": null, - "x-example": "<FUNCTION_ID>" + "x-example": "[\"read(\"any\")\"]", + "x-nullable": true, + "items": { + "type": "string" + } }, - "branch": { + "fileSecurity": { + "type": "boolean", + "description": "Enables configuring permissions for individual file. A user needs one of file or bucket level permissions to access a file. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "default": false, + "x-example": false + }, + "enabled": { + "type": "boolean", + "description": "Is bucket enabled? When set to 'disabled', users cannot access the files in this bucket but Server SDKs with and API key can still access the bucket. No files are lost when this is toggled.", + "default": true, + "x-example": false + }, + "maximumFileSize": { + "type": "integer", + "description": "Maximum file size allowed in bytes. Maximum allowed value is 5GB.", + "default": {}, + "x-example": 1, + "format": "int32" + }, + "allowedFileExtensions": { + "type": "array", + "description": "Allowed file extensions. Maximum of 100 extensions are allowed, each 64 characters long.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "compression": { "type": "string", - "description": "Name of VCS branch to deploy changes automatically", - "default": "", - "x-example": "<BRANCH>" + "description": "Compression algorithm chosen for compression. Can be one of none, [gzip](https:\/\/en.wikipedia.org\/wiki\/Gzip), or [zstd](https:\/\/en.wikipedia.org\/wiki\/Zstd), For file size above 20MB compression is skipped even if it's enabled", + "default": "none", + "x-example": "none", + "enum": [ + "none", + "gzip", + "zstd" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "encryption": { + "type": "boolean", + "description": "Is encryption enabled? For file size above 20MB encryption is skipped even if it's enabled", + "default": true, + "x-example": false + }, + "antivirus": { + "type": "boolean", + "description": "Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled", + "default": true, + "x-example": false + }, + "transformations": { + "type": "boolean", + "description": "Are image transformations enabled?", + "default": true, + "x-example": false } }, "required": [ - "domain", - "functionId" + "bucketId", + "name" ] } } ] } }, - "\/proxy\/rules\/redirect": { - "post": { - "summary": "Create Redirect rule", - "operationId": "proxyCreateRedirectRule", - "consumes": [ - "application\/json" - ], + "\/storage\/buckets\/{bucketId}": { + "get": { + "summary": "Get bucket", + "operationId": "storageGetBucket", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "proxy" + "storage" ], - "description": "Create a new proxy rule for to redirect from custom domain to another domain.", + "description": "Get a storage bucket by its unique ID. This endpoint response returns a JSON object with the storage bucket metadata.", "responses": { - "201": { - "description": "Rule", + "200": { + "description": "Bucket", "schema": { - "$ref": "#\/definitions\/proxyRule" + "$ref": "#\/definitions\/bucket" } } }, "deprecated": false, "x-appwrite": { - "method": "createRedirectRule", - "group": null, - "weight": 785, + "method": "getBucket", + "group": "buckets", + "weight": 597, "cookies": false, "type": "", - "demo": "proxy\/create-redirect-rule.md", - "rate-limit": 10, - "rate-time": 60, - "rate-key": "userId:{userId}, url:{url}", - "scope": "rules.write", + "demo": "storage\/get-bucket.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "buckets.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-bucket.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "domain": { - "type": "string", - "description": "Domain name.", - "default": null, - "x-example": null - }, - "url": { - "type": "string", - "description": "Target URL of redirection", - "default": null, - "x-example": "https:\/\/example.com", - "format": "url" - }, - "statusCode": { - "type": "string", - "description": "Status code of redirection", - "default": null, - "x-example": "301", - "enum": [ - "301", - "302", - "307", - "308" - ], - "x-enum-name": null, - "x-enum-keys": [ - "Moved Permanently 301", - "Found 302", - "Temporary Redirect 307", - "Permanent Redirect 308" - ] - }, - "resourceId": { - "type": "string", - "description": "ID of parent resource.", - "default": null, - "x-example": "<RESOURCE_ID>" - }, - "resourceType": { - "type": "string", - "description": "Type of parent resource.", - "default": null, - "x-example": "site", - "enum": [ - "site", - "function" - ], - "x-enum-name": "ProxyResourceType", - "x-enum-keys": [ - "Site", - "Function" - ] - } - }, - "required": [ - "domain", - "url", - "statusCode", - "resourceId", - "resourceType" - ] - } + "name": "bucketId", + "description": "Bucket unique ID.", + "required": true, + "type": "string", + "x-example": "<BUCKET_ID>", + "in": "path" } ] - } - }, - "\/proxy\/rules\/site": { - "post": { - "summary": "Create site rule", - "operationId": "proxyCreateSiteRule", + }, + "put": { + "summary": "Update bucket", + "operationId": "storageUpdateBucket", "consumes": [ "application\/json" ], @@ -43963,146 +50771,155 @@ "application\/json" ], "tags": [ - "proxy" + "storage" ], - "description": "Create a new proxy rule for serving Appwrite Site on custom domain.", + "description": "Update a storage bucket by its unique ID.", "responses": { - "201": { - "description": "Rule", + "200": { + "description": "Bucket", "schema": { - "$ref": "#\/definitions\/proxyRule" + "$ref": "#\/definitions\/bucket" } } }, "deprecated": false, "x-appwrite": { - "method": "createSiteRule", - "group": null, - "weight": 783, + "method": "updateBucket", + "group": "buckets", + "weight": 599, "cookies": false, "type": "", - "demo": "proxy\/create-site-rule.md", - "rate-limit": 10, - "rate-time": 60, - "rate-key": "userId:{userId}, url:{url}", - "scope": "rules.write", + "demo": "storage\/update-bucket.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "buckets.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/update-bucket.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ + { + "name": "bucketId", + "description": "Bucket unique ID.", + "required": true, + "type": "string", + "x-example": "<BUCKET_ID>", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "domain": { + "name": { "type": "string", - "description": "Domain name.", + "description": "Bucket name", "default": null, - "x-example": null + "x-example": "<NAME>" }, - "siteId": { - "type": "string", - "description": "ID of site to be executed.", + "permissions": { + "type": "array", + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", "default": null, - "x-example": "<SITE_ID>" + "x-example": "[\"read(\"any\")\"]", + "x-nullable": true, + "items": { + "type": "string" + } }, - "branch": { + "fileSecurity": { + "type": "boolean", + "description": "Enables configuring permissions for individual file. A user needs one of file or bucket level permissions to access a file. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "default": false, + "x-example": false + }, + "enabled": { + "type": "boolean", + "description": "Is bucket enabled? When set to 'disabled', users cannot access the files in this bucket but Server SDKs with and API key can still access the bucket. No files are lost when this is toggled.", + "default": true, + "x-example": false + }, + "maximumFileSize": { + "type": "integer", + "description": "Maximum file size allowed in bytes. Maximum allowed value is 5GB.", + "default": {}, + "x-example": 1, + "format": "int32" + }, + "allowedFileExtensions": { + "type": "array", + "description": "Allowed file extensions. Maximum of 100 extensions are allowed, each 64 characters long.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "compression": { "type": "string", - "description": "Name of VCS branch to deploy changes automatically", - "default": "", - "x-example": "<BRANCH>" - } - }, - "required": [ - "domain", - "siteId" - ] - } - } - ] - } - }, - "\/proxy\/rules\/{ruleId}": { - "get": { - "summary": "Get rule", - "operationId": "proxyGetRule", - "consumes": [], - "produces": [ - "application\/json" - ], - "tags": [ - "proxy" - ], - "description": "Get a proxy rule by its unique ID.", - "responses": { - "200": { - "description": "Rule", - "schema": { - "$ref": "#\/definitions\/proxyRule" + "description": "Compression algorithm chosen for compression. Can be one of none, [gzip](https:\/\/en.wikipedia.org\/wiki\/Gzip), or [zstd](https:\/\/en.wikipedia.org\/wiki\/Zstd), For file size above 20MB compression is skipped even if it's enabled", + "default": "none", + "x-example": "none", + "enum": [ + "none", + "gzip", + "zstd" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "encryption": { + "type": "boolean", + "description": "Is encryption enabled? For file size above 20MB encryption is skipped even if it's enabled", + "default": true, + "x-example": false + }, + "antivirus": { + "type": "boolean", + "description": "Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled", + "default": true, + "x-example": false + }, + "transformations": { + "type": "boolean", + "description": "Are image transformations enabled?", + "default": true, + "x-example": false + } + }, + "required": [ + "name" + ] } } - }, - "deprecated": false, - "x-appwrite": { - "method": "getRule", - "group": null, - "weight": 786, - "cookies": false, - "type": "", - "demo": "proxy\/get-rule.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "rules.read", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "ruleId", - "description": "Rule ID.", - "required": true, - "type": "string", - "x-example": "<RULE_ID>", - "in": "path" - } ] }, "delete": { - "summary": "Delete rule", - "operationId": "proxyDeleteRule", + "summary": "Delete bucket", + "operationId": "storageDeleteBucket", "consumes": [ "application\/json" ], "produces": [], "tags": [ - "proxy" + "storage" ], - "description": "Delete a proxy rule by its unique ID.", + "description": "Delete a storage bucket by its unique ID.", "responses": { "204": { "description": "No content" @@ -44110,140 +50927,85 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteRule", - "group": null, - "weight": 788, - "cookies": false, - "type": "", - "demo": "proxy\/delete-rule.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "rules.write", - "platforms": [ - "console" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [] - } - ], - "parameters": [ - { - "name": "ruleId", - "description": "Rule ID.", - "required": true, - "type": "string", - "x-example": "<RULE_ID>", - "in": "path" - } - ] - } - }, - "\/proxy\/rules\/{ruleId}\/verification": { - "patch": { - "summary": "Update rule verification status", - "operationId": "proxyUpdateRuleVerification", - "consumes": [ - "application\/json" - ], - "produces": [ - "application\/json" - ], - "tags": [ - "proxy" - ], - "description": "Retry getting verification process of a proxy rule. This endpoint triggers domain verification by checking DNS records (CNAME) against the configured target domain. If verification is successful, a TLS certificate will be automatically provisioned for the domain.", - "responses": { - "200": { - "description": "Rule", - "schema": { - "$ref": "#\/definitions\/proxyRule" - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "updateRuleVerification", - "group": null, - "weight": 789, + "method": "deleteBucket", + "group": "buckets", + "weight": 600, "cookies": false, "type": "", - "demo": "proxy\/update-rule-verification.md", + "demo": "storage\/delete-bucket.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "rules.write", + "scope": "buckets.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/delete-bucket.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "ruleId", - "description": "Rule ID.", + "name": "bucketId", + "description": "Bucket unique ID.", "required": true, "type": "string", - "x-example": "<RULE_ID>", + "x-example": "<BUCKET_ID>", "in": "path" } ] } }, - "\/sites": { + "\/storage\/buckets\/{bucketId}\/files": { "get": { - "summary": "List sites", - "operationId": "sitesList", + "summary": "List files", + "operationId": "storageListFiles", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "sites" + "storage" ], - "description": "Get a list of all the project's sites. You can use the query params to filter your results.", + "description": "Get a list of all the user files. You can use the query params to filter your results.", "responses": { "200": { - "description": "Sites List", + "description": "Files List", "schema": { - "$ref": "#\/definitions\/siteList" + "$ref": "#\/definitions\/fileList" } } }, "deprecated": false, "x-appwrite": { - "method": "list", - "group": "sites", - "weight": 590, + "method": "listFiles", + "group": "files", + "weight": 603, "cookies": false, "type": "", - "demo": "sites\/list.md", + "demo": "storage\/list-files.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": "files.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/list-files.md", "auth": { "Project": [] } @@ -44251,13 +51013,22 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "type": "string", + "x-example": "<BUCKET_ID>", + "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, framework, deploymentId, buildCommand, installCommand, outputDirectory, installationId", + "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, signature, mimeType, sizeOriginal, chunksTotal, chunksUploaded", "required": false, "type": "array", "collectionFormat": "multi", @@ -44288,44 +51059,46 @@ ] }, "post": { - "summary": "Create site", - "operationId": "sitesCreate", + "summary": "Create file", + "operationId": "storageCreateFile", "consumes": [ - "application\/json" + "multipart\/form-data" ], "produces": [ "application\/json" ], "tags": [ - "sites" + "storage" ], - "description": "Create a new site.", + "description": "Create a new file. Before using this route, you should create a new bucket resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/storage#storageCreateBucket) API or directly from your Appwrite console.\n\nLarger files should be uploaded using multiple requests with the [content-range](https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTTP\/Headers\/Content-Range) header to send a partial request with a maximum supported chunk of `5MB`. The `content-range` header values should always be in bytes.\n\nWhen the first request is sent, the server will return the **File** object, and the subsequent part request must include the file's **id** in `x-appwrite-id` header to allow the server to know that the partial upload is for the existing file and not for a new one.\n\nIf you're creating a new file using one of the Appwrite SDKs, all the chunking logic will be managed by the SDK internally.\n", "responses": { "201": { - "description": "Site", + "description": "File", "schema": { - "$ref": "#\/definitions\/site" + "$ref": "#\/definitions\/file" } } }, "deprecated": false, "x-appwrite": { - "method": "create", - "group": "sites", - "weight": 588, + "method": "createFile", + "group": "files", + "weight": 802, "cookies": false, - "type": "", - "demo": "sites\/create.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "type": "upload", + "demo": "storage\/create-file.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId},chunkId:{chunkId}", + "scope": "files.write", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/create-file.md", "auth": { "Project": [] } @@ -44333,293 +51106,161 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "payload", - "in": "body", + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "type": "string", + "x-example": "<BUCKET_ID>", + "in": "path" + }, + { + "name": "fileId", + "description": "File 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, + "x-upload-id": true, + "type": "string", + "x-example": "<FILE_ID>", + "in": "formData" + }, + { + "name": "file", + "description": "Binary file. Appwrite SDKs provide helpers to handle file input. [Learn about file input](https:\/\/appwrite.io\/docs\/products\/storage\/upload-download#input-file).", + "required": true, + "type": "file", + "in": "formData" + }, + { + "name": "permissions", + "description": "An array of permission strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "x-example": "[\"read(\"any\")\"]", + "in": "formData" + } + ] + } + }, + "\/storage\/buckets\/{bucketId}\/files\/{fileId}": { + "get": { + "summary": "Get file", + "operationId": "storageGetFile", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "storage" + ], + "description": "Get a file by its unique ID. This endpoint response returns a JSON object with the file metadata.", + "responses": { + "200": { + "description": "File", "schema": { - "type": "object", - "properties": { - "siteId": { - "type": "string", - "description": "Site ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": null, - "x-example": "<SITE_ID>" - }, - "name": { - "type": "string", - "description": "Site name. Max length: 128 chars.", - "default": null, - "x-example": "<NAME>" - }, - "framework": { - "type": "string", - "description": "Sites framework.", - "default": null, - "x-example": "analog", - "enum": [ - "analog", - "angular", - "nextjs", - "react", - "nuxt", - "vue", - "sveltekit", - "astro", - "tanstack-start", - "remix", - "lynx", - "flutter", - "react-native", - "vite", - "other" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "enabled": { - "type": "boolean", - "description": "Is site enabled? When set to 'disabled', users cannot access the site but Server SDKs with and API key can still access the site. No data is lost when this is toggled.", - "default": true, - "x-example": false - }, - "logging": { - "type": "boolean", - "description": "When disabled, request logs will exclude logs and errors, and site responses will be slightly faster.", - "default": true, - "x-example": false - }, - "timeout": { - "type": "integer", - "description": "Maximum request time in seconds.", - "default": 30, - "x-example": 1, - "format": "int32" - }, - "installCommand": { - "type": "string", - "description": "Install Command.", - "default": "", - "x-example": "<INSTALL_COMMAND>" - }, - "buildCommand": { - "type": "string", - "description": "Build Command.", - "default": "", - "x-example": "<BUILD_COMMAND>" - }, - "outputDirectory": { - "type": "string", - "description": "Output Directory for site.", - "default": "", - "x-example": "<OUTPUT_DIRECTORY>" - }, - "buildRuntime": { - "type": "string", - "description": "Runtime to use during build step.", - "default": null, - "x-example": "node-14.5", - "enum": [ - "node-14.5", - "node-16.0", - "node-18.0", - "node-19.0", - "node-20.0", - "node-21.0", - "node-22", - "node-23", - "node-24", - "node-25", - "php-8.0", - "php-8.1", - "php-8.2", - "php-8.3", - "php-8.4", - "ruby-3.0", - "ruby-3.1", - "ruby-3.2", - "ruby-3.3", - "ruby-3.4", - "ruby-4.0", - "python-3.8", - "python-3.9", - "python-3.10", - "python-3.11", - "python-3.12", - "python-3.13", - "python-3.14", - "python-ml-3.11", - "python-ml-3.12", - "python-ml-3.13", - "deno-1.21", - "deno-1.24", - "deno-1.35", - "deno-1.40", - "deno-1.46", - "deno-2.0", - "deno-2.5", - "deno-2.6", - "dart-2.15", - "dart-2.16", - "dart-2.17", - "dart-2.18", - "dart-2.19", - "dart-3.0", - "dart-3.1", - "dart-3.3", - "dart-3.5", - "dart-3.8", - "dart-3.9", - "dart-3.10", - "dotnet-6.0", - "dotnet-7.0", - "dotnet-8.0", - "dotnet-10", - "java-8.0", - "java-11.0", - "java-17.0", - "java-18.0", - "java-21.0", - "java-22", - "java-25", - "swift-5.5", - "swift-5.8", - "swift-5.9", - "swift-5.10", - "swift-6.2", - "kotlin-1.6", - "kotlin-1.8", - "kotlin-1.9", - "kotlin-2.0", - "kotlin-2.3", - "cpp-17", - "cpp-20", - "bun-1.0", - "bun-1.1", - "bun-1.2", - "bun-1.3", - "go-1.23", - "go-1.24", - "go-1.25", - "go-1.26", - "static-1", - "flutter-3.24", - "flutter-3.27", - "flutter-3.29", - "flutter-3.32", - "flutter-3.35", - "flutter-3.38" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "adapter": { - "type": "string", - "description": "Framework adapter defining rendering strategy. Allowed values are: static, ssr", - "default": "", - "x-example": "static", - "enum": [ - "static", - "ssr" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "installationId": { - "type": "string", - "description": "Appwrite Installation ID for VCS (Version Control System) deployment.", - "default": "", - "x-example": "<INSTALLATION_ID>" - }, - "fallbackFile": { - "type": "string", - "description": "Fallback file for single page application sites.", - "default": "", - "x-example": "<FALLBACK_FILE>" - }, - "providerRepositoryId": { - "type": "string", - "description": "Repository ID of the repo linked to the site.", - "default": "", - "x-example": "<PROVIDER_REPOSITORY_ID>" - }, - "providerBranch": { - "type": "string", - "description": "Production branch for the repo linked to the site.", - "default": "", - "x-example": "<PROVIDER_BRANCH>" - }, - "providerSilentMode": { - "type": "boolean", - "description": "Is the VCS (Version Control System) connection in silent mode for the repo linked to the site? In silent mode, comments will not be made on commits and pull requests.", - "default": false, - "x-example": false - }, - "providerRootDirectory": { - "type": "string", - "description": "Path to site code in the linked repo.", - "default": "", - "x-example": "<PROVIDER_ROOT_DIRECTORY>" - }, - "specification": { - "type": "string", - "description": "Framework specification for the site and builds.", - "default": {}, - "x-example": null - } - }, - "required": [ - "siteId", - "name", - "framework", - "buildRuntime" - ] + "$ref": "#\/definitions\/file" } } + }, + "deprecated": false, + "x-appwrite": { + "method": "getFile", + "group": "files", + "weight": 602, + "cookies": false, + "type": "", + "demo": "storage\/get-file.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "files.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "type": "string", + "x-example": "<BUCKET_ID>", + "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "type": "string", + "x-example": "<FILE_ID>", + "in": "path" + } ] - } - }, - "\/sites\/frameworks": { - "get": { - "summary": "List frameworks", - "operationId": "sitesListFrameworks", - "consumes": [], + }, + "put": { + "summary": "Update file", + "operationId": "storageUpdateFile", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "sites" + "storage" ], - "description": "Get a list of all frameworks that are currently available on the server instance.", + "description": "Update a file by its unique ID. Only users with write permissions have access to update this resource.", "responses": { "200": { - "description": "Frameworks List", + "description": "File", "schema": { - "$ref": "#\/definitions\/frameworkList" + "$ref": "#\/definitions\/file" } } }, "deprecated": false, "x-appwrite": { - "method": "listFrameworks", - "group": "frameworks", - "weight": 593, + "method": "updateFile", + "group": "files", + "weight": 604, "cookies": false, "type": "", - "demo": "sites\/list-frameworks.md", + "demo": "storage\/update-file.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "files.write", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/update-file.md", "auth": { "Project": [] } @@ -44627,49 +51268,161 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Bucket unique ID.", + "required": true, + "type": "string", + "x-example": "<BUCKET_ID>", + "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "type": "string", + "x-example": "<FILE_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "File name.", + "default": null, + "x-example": "<NAME>" + }, + "permissions": { + "type": "array", + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "default": null, + "x-example": "[\"read(\"any\")\"]", + "x-nullable": true, + "items": { + "type": "string" + } + } + } + } + } + ] + }, + "delete": { + "summary": "Delete file", + "operationId": "storageDeleteFile", + "consumes": [ + "application\/json" + ], + "produces": [], + "tags": [ + "storage" + ], + "description": "Delete a file by its unique ID. Only users with write permissions have access to delete this resource.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteFile", + "group": "files", + "weight": 605, + "cookies": false, + "type": "", + "demo": "storage\/delete-file.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "files.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/delete-file.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "type": "string", + "x-example": "<BUCKET_ID>", + "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "type": "string", + "x-example": "<FILE_ID>", + "in": "path" } ] } }, - "\/sites\/specifications": { + "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/download": { "get": { - "summary": "List specifications", - "operationId": "sitesListSpecifications", + "summary": "Get file for download", + "operationId": "storageGetFileDownload", "consumes": [], "produces": [ - "application\/json" + "*\/*" ], "tags": [ - "sites" + "storage" ], - "description": "List allowed site specifications for this instance.", + "description": "Get a file 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": "Specifications List", + "description": "File", "schema": { - "$ref": "#\/definitions\/specificationList" + "type": "file" } } }, "deprecated": false, "x-appwrite": { - "method": "listSpecifications", - "group": "frameworks", - "weight": 616, + "method": "getFileDownload", + "group": "files", + "weight": 607, "cookies": false, - "type": "", - "demo": "sites\/list-specifications.md", + "type": "location", + "demo": "storage\/get-file-download.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": "files.read", "platforms": [ - "server", - "console" + "console", + "client", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-download.md", "auth": { "Project": [] } @@ -44677,174 +51430,365 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "type": "string", + "x-example": "<BUCKET_ID>", + "in": "path" + }, + { + "name": "fileId", + "description": "File ID.", + "required": true, + "type": "string", + "x-example": "<FILE_ID>", + "in": "path" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "type": "string", + "x-example": "<TOKEN>", + "default": "", + "in": "query" } ] } }, - "\/sites\/templates": { + "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/preview": { "get": { - "summary": "List templates", - "operationId": "sitesListTemplates", + "summary": "Get file preview", + "operationId": "storageGetFilePreview", "consumes": [], "produces": [ - "application\/json" + "image\/*" ], "tags": [ - "sites" + "storage" ], - "description": "List available site templates. You can use template details in [createSite](\/docs\/references\/cloud\/server-nodejs\/sites#create) method.", + "description": "Get a file preview image. Currently, this method supports preview for image files (jpg, png, and gif), other supported formats, like pdf, docs, slides, and spreadsheets, will return the file icon image. You can also pass query string arguments for cutting and resizing your preview image. Preview is supported only for image files smaller than 10MB.", "responses": { "200": { - "description": "Site Templates List", + "description": "Image", "schema": { - "$ref": "#\/definitions\/templateSiteList" + "type": "file" } } }, "deprecated": false, "x-appwrite": { - "method": "listTemplates", - "group": "templates", - "weight": 612, + "method": "getFilePreview", + "group": "files", + "weight": 606, "cookies": false, - "type": "", - "demo": "sites\/list-templates.md", + "type": "location", + "demo": "storage\/get-file-preview.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "files.read", "platforms": [ - "console" + "console", + "client", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-preview.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "frameworks", - "description": "List of frameworks allowed for filtering site templates. Maximum of 100 frameworks are allowed.", + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "type": "string", + "x-example": "<BUCKET_ID>", + "in": "path" + }, + { + "name": "fileId", + "description": "File ID", + "required": true, + "type": "string", + "x-example": "<FILE_ID>", + "in": "path" + }, + { + "name": "width", + "description": "Resize preview image width, Pass an integer between 0 to 4000.", "required": false, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string", - "enum": [ - "analog", - "angular", - "nextjs", - "react", - "nuxt", - "vue", - "sveltekit", - "astro", - "tanstack-start", - "remix", - "lynx", - "flutter", - "react-native", - "vite", - "other" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "default": [], + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0, "in": "query" }, { - "name": "useCases", - "description": "List of use cases allowed for filtering site templates. Maximum of 100 use cases are allowed.", + "name": "height", + "description": "Resize preview image height, Pass an integer between 0 to 4000.", "required": false, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string", - "enum": [ - "portfolio", - "starter", - "events", - "ecommerce", - "documentation", - "blog", - "ai", - "forms", - "dashboard" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "default": [], + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0, + "in": "query" + }, + { + "name": "gravity", + "description": "Image crop gravity. Can be one of center,top-left,top,top-right,left,right,bottom-left,bottom,bottom-right", + "required": false, + "type": "string", + "x-example": "center", + "enum": [ + "center", + "top-left", + "top", + "top-right", + "left", + "right", + "bottom-left", + "bottom", + "bottom-right" + ], + "x-enum-name": "ImageGravity", + "x-enum-keys": [], + "default": "center", + "in": "query" + }, + { + "name": "quality", + "description": "Preview image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", + "required": false, + "type": "integer", + "format": "int32", + "x-example": -1, + "default": -1, + "in": "query" + }, + { + "name": "borderWidth", + "description": "Preview image border in pixels. Pass an integer between 0 to 100. Defaults to 0.", + "required": false, + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0, + "in": "query" + }, + { + "name": "borderColor", + "description": "Preview image border color. Use a valid HEX color, no # is needed for prefix.", + "required": false, + "type": "string", + "default": "", + "in": "query" + }, + { + "name": "borderRadius", + "description": "Preview image border radius in pixels. Pass an integer between 0 to 4000.", + "required": false, + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0, + "in": "query" + }, + { + "name": "opacity", + "description": "Preview image opacity. Only works with images having an alpha channel (like png). Pass a number between 0 to 1.", + "required": false, + "type": "number", + "format": "float", + "x-example": 0, + "default": 1, + "in": "query" + }, + { + "name": "rotation", + "description": "Preview image rotation in degrees. Pass an integer between -360 and 360.", + "required": false, + "type": "integer", + "format": "int32", + "x-example": -360, + "default": 0, + "in": "query" + }, + { + "name": "background", + "description": "Preview image background color. Only works with transparent images (png). Use a valid HEX color, no # is needed for prefix.", + "required": false, + "type": "string", + "default": "", + "in": "query" + }, + { + "name": "output", + "description": "Output format type (jpeg, jpg, png, gif and webp).", + "required": false, + "type": "string", + "x-example": "jpg", + "enum": [ + "jpg", + "jpeg", + "png", + "webp", + "heic", + "avif", + "gif" + ], + "x-enum-name": "ImageFormat", + "x-enum-keys": [], + "default": "", + "in": "query" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "type": "string", + "x-example": "<TOKEN>", + "default": "", "in": "query" + } + ] + } + }, + "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/view": { + "get": { + "summary": "Get file for view", + "operationId": "storageGetFileView", + "consumes": [], + "produces": [ + "*\/*" + ], + "tags": [ + "storage" + ], + "description": "Get a file content by its unique ID. This endpoint is similar to the download method but returns with no 'Content-Disposition: attachment' header.", + "responses": { + "200": { + "description": "File", + "schema": { + "type": "file" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getFileView", + "group": "files", + "weight": 608, + "cookies": false, + "type": "location", + "demo": "storage\/get-file-view.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "files.read", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-view.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "type": "string", + "x-example": "<BUCKET_ID>", + "in": "path" }, { - "name": "limit", - "description": "Limit the number of templates returned in the response. Default limit is 25, and maximum limit is 5000.", - "required": false, - "type": "integer", - "format": "int32", - "x-example": 1, - "default": 25, - "in": "query" + "name": "fileId", + "description": "File ID.", + "required": true, + "type": "string", + "x-example": "<FILE_ID>", + "in": "path" }, { - "name": "offset", - "description": "Offset the list of returned templates. Maximum offset is 5000.", + "name": "token", + "description": "File token for accessing this file.", "required": false, - "type": "integer", - "format": "int32", - "x-example": 0, - "default": 0, + "type": "string", + "x-example": "<TOKEN>", + "default": "", "in": "query" } ] } }, - "\/sites\/templates\/{templateId}": { + "\/storage\/usage": { "get": { - "summary": "Get site template", - "operationId": "sitesGetTemplate", + "summary": "Get storage usage stats", + "operationId": "storageGetUsage", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "sites" + "storage" ], - "description": "Get a site template using ID. You can use template details in [createSite](\/docs\/references\/cloud\/server-nodejs\/sites#create) method.", + "description": "Get usage metrics and statistics for all buckets in the project. You can view the total number of buckets, files, storage usage. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.\n", "responses": { "200": { - "description": "Template Site", + "description": "StorageUsage", "schema": { - "$ref": "#\/definitions\/templateSite" + "$ref": "#\/definitions\/usageStorage" } } }, "deprecated": false, "x-appwrite": { - "method": "getTemplate", - "group": "templates", - "weight": 613, + "method": "getUsage", + "group": null, + "weight": 610, "cookies": false, "type": "", - "demo": "sites\/get-template.md", + "demo": "storage\/get-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "files.read", "platforms": [ "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-usage.md", "auth": { "Project": [] } @@ -44856,53 +51800,66 @@ ], "parameters": [ { - "name": "templateId", - "description": "Template ID.", - "required": true, + "name": "range", + "description": "Date range.", + "required": false, "type": "string", - "x-example": "<TEMPLATE_ID>", - "in": "path" + "x-example": "24h", + "enum": [ + "24h", + "30d", + "90d" + ], + "x-enum-name": "UsageRange", + "x-enum-keys": [ + "Twenty Four Hours", + "Thirty Days", + "Ninety Days" + ], + "default": "30d", + "in": "query" } ] } }, - "\/sites\/usage": { + "\/storage\/{bucketId}\/usage": { "get": { - "summary": "Get sites usage", - "operationId": "sitesListUsage", + "summary": "Get bucket usage stats", + "operationId": "storageGetBucketUsage", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "sites" + "storage" ], - "description": "Get usage metrics and statistics for all sites in the project. View statistics including total deployments, builds, logs, storage usage, and compute time. The response includes both current totals and historical data for each metric. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, defaults to 30 days.", + "description": "Get usage metrics and statistics a specific bucket in the project. You can view the total number of files, storage usage. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.\n", "responses": { "200": { - "description": "UsageSites", + "description": "UsageBuckets", "schema": { - "$ref": "#\/definitions\/usageSites" + "$ref": "#\/definitions\/usageBuckets" } } }, "deprecated": false, "x-appwrite": { - "method": "listUsage", + "method": "getBucketUsage", "group": null, - "weight": 614, + "weight": 611, "cookies": false, "type": "", - "demo": "sites\/list-usage.md", + "demo": "storage\/get-bucket-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": "files.read", "platforms": [ "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-bucket-usage.md", "auth": { "Project": [] } @@ -44913,6 +51870,14 @@ } ], "parameters": [ + { + "name": "bucketId", + "description": "Bucket ID.", + "required": true, + "type": "string", + "x-example": "<BUCKET_ID>", + "in": "path" + }, { "name": "range", "description": "Date range.", @@ -44936,44 +51901,45 @@ ] } }, - "\/sites\/{siteId}": { + "\/tablesdb": { "get": { - "summary": "Get site", - "operationId": "sitesGet", + "summary": "List databases", + "operationId": "tablesDBList", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "sites" + "tablesDB" ], - "description": "Get a site by its unique ID.", + "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": "Site", + "description": "Databases List", "schema": { - "$ref": "#\/definitions\/site" + "$ref": "#\/definitions\/databaseList" } } }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": "sites", - "weight": 589, + "method": "list", + "group": "tablesdb", + "weight": 322, "cookies": false, "type": "", - "demo": "sites\/get.md", + "demo": "tablesdb\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": "databases.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list.md", "auth": { "Project": [] } @@ -44986,18 +51952,40 @@ ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", - "required": true, + "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, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, "type": "string", - "x-example": "<SITE_ID>", - "in": "path" + "x-example": "<SEARCH>", + "default": "", + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" } ] }, - "put": { - "summary": "Update site", - "operationId": "sitesUpdate", + "post": { + "summary": "Create database", + "operationId": "tablesDBCreate", "consumes": [ "application\/json" ], @@ -45005,35 +51993,36 @@ "application\/json" ], "tags": [ - "sites" + "tablesDB" ], - "description": "Update site by its unique ID.", + "description": "Create a new Database.\n", "responses": { - "200": { - "description": "Site", + "201": { + "description": "Database", "schema": { - "$ref": "#\/definitions\/site" + "$ref": "#\/definitions\/database" } } }, "deprecated": false, "x-appwrite": { - "method": "update", - "group": "sites", - "weight": 591, + "method": "create", + "group": "tablesdb", + "weight": 318, "cookies": false, "type": "", - "demo": "sites\/update.md", + "demo": "tablesdb\/create.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create.md", "auth": { "Project": [] } @@ -45045,284 +52034,83 @@ } ], "parameters": [ - { - "name": "siteId", - "description": "Site ID.", - "required": true, - "type": "string", - "x-example": "<SITE_ID>", - "in": "path" - }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "name": { + "databaseId": { "type": "string", - "description": "Site name. Max length: 128 chars.", + "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.", "default": null, - "x-example": "<NAME>" + "x-example": "<DATABASE_ID>" }, - "framework": { + "name": { "type": "string", - "description": "Sites framework.", + "description": "Database name. Max length: 128 chars.", "default": null, - "x-example": "analog", - "enum": [ - "analog", - "angular", - "nextjs", - "react", - "nuxt", - "vue", - "sveltekit", - "astro", - "tanstack-start", - "remix", - "lynx", - "flutter", - "react-native", - "vite", - "other" - ], - "x-enum-name": null, - "x-enum-keys": [] + "x-example": "<NAME>" }, "enabled": { "type": "boolean", - "description": "Is site enabled? When set to 'disabled', users cannot access the site but Server SDKs with and API key can still access the site. No data is lost when this is toggled.", - "default": true, - "x-example": false - }, - "logging": { - "type": "boolean", - "description": "When disabled, request logs will exclude logs and errors, and site responses will be slightly faster.", + "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.", "default": true, "x-example": false - }, - "timeout": { - "type": "integer", - "description": "Maximum request time in seconds.", - "default": 30, - "x-example": 1, - "format": "int32" - }, - "installCommand": { - "type": "string", - "description": "Install Command.", - "default": "", - "x-example": "<INSTALL_COMMAND>" - }, - "buildCommand": { - "type": "string", - "description": "Build Command.", - "default": "", - "x-example": "<BUILD_COMMAND>" - }, - "outputDirectory": { - "type": "string", - "description": "Output Directory for site.", - "default": "", - "x-example": "<OUTPUT_DIRECTORY>" - }, - "buildRuntime": { - "type": "string", - "description": "Runtime to use during build step.", - "default": "", - "x-example": "node-14.5", - "enum": [ - "node-14.5", - "node-16.0", - "node-18.0", - "node-19.0", - "node-20.0", - "node-21.0", - "node-22", - "node-23", - "node-24", - "node-25", - "php-8.0", - "php-8.1", - "php-8.2", - "php-8.3", - "php-8.4", - "ruby-3.0", - "ruby-3.1", - "ruby-3.2", - "ruby-3.3", - "ruby-3.4", - "ruby-4.0", - "python-3.8", - "python-3.9", - "python-3.10", - "python-3.11", - "python-3.12", - "python-3.13", - "python-3.14", - "python-ml-3.11", - "python-ml-3.12", - "python-ml-3.13", - "deno-1.21", - "deno-1.24", - "deno-1.35", - "deno-1.40", - "deno-1.46", - "deno-2.0", - "deno-2.5", - "deno-2.6", - "dart-2.15", - "dart-2.16", - "dart-2.17", - "dart-2.18", - "dart-2.19", - "dart-3.0", - "dart-3.1", - "dart-3.3", - "dart-3.5", - "dart-3.8", - "dart-3.9", - "dart-3.10", - "dotnet-6.0", - "dotnet-7.0", - "dotnet-8.0", - "dotnet-10", - "java-8.0", - "java-11.0", - "java-17.0", - "java-18.0", - "java-21.0", - "java-22", - "java-25", - "swift-5.5", - "swift-5.8", - "swift-5.9", - "swift-5.10", - "swift-6.2", - "kotlin-1.6", - "kotlin-1.8", - "kotlin-1.9", - "kotlin-2.0", - "kotlin-2.3", - "cpp-17", - "cpp-20", - "bun-1.0", - "bun-1.1", - "bun-1.2", - "bun-1.3", - "go-1.23", - "go-1.24", - "go-1.25", - "go-1.26", - "static-1", - "flutter-3.24", - "flutter-3.27", - "flutter-3.29", - "flutter-3.32", - "flutter-3.35", - "flutter-3.38" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "adapter": { - "type": "string", - "description": "Framework adapter defining rendering strategy. Allowed values are: static, ssr", - "default": "", - "x-example": "static", - "enum": [ - "static", - "ssr" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "fallbackFile": { - "type": "string", - "description": "Fallback file for single page application sites.", - "default": "", - "x-example": "<FALLBACK_FILE>" - }, - "installationId": { - "type": "string", - "description": "Appwrite Installation ID for VCS (Version Control System) deployment.", - "default": "", - "x-example": "<INSTALLATION_ID>" - }, - "providerRepositoryId": { - "type": "string", - "description": "Repository ID of the repo linked to the site.", - "default": "", - "x-example": "<PROVIDER_REPOSITORY_ID>" - }, - "providerBranch": { - "type": "string", - "description": "Production branch for the repo linked to the site.", - "default": "", - "x-example": "<PROVIDER_BRANCH>" - }, - "providerSilentMode": { - "type": "boolean", - "description": "Is the VCS (Version Control System) connection in silent mode for the repo linked to the site? In silent mode, comments will not be made on commits and pull requests.", - "default": false, - "x-example": false - }, - "providerRootDirectory": { - "type": "string", - "description": "Path to site code in the linked repo.", - "default": "", - "x-example": "<PROVIDER_ROOT_DIRECTORY>" - }, - "specification": { - "type": "string", - "description": "Framework specification for the site and builds.", - "default": {}, - "x-example": null } }, "required": [ - "name", - "framework" + "databaseId", + "name" ] } } ] - }, - "delete": { - "summary": "Delete site", - "operationId": "sitesDelete", - "consumes": [ + } + }, + "\/tablesdb\/transactions": { + "get": { + "summary": "List transactions", + "operationId": "tablesDBListTransactions", + "consumes": [], + "produces": [ "application\/json" ], - "produces": [], "tags": [ - "sites" + "tablesDB" ], - "description": "Delete a site by its unique ID.", + "description": "List transactions across all databases.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Transaction List", + "schema": { + "$ref": "#\/definitions\/transactionList" + } } }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": "sites", - "weight": 592, + "method": "listTransactions", + "group": "transactions", + "weight": 389, "cookies": false, "type": "", - "demo": "sites\/delete.md", + "demo": "tablesdb\/list-transactions.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": [ + "documents.read", + "rows.read" + ], "platforms": [ "console", - "server" + "server", + "client" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-transactions.md", "auth": { "Project": [] } @@ -45330,25 +52118,28 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", - "required": true, - "type": "string", - "x-example": "<SITE_ID>", - "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).", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" } ] - } - }, - "\/sites\/{siteId}\/deployment": { - "patch": { - "summary": "Update site's deployment", - "operationId": "sitesUpdateSiteDeployment", + }, + "post": { + "summary": "Create transaction", + "operationId": "tablesDBCreateTransaction", "consumes": [ "application\/json" ], @@ -45356,35 +52147,40 @@ "application\/json" ], "tags": [ - "sites" + "tablesDB" ], - "description": "Update the site active deployment. Use this endpoint to switch the code deployment that should be used when visitor opens your site.", + "description": "Create a new transaction.", "responses": { - "200": { - "description": "Site", + "201": { + "description": "Transaction", "schema": { - "$ref": "#\/definitions\/site" + "$ref": "#\/definitions\/transaction" } } }, "deprecated": false, "x-appwrite": { - "method": "updateSiteDeployment", - "group": "sites", - "weight": 599, + "method": "createTransaction", + "group": "transactions", + "weight": 385, "cookies": false, "type": "", - "demo": "sites\/update-site-deployment.md", + "demo": "tablesdb\/create-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "console", - "server" + "server", + "client" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-transaction.md", "auth": { "Project": [] } @@ -45392,77 +52188,73 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ - { - "name": "siteId", - "description": "Site ID.", - "required": true, - "type": "string", - "x-example": "<SITE_ID>", - "in": "path" - }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "deploymentId": { - "type": "string", - "description": "Deployment ID.", - "default": null, - "x-example": "<DEPLOYMENT_ID>" + "ttl": { + "type": "integer", + "description": "Seconds before the transaction expires.", + "default": 300, + "x-example": 60, + "format": "int32" } - }, - "required": [ - "deploymentId" - ] + } } } ] } }, - "\/sites\/{siteId}\/deployments": { + "\/tablesdb\/transactions\/{transactionId}": { "get": { - "summary": "List deployments", - "operationId": "sitesListDeployments", + "summary": "Get transaction", + "operationId": "tablesDBGetTransaction", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "sites" + "tablesDB" ], - "description": "Get a list of all the site's code deployments. You can use the query params to filter your results.", + "description": "Get a transaction by its unique ID.", "responses": { "200": { - "description": "Deployments List", + "description": "Transaction", "schema": { - "$ref": "#\/definitions\/deploymentList" + "$ref": "#\/definitions\/transaction" } } }, "deprecated": false, "x-appwrite": { - "method": "listDeployments", - "group": "deployments", - "weight": 598, + "method": "getTransaction", + "group": "transactions", + "weight": 386, "cookies": false, "type": "", - "demo": "sites\/list-deployments.md", + "demo": "tablesdb\/get-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": [ + "documents.read", + "rows.read" + ], "platforms": [ "console", - "server" + "server", + "client" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-transaction.md", "auth": { "Project": [] } @@ -45470,89 +52262,65 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "type": "string", - "x-example": "<SITE_ID>", + "x-example": "<TRANSACTION_ID>", "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, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "type": "string", - "x-example": "<SEARCH>", - "default": "", - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" } ] }, - "post": { - "summary": "Create deployment", - "operationId": "sitesCreateDeployment", + "patch": { + "summary": "Update transaction", + "operationId": "tablesDBUpdateTransaction", "consumes": [ - "multipart\/form-data" + "application\/json" ], "produces": [ "application\/json" ], "tags": [ - "sites" + "tablesDB" ], - "description": "Create a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the site's deployment to use your new deployment ID.", + "description": "Update a transaction, to either commit or roll back its operations.", "responses": { - "202": { - "description": "Deployment", + "200": { + "description": "Transaction", "schema": { - "$ref": "#\/definitions\/deployment" + "$ref": "#\/definitions\/transaction" } } }, "deprecated": false, "x-appwrite": { - "method": "createDeployment", - "group": "deployments", - "weight": 594, + "method": "updateTransaction", + "group": "transactions", + "weight": 387, "cookies": false, - "type": "upload", - "demo": "sites\/create-deployment.md", + "type": "", + "demo": "tablesdb\/update-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "console", - "server" + "server", + "client" ], - "packaging": true, + "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-transaction.md", "auth": { "Project": [] } @@ -45560,100 +52328,81 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "type": "string", - "x-example": "<SITE_ID>", + "x-example": "<TRANSACTION_ID>", "in": "path" }, { - "name": "installCommand", - "description": "Install Commands.", - "required": false, - "type": "string", - "x-example": "<INSTALL_COMMAND>", - "in": "formData" - }, - { - "name": "buildCommand", - "description": "Build Commands.", - "required": false, - "type": "string", - "x-example": "<BUILD_COMMAND>", - "in": "formData" - }, - { - "name": "outputDirectory", - "description": "Output Directory.", - "required": false, - "type": "string", - "x-example": "<OUTPUT_DIRECTORY>", - "in": "formData" - }, - { - "name": "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.", - "required": true, - "type": "file", - "in": "formData" - }, - { - "name": "activate", - "description": "Automatically activate the deployment when it is finished building.", - "required": true, - "type": "boolean", - "x-example": false, - "in": "formData" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "commit": { + "type": "boolean", + "description": "Commit transaction?", + "default": false, + "x-example": false + }, + "rollback": { + "type": "boolean", + "description": "Rollback transaction?", + "default": false, + "x-example": false + } + } + } } ] - } - }, - "\/sites\/{siteId}\/deployments\/duplicate": { - "post": { - "summary": "Create duplicate deployment", - "operationId": "sitesCreateDuplicateDeployment", + }, + "delete": { + "summary": "Delete transaction", + "operationId": "tablesDBDeleteTransaction", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ - "sites" + "tablesDB" ], - "description": "Create a new build for an existing site deployment. This endpoint allows you to rebuild a deployment with the updated site configuration, including its commands and output directory if they have been modified. The build process will be queued and executed asynchronously. The original deployment's code will be preserved and used for the new build.", + "description": "Delete a transaction by its unique ID.", "responses": { - "202": { - "description": "Deployment", - "schema": { - "$ref": "#\/definitions\/deployment" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "createDuplicateDeployment", - "group": "deployments", - "weight": 602, + "method": "deleteTransaction", + "group": "transactions", + "weight": 388, "cookies": false, "type": "", - "demo": "sites\/create-duplicate-deployment.md", + "demo": "tablesdb\/delete-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "console", - "server" + "server", + "client" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-transaction.md", "auth": { "Project": [] } @@ -45661,43 +52410,26 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "type": "string", - "x-example": "<SITE_ID>", + "x-example": "<TRANSACTION_ID>", "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "deploymentId": { - "type": "string", - "description": "Deployment ID.", - "default": null, - "x-example": "<DEPLOYMENT_ID>" - } - }, - "required": [ - "deploymentId" - ] - } } ] } }, - "\/sites\/{siteId}\/deployments\/template": { + "\/tablesdb\/transactions\/{transactionId}\/operations": { "post": { - "summary": "Create template deployment", - "operationId": "sitesCreateTemplateDeployment", + "summary": "Create operations", + "operationId": "tablesDBCreateOperations", "consumes": [ "application\/json" ], @@ -45705,35 +52437,40 @@ "application\/json" ], "tags": [ - "sites" + "tablesDB" ], - "description": "Create a deployment based on a template.\n\nUse this endpoint with combination of [listTemplates](https:\/\/appwrite.io\/docs\/products\/sites\/templates) to find the template details.", + "description": "Create multiple operations in a single transaction.", "responses": { - "202": { - "description": "Deployment", + "201": { + "description": "Transaction", "schema": { - "$ref": "#\/definitions\/deployment" + "$ref": "#\/definitions\/transaction" } } }, "deprecated": false, "x-appwrite": { - "method": "createTemplateDeployment", - "group": "deployments", - "weight": 595, + "method": "createOperations", + "group": "transactions", + "weight": 390, "cookies": false, "type": "", - "demo": "sites\/create-template-deployment.md", + "demo": "tablesdb\/create-operations.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "console", - "server" + "server", + "client" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-operations.md", "auth": { "Project": [] } @@ -45741,16 +52478,17 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "type": "string", - "x-example": "<SITE_ID>", + "x-example": "<TRANSACTION_ID>", "in": "path" }, { @@ -45759,200 +52497,157 @@ "schema": { "type": "object", "properties": { - "repository": { - "type": "string", - "description": "Repository name of the template.", - "default": null, - "x-example": "<REPOSITORY>" - }, - "owner": { - "type": "string", - "description": "The name of the owner of the template.", - "default": null, - "x-example": "<OWNER>" - }, - "rootDirectory": { - "type": "string", - "description": "Path to site code in the template repo.", - "default": null, - "x-example": "<ROOT_DIRECTORY>" - }, - "type": { - "type": "string", - "description": "Type for the reference provided. Can be commit, branch, or tag", - "default": null, - "x-example": "branch", - "enum": [ - "branch", - "commit", - "tag" - ], - "x-enum-name": "TemplateReferenceType", - "x-enum-keys": [] - }, - "reference": { - "type": "string", - "description": "Reference value, can be a commit hash, branch name, or release tag", - "default": null, - "x-example": "<REFERENCE>" - }, - "activate": { - "type": "boolean", - "description": "Automatically activate the deployment when it is finished building.", - "default": false, - "x-example": false + "operations": { + "type": "array", + "description": "Array of staged operations.", + "default": [], + "x-example": "[\n\t {\n\t \"action\": \"create\",\n\t \"databaseId\": \"<DATABASE_ID>\",\n\t \"tableId\": \"<TABLE_ID>\",\n\t \"rowId\": \"<ROW_ID>\",\n\t \"data\": {\n\t \"name\": \"Walter O'Brien\"\n\t }\n\t }\n\t]", + "items": { + "type": "object" + } } - }, - "required": [ - "repository", - "owner", - "rootDirectory", - "type", - "reference" - ] + } } } ] } }, - "\/sites\/{siteId}\/deployments\/vcs": { - "post": { - "summary": "Create VCS deployment", - "operationId": "sitesCreateVcsDeployment", - "consumes": [ - "application\/json" - ], + "\/tablesdb\/usage": { + "get": { + "summary": "Get TablesDB usage stats", + "operationId": "tablesDBListUsage", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "sites" + "tablesDB" ], - "description": "Create a deployment when a site is connected to VCS.\n\nThis endpoint lets you create deployment from a branch, commit, or a tag.", + "description": "List usage metrics and statistics for all databases in the project. You can view the total number of databases, tables, rows, and storage usage. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.", "responses": { - "202": { - "description": "Deployment", + "200": { + "description": "UsageDatabases", "schema": { - "$ref": "#\/definitions\/deployment" + "$ref": "#\/definitions\/usageDatabases" } } }, "deprecated": false, "x-appwrite": { - "method": "createVcsDeployment", - "group": "deployments", - "weight": 596, + "method": "listUsage", + "group": null, + "weight": 324, "cookies": false, "type": "", - "demo": "sites\/create-vcs-deployment.md", + "demo": "tablesdb\/list-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": [ + "tables.read", + "collections.read" + ], "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-usage.md", + "methods": [ + { + "name": "listUsage", + "namespace": "tablesDB", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "range" + ], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/usageDatabases" + } + ], + "description": "List usage metrics and statistics for all databases in the project. You can view the total number of databases, tables, rows, and storage usage. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.", + "demo": "tablesdb\/list-usage.md", + "public": true + } + ], "auth": { "Project": [] } }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "siteId", - "description": "Site ID.", - "required": true, - "type": "string", - "x-example": "<SITE_ID>", - "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "type": { - "type": "string", - "description": "Type of reference passed. Allowed values are: branch, commit", - "default": null, - "x-example": "branch", - "enum": [ - "branch", - "commit", - "tag" - ], - "x-enum-name": "VCSReferenceType", - "x-enum-keys": [] - }, - "reference": { - "type": "string", - "description": "VCS reference to create deployment from. Depending on type this can be: branch name, commit hash", - "default": null, - "x-example": "<REFERENCE>" - }, - "activate": { - "type": "boolean", - "description": "Automatically activate the deployment when it is finished building.", - "default": false, - "x-example": false - } - }, - "required": [ - "type", - "reference" - ] - } + "security": [ + { + "Project": [] + } + ], + "parameters": [ + { + "name": "range", + "description": "Date range.", + "required": false, + "type": "string", + "x-example": "24h", + "enum": [ + "24h", + "30d", + "90d" + ], + "x-enum-name": "UsageRange", + "x-enum-keys": [ + "Twenty Four Hours", + "Thirty Days", + "Ninety Days" + ], + "default": "30d", + "in": "query" } ] } }, - "\/sites\/{siteId}\/deployments\/{deploymentId}": { + "\/tablesdb\/{databaseId}": { "get": { - "summary": "Get deployment", - "operationId": "sitesGetDeployment", + "summary": "Get database", + "operationId": "tablesDBGet", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "sites" + "tablesDB" ], - "description": "Get a site deployment by its unique ID.", + "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", "responses": { "200": { - "description": "Deployment", + "description": "Database", "schema": { - "$ref": "#\/definitions\/deployment" + "$ref": "#\/definitions\/database" } } }, "deprecated": false, "x-appwrite": { - "method": "getDeployment", - "group": "deployments", - "weight": 597, + "method": "get", + "group": "tablesdb", + "weight": 319, "cookies": false, "type": "", - "demo": "sites\/get-deployment.md", + "demo": "tablesdb\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": "databases.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get.md", "auth": { "Project": [] } @@ -45965,57 +52660,55 @@ ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", - "required": true, - "type": "string", - "x-example": "<SITE_ID>", - "in": "path" - }, - { - "name": "deploymentId", - "description": "Deployment ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<DEPLOYMENT_ID>", + "x-example": "<DATABASE_ID>", "in": "path" } ] }, - "delete": { - "summary": "Delete deployment", - "operationId": "sitesDeleteDeployment", + "put": { + "summary": "Update database", + "operationId": "tablesDBUpdate", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ - "sites" + "tablesDB" ], - "description": "Delete a site deployment by its unique ID.", + "description": "Update a database by its unique ID.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Database", + "schema": { + "$ref": "#\/definitions\/database" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteDeployment", - "group": "deployments", - "weight": 600, + "method": "update", + "group": "tablesdb", + "weight": 320, "cookies": false, "type": "", - "demo": "sites\/delete-deployment.md", + "demo": "tablesdb\/update.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update.md", "auth": { "Project": [] } @@ -46028,62 +52721,71 @@ ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<SITE_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "deploymentId", - "description": "Deployment ID.", - "required": true, - "type": "string", - "x-example": "<DEPLOYMENT_ID>", - "in": "path" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Database name. Max length: 128 chars.", + "default": null, + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "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.", + "default": true, + "x-example": false + } + } + } } ] - } - }, - "\/sites\/{siteId}\/deployments\/{deploymentId}\/download": { - "get": { - "summary": "Get deployment download", - "operationId": "sitesGetDeploymentDownload", - "consumes": [], - "produces": [ - "*\/*" + }, + "delete": { + "summary": "Delete database", + "operationId": "tablesDBDelete", + "consumes": [ + "application\/json" ], + "produces": [], "tags": [ - "sites" + "tablesDB" ], - "description": "Get a site deployment content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory.", + "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", "responses": { - "200": { - "description": "File", - "schema": { - "type": "file" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "getDeploymentDownload", - "group": "deployments", - "weight": 601, + "method": "delete", + "group": "tablesdb", + "weight": 321, "cookies": false, - "type": "location", - "demo": "sites\/get-deployment-download.md", + "type": "", + "demo": "tablesdb\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete.md", "auth": { "Project": [] } @@ -46091,85 +52793,63 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", - "required": true, - "type": "string", - "x-example": "<SITE_ID>", - "in": "path" - }, - { - "name": "deploymentId", - "description": "Deployment ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<DEPLOYMENT_ID>", + "x-example": "<DATABASE_ID>", "in": "path" - }, - { - "name": "type", - "description": "Deployment file to download. Can be: \"source\", \"output\".", - "required": false, - "type": "string", - "x-example": "source", - "enum": [ - "source", - "output" - ], - "x-enum-name": "DeploymentDownloadType", - "x-enum-keys": [], - "default": "source", - "in": "query" } ] } }, - "\/sites\/{siteId}\/deployments\/{deploymentId}\/status": { - "patch": { - "summary": "Update deployment status", - "operationId": "sitesUpdateDeploymentStatus", - "consumes": [ - "application\/json" - ], + "\/tablesdb\/{databaseId}\/tables": { + "get": { + "summary": "List tables", + "operationId": "tablesDBListTables", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "sites" + "tablesDB" ], - "description": "Cancel an ongoing site deployment build. If the build is already in progress, it will be stopped and marked as canceled. If the build hasn't started yet, it will be marked as canceled without executing. You cannot cancel builds that have already completed (status 'ready') or failed. The response includes the final build status and details.", + "description": "Get a list of all tables that belong to the provided databaseId. You can use the search parameter to filter your results.", "responses": { "200": { - "description": "Deployment", + "description": "Tables List", "schema": { - "$ref": "#\/definitions\/deployment" + "$ref": "#\/definitions\/tableList" } } }, "deprecated": false, "x-appwrite": { - "method": "updateDeploymentStatus", - "group": "deployments", - "weight": 603, + "method": "listTables", + "group": "tables", + "weight": 329, "cookies": false, "type": "", - "demo": "sites\/update-deployment-status.md", + "demo": "tablesdb\/list-tables.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": [ + "tables.read", + "collections.read" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-tables.md", "auth": { "Project": [] } @@ -46182,62 +52862,88 @@ ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<SITE_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "deploymentId", - "description": "Deployment ID.", - "required": true, + "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, enabled, rowSecurity", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, "type": "string", - "x-example": "<DEPLOYMENT_ID>", - "in": "path" + "x-example": "<SEARCH>", + "default": "", + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" } ] - } - }, - "\/sites\/{siteId}\/logs": { - "get": { - "summary": "List logs", - "operationId": "sitesListLogs", - "consumes": [], + }, + "post": { + "summary": "Create table", + "operationId": "tablesDBCreateTable", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "sites" + "tablesDB" ], - "description": "Get a list of all site logs. You can use the query params to filter your results.", + "description": "Create a new Table. Before using this route, you should create a new database resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", "responses": { - "200": { - "description": "Executions List", + "201": { + "description": "Table", "schema": { - "$ref": "#\/definitions\/executionList" + "$ref": "#\/definitions\/table" } } }, "deprecated": false, "x-appwrite": { - "method": "listLogs", - "group": "logs", - "weight": 605, + "method": "createTable", + "group": "tables", + "weight": 325, "cookies": false, "type": "", - "demo": "sites\/list-logs.md", + "demo": "tablesdb\/create-table.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "log.read", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-table.md", "auth": { "Project": [] } @@ -46250,75 +52956,123 @@ ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<SITE_ID>", + "x-example": "<DATABASE_ID>", "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, - "type": "array", - "collectionFormat": "multi", - "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, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "tableId": { + "type": "string", + "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.", + "default": null, + "x-example": "<TABLE_ID>" + }, + "name": { + "type": "string", + "description": "Table name. Max length: 128 chars.", + "default": null, + "x-example": "<NAME>" + }, + "permissions": { + "type": "array", + "description": "An array of permissions strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "default": null, + "x-example": "[\"read(\"any\")\"]", + "x-nullable": true, + "items": { + "type": "string" + } + }, + "rowSecurity": { + "type": "boolean", + "description": "Enables configuring permissions for individual rows. A user needs one of row or table level permissions to access a row. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "default": false, + "x-example": false + }, + "enabled": { + "type": "boolean", + "description": "Is table enabled? When set to 'disabled', users cannot access the table but Server SDKs with and API key can still read and write to the table. No data is lost when this is toggled.", + "default": true, + "x-example": false + }, + "columns": { + "type": "array", + "description": "Array of column definitions to create. Each column should contain: key (string), type (string: string, integer, float, boolean, datetime, relationship), size (integer, required for string type), required (boolean, optional), default (mixed, optional), array (boolean, optional), and type-specific options.", + "default": [], + "x-example": null, + "items": { + "type": "object" + } + }, + "indexes": { + "type": "array", + "description": "Array of index definitions to create. Each index should contain: key (string), type (string: key, fulltext, unique, spatial), attributes (array of column keys), orders (array of ASC\/DESC, optional), and lengths (array of integers, optional).", + "default": [], + "x-example": null, + "items": { + "type": "object" + } + } + }, + "required": [ + "tableId", + "name" + ] + } } ] } }, - "\/sites\/{siteId}\/logs\/{logId}": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}": { "get": { - "summary": "Get log", - "operationId": "sitesGetLog", + "summary": "Get table", + "operationId": "tablesDBGetTable", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "sites" + "tablesDB" ], - "description": "Get a site request log by its unique ID.", + "description": "Get a table by its unique ID. This endpoint response returns a JSON object with the table metadata.", "responses": { "200": { - "description": "Execution", + "description": "Table", "schema": { - "$ref": "#\/definitions\/execution" + "$ref": "#\/definitions\/table" } } }, "deprecated": false, "x-appwrite": { - "method": "getLog", - "group": "logs", - "weight": 604, + "method": "getTable", + "group": "tables", + "weight": 326, "cookies": false, "type": "", - "demo": "sites\/get-log.md", + "demo": "tablesdb\/get-table.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "log.read", + "scope": [ + "tables.read", + "collections.read" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-table.md", "auth": { "Project": [] } @@ -46331,26 +53085,26 @@ ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<SITE_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "logId", - "description": "Log ID.", + "name": "tableId", + "description": "Table ID.", "required": true, "type": "string", - "x-example": "<LOG_ID>", + "x-example": "<TABLE_ID>", "in": "path" } ] }, - "delete": { - "summary": "Delete log", - "operationId": "sitesDeleteLog", + "put": { + "summary": "Update table", + "operationId": "tablesDBUpdateTable", "consumes": [ "application\/json" ], @@ -46358,32 +53112,39 @@ "application\/json" ], "tags": [ - "sites" + "tablesDB" ], - "description": "Delete a site log by its unique ID.", + "description": "Update a table by its unique ID.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Table", + "schema": { + "$ref": "#\/definitions\/table" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteLog", - "group": "logs", - "weight": 606, + "method": "updateTable", + "group": "tables", + "weight": 327, "cookies": false, "type": "", - "demo": "sites\/delete-log.md", + "demo": "tablesdb\/update-table.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "log.write", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-table.md", "auth": { "Project": [] } @@ -46396,140 +53157,170 @@ ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<SITE_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "logId", - "description": "Log ID.", + "name": "tableId", + "description": "Table ID.", "required": true, "type": "string", - "x-example": "<LOG_ID>", + "x-example": "<TABLE_ID>", "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Table name. Max length: 128 chars.", + "default": null, + "x-example": "<NAME>" + }, + "permissions": { + "type": "array", + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "default": null, + "x-example": "[\"read(\"any\")\"]", + "x-nullable": true, + "items": { + "type": "string" + } + }, + "rowSecurity": { + "type": "boolean", + "description": "Enables configuring permissions for individual rows. A user needs one of row or table-level permissions to access a row. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "default": false, + "x-example": false + }, + "enabled": { + "type": "boolean", + "description": "Is table enabled? When set to 'disabled', users cannot access the table but Server SDKs with and API key can still read and write to the table. No data is lost when this is toggled.", + "default": true, + "x-example": false + } + } + } } ] - } - }, - "\/sites\/{siteId}\/usage": { - "get": { - "summary": "Get site usage", - "operationId": "sitesGetUsage", - "consumes": [], - "produces": [ + }, + "delete": { + "summary": "Delete table", + "operationId": "tablesDBDeleteTable", + "consumes": [ "application\/json" ], + "produces": [], "tags": [ - "sites" + "tablesDB" ], - "description": "Get usage metrics and statistics for a for a specific site. View statistics including total deployments, builds, executions, storage usage, and compute time. The response includes both current totals and historical data for each metric. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, defaults to 30 days.", + "description": "Delete a table by its unique ID. Only users with write permissions have access to delete this resource.", "responses": { - "200": { - "description": "UsageSite", - "schema": { - "$ref": "#\/definitions\/usageSite" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "getUsage", - "group": null, - "weight": 615, + "method": "deleteTable", + "group": "tables", + "weight": 328, "cookies": false, "type": "", - "demo": "sites\/get-usage.md", + "demo": "tablesdb\/delete-table.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-table.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<SITE_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "range", - "description": "Date range.", - "required": false, + "name": "tableId", + "description": "Table ID.", + "required": true, "type": "string", - "x-example": "24h", - "enum": [ - "24h", - "30d", - "90d" - ], - "x-enum-name": "UsageRange", - "x-enum-keys": [ - "Twenty Four Hours", - "Thirty Days", - "Ninety Days" - ], - "default": "30d", - "in": "query" + "x-example": "<TABLE_ID>", + "in": "path" } ] } }, - "\/sites\/{siteId}\/variables": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns": { "get": { - "summary": "List variables", - "operationId": "sitesListVariables", + "summary": "List columns", + "operationId": "tablesDBListColumns", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "sites" + "tablesDB" ], - "description": "Get a list of all variables of a specific site.", + "description": "List columns in the table.", "responses": { "200": { - "description": "Variables List", + "description": "Columns List", "schema": { - "$ref": "#\/definitions\/variableList" + "$ref": "#\/definitions\/columnList" } } }, "deprecated": false, "x-appwrite": { - "method": "listVariables", - "group": "variables", - "weight": 609, + "method": "listColumns", + "group": "columns", + "weight": 334, "cookies": false, "type": "", - "demo": "sites\/list-variables.md", + "demo": "tablesdb\/list-columns.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": [ + "tables.read", + "collections.read" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-columns.md", "auth": { "Project": [] } @@ -46542,18 +53333,49 @@ ], "parameters": [ { - "name": "siteId", - "description": "Site unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<SITE_ID>", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "type": "string", + "x-example": "<TABLE_ID>", "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 columns: key, type, size, required, array, status, error", + "required": false, + "type": "array", + "collectionFormat": "multi", + "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, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" } ] - }, + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/boolean": { "post": { - "summary": "Create variable", - "operationId": "sitesCreateVariable", + "summary": "Create boolean column", + "operationId": "tablesDBCreateBooleanColumn", "consumes": [ "application\/json" ], @@ -46561,35 +53383,39 @@ "application\/json" ], "tags": [ - "sites" + "tablesDB" ], - "description": "Create a new site variable. These variables can be accessed during build and runtime (server-side rendering) as environment variables.", + "description": "Create a boolean column.\n", "responses": { - "201": { - "description": "Variable", + "202": { + "description": "ColumnBoolean", "schema": { - "$ref": "#\/definitions\/variable" + "$ref": "#\/definitions\/columnBoolean" } } }, "deprecated": false, "x-appwrite": { - "method": "createVariable", - "group": "variables", - "weight": 607, + "method": "createBooleanColumn", + "group": "columns", + "weight": 335, "cookies": false, "type": "", - "demo": "sites\/create-variable.md", + "demo": "tablesdb\/create-boolean-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-boolean-column.md", "auth": { "Project": [] } @@ -46602,11 +53428,19 @@ ], "parameters": [ { - "name": "siteId", - "description": "Site unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<SITE_ID>", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "type": "string", + "x-example": "<TABLE_ID>", "in": "path" }, { @@ -46617,70 +53451,83 @@ "properties": { "key": { "type": "string", - "description": "Variable key. Max length: 255 chars.", + "description": "Column Key.", "default": null, - "x-example": "<KEY>" + "x-example": null }, - "value": { - "type": "string", - "description": "Variable value. Max length: 8192 chars.", + "required": { + "type": "boolean", + "description": "Is column required?", "default": null, - "x-example": "<VALUE>" + "x-example": false }, - "secret": { + "default": { "type": "boolean", - "description": "Secret variables can be updated or deleted, but only sites can read them during build and runtime.", - "default": true, + "description": "Default value for column when not provided. Cannot be set when column is required.", + "default": null, + "x-example": false, + "x-nullable": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "default": false, "x-example": false } }, "required": [ "key", - "value" + "required" ] } } ] } }, - "\/sites\/{siteId}\/variables\/{variableId}": { - "get": { - "summary": "Get variable", - "operationId": "sitesGetVariable", - "consumes": [], + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/boolean\/{key}": { + "patch": { + "summary": "Update boolean column", + "operationId": "tablesDBUpdateBooleanColumn", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "sites" + "tablesDB" ], - "description": "Get a variable by its unique ID.", + "description": "Update a boolean column. Changing the `default` value will not update already existing rows.", "responses": { "200": { - "description": "Variable", + "description": "ColumnBoolean", "schema": { - "$ref": "#\/definitions\/variable" + "$ref": "#\/definitions\/columnBoolean" } } }, "deprecated": false, "x-appwrite": { - "method": "getVariable", - "group": "variables", - "weight": 608, + "method": "updateBooleanColumn", + "group": "columns", + "weight": 336, "cookies": false, "type": "", - "demo": "sites\/get-variable.md", + "demo": "tablesdb\/update-boolean-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-boolean-column.md", "auth": { "Project": [] } @@ -46693,26 +53540,68 @@ ], "parameters": [ { - "name": "siteId", - "description": "Site unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<SITE_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "variableId", - "description": "Variable unique ID.", + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "type": "string", + "x-example": "<TABLE_ID>", + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", "required": true, "type": "string", - "x-example": "<VARIABLE_ID>", "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "required": { + "type": "boolean", + "description": "Is column required?", + "default": null, + "x-example": false + }, + "default": { + "type": "boolean", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "default": null, + "x-example": false, + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "default": null, + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required", + "default" + ] + } } ] - }, - "put": { - "summary": "Update variable", - "operationId": "sitesUpdateVariable", + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/datetime": { + "post": { + "summary": "Create datetime column", + "operationId": "tablesDBCreateDatetimeColumn", "consumes": [ "application\/json" ], @@ -46720,35 +53609,39 @@ "application\/json" ], "tags": [ - "sites" + "tablesDB" ], - "description": "Update variable by its unique ID.", + "description": "Create a date time column according to the ISO 8601 standard.", "responses": { - "200": { - "description": "Variable", + "202": { + "description": "ColumnDatetime", "schema": { - "$ref": "#\/definitions\/variable" + "$ref": "#\/definitions\/columnDatetime" } } }, "deprecated": false, "x-appwrite": { - "method": "updateVariable", - "group": "variables", - "weight": 610, + "method": "createDatetimeColumn", + "group": "columns", + "weight": 337, "cookies": false, "type": "", - "demo": "sites\/update-variable.md", + "demo": "tablesdb\/create-datetime-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-datetime-column.md", "auth": { "Project": [] } @@ -46761,19 +53654,19 @@ ], "parameters": [ { - "name": "siteId", - "description": "Site unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<SITE_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "variableId", - "description": "Variable unique ID.", + "name": "tableId", + "description": "Table ID.", "required": true, "type": "string", - "x-example": "<VARIABLE_ID>", + "x-example": "<TABLE_ID>", "in": "path" }, { @@ -46784,66 +53677,83 @@ "properties": { "key": { "type": "string", - "description": "Variable key. Max length: 255 chars.", + "description": "Column Key.", "default": null, - "x-example": "<KEY>" + "x-example": null }, - "value": { + "required": { + "type": "boolean", + "description": "Is column required?", + "default": null, + "x-example": false + }, + "default": { "type": "string", - "description": "Variable value. Max length: 8192 chars.", + "description": "Default value for the column in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Cannot be set when column is required.", "default": null, - "x-example": "<VALUE>", + "x-example": null, "x-nullable": true }, - "secret": { + "array": { "type": "boolean", - "description": "Secret variables can be updated or deleted, but only sites can read them during build and runtime.", - "default": null, - "x-example": false, - "x-nullable": true + "description": "Is column an array?", + "default": false, + "x-example": false } }, "required": [ - "key" + "key", + "required" ] } } ] - }, - "delete": { - "summary": "Delete variable", - "operationId": "sitesDeleteVariable", + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/datetime\/{key}": { + "patch": { + "summary": "Update dateTime column", + "operationId": "tablesDBUpdateDatetimeColumn", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ - "sites" + "tablesDB" ], - "description": "Delete a variable by its unique ID.", + "description": "Update a date time column. Changing the `default` value will not update already existing rows.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "ColumnDatetime", + "schema": { + "$ref": "#\/definitions\/columnDatetime" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteVariable", - "group": "variables", - "weight": 611, + "method": "updateDatetimeColumn", + "group": "columns", + "weight": 338, "cookies": false, "type": "", - "demo": "sites\/delete-variable.md", + "demo": "tablesdb\/update-datetime-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-datetime-column.md", "auth": { "Project": [] } @@ -46856,109 +53766,68 @@ ], "parameters": [ { - "name": "siteId", - "description": "Site unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<SITE_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "variableId", - "description": "Variable unique ID.", + "name": "tableId", + "description": "Table ID.", "required": true, "type": "string", - "x-example": "<VARIABLE_ID>", + "x-example": "<TABLE_ID>", "in": "path" - } - ] - } - }, - "\/storage\/buckets": { - "get": { - "summary": "List buckets", - "operationId": "storageListBuckets", - "consumes": [], - "produces": [ - "application\/json" - ], - "tags": [ - "storage" - ], - "description": "Get a list of all the storage buckets. You can use the query params to filter your results.", - "responses": { - "200": { - "description": "Buckets List", - "schema": { - "$ref": "#\/definitions\/bucketList" - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "listBuckets", - "group": "buckets", - "weight": 530, - "cookies": false, - "type": "", - "demo": "storage\/list-buckets.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "buckets.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/list-buckets.md", - "auth": { - "Project": [] - } - }, - "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: enabled, name, fileSecurity, maximumFileSize, encryption, antivirus, transformations", - "required": false, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" }, { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, + "name": "key", + "description": "Column Key.", + "required": true, "type": "string", - "x-example": "<SEARCH>", - "default": "", - "in": "query" + "in": "path" }, { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "required": { + "type": "boolean", + "description": "Is column required?", + "default": null, + "x-example": false + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "default": null, + "x-example": null, + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "default": null, + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required", + "default" + ] + } } ] - }, + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/email": { "post": { - "summary": "Create bucket", - "operationId": "storageCreateBucket", + "summary": "Create email column", + "operationId": "tablesDBCreateEmailColumn", "consumes": [ "application\/json" ], @@ -46966,36 +53835,39 @@ "application\/json" ], "tags": [ - "storage" + "tablesDB" ], - "description": "Create a new storage bucket.", + "description": "Create an email column.\n", "responses": { - "201": { - "description": "Bucket", + "202": { + "description": "ColumnEmail", "schema": { - "$ref": "#\/definitions\/bucket" + "$ref": "#\/definitions\/columnEmail" } } }, "deprecated": false, "x-appwrite": { - "method": "createBucket", - "group": "buckets", - "weight": 528, + "method": "createEmailColumn", + "group": "columns", + "weight": 339, "cookies": false, "type": "", - "demo": "storage\/create-bucket.md", + "demo": "tablesdb\/create-email-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "buckets.write", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/create-bucket.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-email-column.md", "auth": { "Project": [] } @@ -47007,142 +53879,108 @@ } ], "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "type": "string", + "x-example": "<TABLE_ID>", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "bucketId": { - "type": "string", - "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.", - "default": null, - "x-example": "<BUCKET_ID>" - }, - "name": { + "key": { "type": "string", - "description": "Bucket name", - "default": null, - "x-example": "<NAME>" - }, - "permissions": { - "type": "array", - "description": "An array of permission strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "description": "Column Key.", "default": null, - "x-example": "[\"read(\"any\")\"]", - "x-nullable": true, - "items": { - "type": "string" - } - }, - "fileSecurity": { - "type": "boolean", - "description": "Enables configuring permissions for individual file. A user needs one of file or bucket level permissions to access a file. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "default": false, - "x-example": false + "x-example": null }, - "enabled": { + "required": { "type": "boolean", - "description": "Is bucket enabled? When set to 'disabled', users cannot access the files in this bucket but Server SDKs with and API key can still access the bucket. No files are lost when this is toggled.", - "default": true, + "description": "Is column required?", + "default": null, "x-example": false }, - "maximumFileSize": { - "type": "integer", - "description": "Maximum file size allowed in bytes. Maximum allowed value is 5GB.", - "default": {}, - "x-example": 1, - "format": "int32" - }, - "allowedFileExtensions": { - "type": "array", - "description": "Allowed file extensions. Maximum of 100 extensions are allowed, each 64 characters long.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "compression": { + "default": { "type": "string", - "description": "Compression algorithm chosen for compression. Can be one of none, [gzip](https:\/\/en.wikipedia.org\/wiki\/Gzip), or [zstd](https:\/\/en.wikipedia.org\/wiki\/Zstd), For file size above 20MB compression is skipped even if it's enabled", - "default": "none", - "x-example": "none", - "enum": [ - "none", - "gzip", - "zstd" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "encryption": { - "type": "boolean", - "description": "Is encryption enabled? For file size above 20MB encryption is skipped even if it's enabled", - "default": true, - "x-example": false - }, - "antivirus": { - "type": "boolean", - "description": "Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled", - "default": true, - "x-example": false + "description": "Default value for column when not provided. Cannot be set when column is required.", + "default": null, + "x-example": "email@example.com", + "format": "email", + "x-nullable": true }, - "transformations": { + "array": { "type": "boolean", - "description": "Are image transformations enabled?", - "default": true, + "description": "Is column an array?", + "default": false, "x-example": false } }, "required": [ - "bucketId", - "name" + "key", + "required" ] } } ] } }, - "\/storage\/buckets\/{bucketId}": { - "get": { - "summary": "Get bucket", - "operationId": "storageGetBucket", - "consumes": [], + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/email\/{key}": { + "patch": { + "summary": "Update email column", + "operationId": "tablesDBUpdateEmailColumn", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "storage" + "tablesDB" ], - "description": "Get a storage bucket by its unique ID. This endpoint response returns a JSON object with the storage bucket metadata.", + "description": "Update an email column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "Bucket", + "description": "ColumnEmail", "schema": { - "$ref": "#\/definitions\/bucket" + "$ref": "#\/definitions\/columnEmail" } } }, "deprecated": false, "x-appwrite": { - "method": "getBucket", - "group": "buckets", - "weight": 529, + "method": "updateEmailColumn", + "group": "columns", + "weight": 340, "cookies": false, "type": "", - "demo": "storage\/get-bucket.md", + "demo": "tablesdb\/update-email-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "buckets.read", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-bucket.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-email-column.md", "auth": { "Project": [] } @@ -47155,18 +53993,69 @@ ], "parameters": [ { - "name": "bucketId", - "description": "Bucket unique ID.", + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "type": "string", + "x-example": "<TABLE_ID>", + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", "required": true, "type": "string", - "x-example": "<BUCKET_ID>", "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "required": { + "type": "boolean", + "description": "Is column required?", + "default": null, + "x-example": false + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "default": null, + "x-example": "email@example.com", + "format": "email", + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "default": null, + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required", + "default" + ] + } } ] - }, - "put": { - "summary": "Update bucket", - "operationId": "storageUpdateBucket", + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/enum": { + "post": { + "summary": "Create enum column", + "operationId": "tablesDBCreateEnumColumn", "consumes": [ "application\/json" ], @@ -47174,36 +54063,39 @@ "application\/json" ], "tags": [ - "storage" + "tablesDB" ], - "description": "Update a storage bucket by its unique ID.", + "description": "Create an enumeration column. The `elements` param acts as a white-list of accepted values for this column.", "responses": { - "200": { - "description": "Bucket", + "202": { + "description": "ColumnEnum", "schema": { - "$ref": "#\/definitions\/bucket" + "$ref": "#\/definitions\/columnEnum" } } }, "deprecated": false, "x-appwrite": { - "method": "updateBucket", - "group": "buckets", - "weight": 531, + "method": "createEnumColumn", + "group": "columns", + "weight": 341, "cookies": false, "type": "", - "demo": "storage\/update-bucket.md", + "demo": "tablesdb\/create-enum-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "buckets.write", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/update-bucket.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-enum-column.md", "auth": { "Project": [] } @@ -47216,11 +54108,19 @@ ], "parameters": [ { - "name": "bucketId", - "description": "Bucket unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<BUCKET_ID>", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "type": "string", + "x-example": "<TABLE_ID>", "in": "path" }, { @@ -47229,186 +54129,95 @@ "schema": { "type": "object", "properties": { - "name": { + "key": { "type": "string", - "description": "Bucket name", + "description": "Column Key.", "default": null, - "x-example": "<NAME>" + "x-example": null }, - "permissions": { + "elements": { "type": "array", - "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "description": "Array of enum values.", "default": null, - "x-example": "[\"read(\"any\")\"]", - "x-nullable": true, - "items": { - "type": "string" - } - }, - "fileSecurity": { - "type": "boolean", - "description": "Enables configuring permissions for individual file. A user needs one of file or bucket level permissions to access a file. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "default": false, - "x-example": false - }, - "enabled": { - "type": "boolean", - "description": "Is bucket enabled? When set to 'disabled', users cannot access the files in this bucket but Server SDKs with and API key can still access the bucket. No files are lost when this is toggled.", - "default": true, - "x-example": false - }, - "maximumFileSize": { - "type": "integer", - "description": "Maximum file size allowed in bytes. Maximum allowed value is 5GB.", - "default": {}, - "x-example": 1, - "format": "int32" - }, - "allowedFileExtensions": { - "type": "array", - "description": "Allowed file extensions. Maximum of 100 extensions are allowed, each 64 characters long.", - "default": [], "x-example": null, "items": { "type": "string" } }, - "compression": { - "type": "string", - "description": "Compression algorithm chosen for compression. Can be one of none, [gzip](https:\/\/en.wikipedia.org\/wiki\/Gzip), or [zstd](https:\/\/en.wikipedia.org\/wiki\/Zstd), For file size above 20MB compression is skipped even if it's enabled", - "default": "none", - "x-example": "none", - "enum": [ - "none", - "gzip", - "zstd" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "encryption": { + "required": { "type": "boolean", - "description": "Is encryption enabled? For file size above 20MB encryption is skipped even if it's enabled", - "default": true, + "description": "Is column required?", + "default": null, "x-example": false }, - "antivirus": { - "type": "boolean", - "description": "Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled", - "default": true, - "x-example": false + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "default": null, + "x-example": "<DEFAULT>", + "x-nullable": true }, - "transformations": { + "array": { "type": "boolean", - "description": "Are image transformations enabled?", - "default": true, + "description": "Is column an array?", + "default": false, "x-example": false } }, "required": [ - "name" + "key", + "elements", + "required" ] } } ] - }, - "delete": { - "summary": "Delete bucket", - "operationId": "storageDeleteBucket", + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/enum\/{key}": { + "patch": { + "summary": "Update enum column", + "operationId": "tablesDBUpdateEnumColumn", "consumes": [ "application\/json" ], - "produces": [], - "tags": [ - "storage" - ], - "description": "Delete a storage bucket by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "method": "deleteBucket", - "group": "buckets", - "weight": 532, - "cookies": false, - "type": "", - "demo": "storage\/delete-bucket.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "buckets.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/delete-bucket.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "bucketId", - "description": "Bucket unique ID.", - "required": true, - "type": "string", - "x-example": "<BUCKET_ID>", - "in": "path" - } - ] - } - }, - "\/storage\/buckets\/{bucketId}\/files": { - "get": { - "summary": "List files", - "operationId": "storageListFiles", - "consumes": [], "produces": [ "application\/json" ], "tags": [ - "storage" + "tablesDB" ], - "description": "Get a list of all the user files. You can use the query params to filter your results.", + "description": "Update an enum column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "Files List", + "description": "ColumnEnum", "schema": { - "$ref": "#\/definitions\/fileList" + "$ref": "#\/definitions\/columnEnum" } } }, "deprecated": false, "x-appwrite": { - "method": "listFiles", - "group": "files", - "weight": 535, + "method": "updateEnumColumn", + "group": "columns", + "weight": 342, "cookies": false, "type": "", - "demo": "storage\/list-files.md", + "demo": "tablesdb\/update-enum-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/list-files.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-enum-column.md", "auth": { "Project": [] } @@ -47416,92 +54225,123 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<BUCKET_ID>", + "x-example": "<DATABASE_ID>", "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, signature, mimeType, sizeOriginal, chunksTotal, chunksUploaded", - "required": false, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" + "name": "tableId", + "description": "Table ID.", + "required": true, + "type": "string", + "x-example": "<TABLE_ID>", + "in": "path" }, { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, + "name": "key", + "description": "Column Key.", + "required": true, "type": "string", - "x-example": "<SEARCH>", - "default": "", - "in": "query" + "in": "path" }, { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "elements": { + "type": "array", + "description": "Updated list of enum values.", + "default": null, + "x-example": null, + "items": { + "type": "string" + } + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "default": null, + "x-example": false + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "default": null, + "x-example": "<DEFAULT>", + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "default": null, + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "elements", + "required", + "default" + ] + } } ] - }, + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/float": { "post": { - "summary": "Create file", - "operationId": "storageCreateFile", + "summary": "Create float column", + "operationId": "tablesDBCreateFloatColumn", "consumes": [ - "multipart\/form-data" + "application\/json" ], "produces": [ "application\/json" ], "tags": [ - "storage" + "tablesDB" ], - "description": "Create a new file. Before using this route, you should create a new bucket resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/storage#storageCreateBucket) API or directly from your Appwrite console.\n\nLarger files should be uploaded using multiple requests with the [content-range](https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTTP\/Headers\/Content-Range) header to send a partial request with a maximum supported chunk of `5MB`. The `content-range` header values should always be in bytes.\n\nWhen the first request is sent, the server will return the **File** object, and the subsequent part request must include the file's **id** in `x-appwrite-id` header to allow the server to know that the partial upload is for the existing file and not for a new one.\n\nIf you're creating a new file using one of the Appwrite SDKs, all the chunking logic will be managed by the SDK internally.\n", + "description": "Create a float column. Optionally, minimum and maximum values can be provided.\n", "responses": { - "201": { - "description": "File", + "202": { + "description": "ColumnFloat", "schema": { - "$ref": "#\/definitions\/file" + "$ref": "#\/definitions\/columnFloat" } } }, "deprecated": false, "x-appwrite": { - "method": "createFile", - "group": "files", - "weight": 781, + "method": "createFloatColumn", + "group": "columns", + "weight": 343, "cookies": false, - "type": "upload", - "demo": "storage\/create-file.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId},chunkId:{chunkId}", - "scope": "files.write", + "type": "", + "demo": "tablesdb\/create-float-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/create-file.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-float-column.md", "auth": { "Project": [] } @@ -47509,90 +54349,128 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<BUCKET_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "fileId", - "description": "File 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.", + "name": "tableId", + "description": "Table ID.", "required": true, - "x-upload-id": true, "type": "string", - "x-example": "<FILE_ID>", - "in": "formData" - }, - { - "name": "file", - "description": "Binary file. Appwrite SDKs provide helpers to handle file input. [Learn about file input](https:\/\/appwrite.io\/docs\/products\/storage\/upload-download#input-file).", - "required": true, - "type": "file", - "in": "formData" + "x-example": "<TABLE_ID>", + "in": "path" }, { - "name": "permissions", - "description": "An array of permission strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "required": false, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "x-example": "[\"read(\"any\")\"]", - "in": "formData" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "default": null, + "x-example": null + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "default": null, + "x-example": false + }, + "min": { + "type": "number", + "description": "Minimum value", + "default": null, + "x-example": null, + "format": "float", + "x-nullable": true + }, + "max": { + "type": "number", + "description": "Maximum value", + "default": null, + "x-example": null, + "format": "float", + "x-nullable": true + }, + "default": { + "type": "number", + "description": "Default value. Cannot be set when required.", + "default": null, + "x-example": null, + "format": "float", + "x-nullable": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "default": false, + "x-example": false + } + }, + "required": [ + "key", + "required" + ] + } } ] } }, - "\/storage\/buckets\/{bucketId}\/files\/{fileId}": { - "get": { - "summary": "Get file", - "operationId": "storageGetFile", - "consumes": [], + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/float\/{key}": { + "patch": { + "summary": "Update float column", + "operationId": "tablesDBUpdateFloatColumn", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "storage" + "tablesDB" ], - "description": "Get a file by its unique ID. This endpoint response returns a JSON object with the file metadata.", + "description": "Update a float column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "File", + "description": "ColumnFloat", "schema": { - "$ref": "#\/definitions\/file" + "$ref": "#\/definitions\/columnFloat" } } }, "deprecated": false, "x-appwrite": { - "method": "getFile", - "group": "files", - "weight": 534, + "method": "updateFloatColumn", + "group": "columns", + "weight": 344, "cookies": false, "type": "", - "demo": "storage\/get-file.md", + "demo": "tablesdb\/update-float-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-float-column.md", "auth": { "Project": [] } @@ -47600,32 +54478,90 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<BUCKET_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "fileId", - "description": "File ID.", + "name": "tableId", + "description": "Table ID.", + "required": true, + "type": "string", + "x-example": "<TABLE_ID>", + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", "required": true, "type": "string", - "x-example": "<FILE_ID>", "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "required": { + "type": "boolean", + "description": "Is column required?", + "default": null, + "x-example": false + }, + "min": { + "type": "number", + "description": "Minimum value", + "default": null, + "x-example": null, + "format": "float", + "x-nullable": true + }, + "max": { + "type": "number", + "description": "Maximum value", + "default": null, + "x-example": null, + "format": "float", + "x-nullable": true + }, + "default": { + "type": "number", + "description": "Default value. Cannot be set when required.", + "default": null, + "x-example": null, + "format": "float", + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "default": null, + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required", + "default" + ] + } } ] - }, - "put": { - "summary": "Update file", - "operationId": "storageUpdateFile", + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/integer": { + "post": { + "summary": "Create integer column", + "operationId": "tablesDBCreateIntegerColumn", "consumes": [ "application\/json" ], @@ -47633,37 +54569,39 @@ "application\/json" ], "tags": [ - "storage" + "tablesDB" ], - "description": "Update a file by its unique ID. Only users with write permissions have access to update this resource.", + "description": "Create an integer column. Optionally, minimum and maximum values can be provided.\n", "responses": { - "200": { - "description": "File", + "202": { + "description": "ColumnInteger", "schema": { - "$ref": "#\/definitions\/file" + "$ref": "#\/definitions\/columnInteger" } } }, "deprecated": false, "x-appwrite": { - "method": "updateFile", - "group": "files", - "weight": 536, + "method": "createIntegerColumn", + "group": "columns", + "weight": 345, "cookies": false, "type": "", - "demo": "storage\/update-file.md", + "demo": "tablesdb\/create-integer-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "files.write", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/update-file.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-integer-column.md", "auth": { "Project": [] } @@ -47671,25 +54609,24 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "bucketId", - "description": "Bucket unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<BUCKET_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "fileId", - "description": "File ID.", + "name": "tableId", + "description": "Table ID.", "required": true, "type": "string", - "x-example": "<FILE_ID>", + "x-example": "<TABLE_ID>", "in": "path" }, { @@ -47698,63 +54635,102 @@ "schema": { "type": "object", "properties": { - "name": { + "key": { "type": "string", - "description": "File name.", + "description": "Column Key.", "default": null, - "x-example": "<NAME>" + "x-example": null }, - "permissions": { - "type": "array", - "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "required": { + "type": "boolean", + "description": "Is column required?", "default": null, - "x-example": "[\"read(\"any\")\"]", - "x-nullable": true, - "items": { - "type": "string" - } + "x-example": false + }, + "min": { + "type": "integer", + "description": "Minimum value", + "default": null, + "x-example": null, + "format": "int64", + "x-nullable": true + }, + "max": { + "type": "integer", + "description": "Maximum value", + "default": null, + "x-example": null, + "format": "int64", + "x-nullable": true + }, + "default": { + "type": "integer", + "description": "Default value. Cannot be set when column is required.", + "default": null, + "x-example": null, + "format": "int64", + "x-nullable": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "default": false, + "x-example": false } - } + }, + "required": [ + "key", + "required" + ] } } ] - }, - "delete": { - "summary": "Delete file", - "operationId": "storageDeleteFile", + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/integer\/{key}": { + "patch": { + "summary": "Update integer column", + "operationId": "tablesDBUpdateIntegerColumn", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ - "storage" + "tablesDB" ], - "description": "Delete a file by its unique ID. Only users with write permissions have access to delete this resource.", + "description": "Update an integer column. Changing the `default` value will not update already existing rows.\n", "responses": { - "204": { - "description": "No content" + "200": { + "description": "ColumnInteger", + "schema": { + "$ref": "#\/definitions\/columnInteger" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteFile", - "group": "files", - "weight": 537, + "method": "updateIntegerColumn", + "group": "columns", + "weight": 346, "cookies": false, "type": "", - "demo": "storage\/delete-file.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "files.write", + "demo": "tablesdb\/update-integer-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/delete-file.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-integer-column.md", "auth": { "Project": [] } @@ -47762,70 +54738,130 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<BUCKET_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "fileId", - "description": "File ID.", + "name": "tableId", + "description": "Table ID.", + "required": true, + "type": "string", + "x-example": "<TABLE_ID>", + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", "required": true, "type": "string", - "x-example": "<FILE_ID>", "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "required": { + "type": "boolean", + "description": "Is column required?", + "default": null, + "x-example": false + }, + "min": { + "type": "integer", + "description": "Minimum value", + "default": null, + "x-example": null, + "format": "int64", + "x-nullable": true + }, + "max": { + "type": "integer", + "description": "Maximum value", + "default": null, + "x-example": null, + "format": "int64", + "x-nullable": true + }, + "default": { + "type": "integer", + "description": "Default value. Cannot be set when column is required.", + "default": null, + "x-example": null, + "format": "int64", + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "default": null, + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required", + "default" + ] + } } ] } }, - "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/download": { - "get": { - "summary": "Get file for download", - "operationId": "storageGetFileDownload", - "consumes": [], + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/ip": { + "post": { + "summary": "Create IP address column", + "operationId": "tablesDBCreateIpColumn", + "consumes": [ + "application\/json" + ], "produces": [ - "*\/*" + "application\/json" ], "tags": [ - "storage" + "tablesDB" ], - "description": "Get a file 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.", + "description": "Create IP address column.\n", "responses": { - "200": { - "description": "File", + "202": { + "description": "ColumnIP", "schema": { - "type": "file" + "$ref": "#\/definitions\/columnIp" } } }, "deprecated": false, "x-appwrite": { - "method": "getFileDownload", - "group": "files", - "weight": 539, + "method": "createIpColumn", + "group": "columns", + "weight": 347, "cookies": false, - "type": "location", - "demo": "storage\/get-file-download.md", + "type": "", + "demo": "tablesdb\/create-ip-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-download.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-ip-column.md", "auth": { "Project": [] } @@ -47833,79 +54869,111 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "bucketId", - "description": "Storage bucket ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<BUCKET_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "fileId", - "description": "File ID.", + "name": "tableId", + "description": "Table ID.", "required": true, "type": "string", - "x-example": "<FILE_ID>", + "x-example": "<TABLE_ID>", "in": "path" }, { - "name": "token", - "description": "File token for accessing this file.", - "required": false, - "type": "string", - "x-example": "<TOKEN>", - "default": "", - "in": "query" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "default": null, + "x-example": null + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "default": null, + "x-example": false + }, + "default": { + "type": "string", + "description": "Default value. Cannot be set when column is required.", + "default": null, + "x-example": null, + "x-nullable": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "default": false, + "x-example": false + } + }, + "required": [ + "key", + "required" + ] + } } ] } }, - "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/preview": { - "get": { - "summary": "Get file preview", - "operationId": "storageGetFilePreview", - "consumes": [], + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/ip\/{key}": { + "patch": { + "summary": "Update IP address column", + "operationId": "tablesDBUpdateIpColumn", + "consumes": [ + "application\/json" + ], "produces": [ - "image\/*" + "application\/json" ], "tags": [ - "storage" + "tablesDB" ], - "description": "Get a file preview image. Currently, this method supports preview for image files (jpg, png, and gif), other supported formats, like pdf, docs, slides, and spreadsheets, will return the file icon image. You can also pass query string arguments for cutting and resizing your preview image. Preview is supported only for image files smaller than 10MB.", + "description": "Update an ip column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "Image", + "description": "ColumnIP", "schema": { - "type": "file" + "$ref": "#\/definitions\/columnIp" } } }, "deprecated": false, "x-appwrite": { - "method": "getFilePreview", - "group": "files", - "weight": 538, + "method": "updateIpColumn", + "group": "columns", + "weight": 348, "cookies": false, - "type": "location", - "demo": "storage\/get-file-preview.md", + "type": "", + "demo": "tablesdb\/update-ip-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-preview.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-ip-column.md", "auth": { "Project": [] } @@ -47913,207 +54981,113 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<BUCKET_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "fileId", - "description": "File ID", + "name": "tableId", + "description": "Table ID.", "required": true, "type": "string", - "x-example": "<FILE_ID>", + "x-example": "<TABLE_ID>", "in": "path" }, { - "name": "width", - "description": "Resize preview image width, Pass an integer between 0 to 4000.", - "required": false, - "type": "integer", - "format": "int32", - "x-example": 0, - "default": 0, - "in": "query" - }, - { - "name": "height", - "description": "Resize preview image height, Pass an integer between 0 to 4000.", - "required": false, - "type": "integer", - "format": "int32", - "x-example": 0, - "default": 0, - "in": "query" - }, - { - "name": "gravity", - "description": "Image crop gravity. Can be one of center,top-left,top,top-right,left,right,bottom-left,bottom,bottom-right", - "required": false, - "type": "string", - "x-example": "center", - "enum": [ - "center", - "top-left", - "top", - "top-right", - "left", - "right", - "bottom-left", - "bottom", - "bottom-right" - ], - "x-enum-name": "ImageGravity", - "x-enum-keys": [], - "default": "center", - "in": "query" - }, - { - "name": "quality", - "description": "Preview image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", - "required": false, - "type": "integer", - "format": "int32", - "x-example": -1, - "default": -1, - "in": "query" - }, - { - "name": "borderWidth", - "description": "Preview image border in pixels. Pass an integer between 0 to 100. Defaults to 0.", - "required": false, - "type": "integer", - "format": "int32", - "x-example": 0, - "default": 0, - "in": "query" - }, - { - "name": "borderColor", - "description": "Preview image border color. Use a valid HEX color, no # is needed for prefix.", - "required": false, - "type": "string", - "default": "", - "in": "query" - }, - { - "name": "borderRadius", - "description": "Preview image border radius in pixels. Pass an integer between 0 to 4000.", - "required": false, - "type": "integer", - "format": "int32", - "x-example": 0, - "default": 0, - "in": "query" - }, - { - "name": "opacity", - "description": "Preview image opacity. Only works with images having an alpha channel (like png). Pass a number between 0 to 1.", - "required": false, - "type": "number", - "format": "float", - "x-example": 0, - "default": 1, - "in": "query" - }, - { - "name": "rotation", - "description": "Preview image rotation in degrees. Pass an integer between -360 and 360.", - "required": false, - "type": "integer", - "format": "int32", - "x-example": -360, - "default": 0, - "in": "query" - }, - { - "name": "background", - "description": "Preview image background color. Only works with transparent images (png). Use a valid HEX color, no # is needed for prefix.", - "required": false, - "type": "string", - "default": "", - "in": "query" - }, - { - "name": "output", - "description": "Output format type (jpeg, jpg, png, gif and webp).", - "required": false, + "name": "key", + "description": "Column Key.", + "required": true, "type": "string", - "x-example": "jpg", - "enum": [ - "jpg", - "jpeg", - "png", - "webp", - "heic", - "avif", - "gif" - ], - "x-enum-name": "ImageFormat", - "x-enum-keys": [], - "default": "", - "in": "query" + "in": "path" }, { - "name": "token", - "description": "File token for accessing this file.", - "required": false, - "type": "string", - "x-example": "<TOKEN>", - "default": "", - "in": "query" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "required": { + "type": "boolean", + "description": "Is column required?", + "default": null, + "x-example": false + }, + "default": { + "type": "string", + "description": "Default value. Cannot be set when column is required.", + "default": null, + "x-example": null, + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "default": null, + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required", + "default" + ] + } } ] } }, - "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/view": { - "get": { - "summary": "Get file for view", - "operationId": "storageGetFileView", - "consumes": [], + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/line": { + "post": { + "summary": "Create line column", + "operationId": "tablesDBCreateLineColumn", + "consumes": [ + "application\/json" + ], "produces": [ - "*\/*" + "application\/json" ], "tags": [ - "storage" + "tablesDB" ], - "description": "Get a file content by its unique ID. This endpoint is similar to the download method but returns with no 'Content-Disposition: attachment' header.", + "description": "Create a geometric line column.", "responses": { - "200": { - "description": "File", + "202": { + "description": "ColumnLine", "schema": { - "type": "file" + "$ref": "#\/definitions\/columnLine" } } }, "deprecated": false, "x-appwrite": { - "method": "getFileView", - "group": "files", - "weight": 540, + "method": "createLineColumn", + "group": "columns", + "weight": 349, "cookies": false, - "type": "location", - "demo": "storage\/get-file-view.md", + "type": "", + "demo": "tablesdb\/create-line-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-view.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-line-column.md", "auth": { "Project": [] } @@ -48121,228 +55095,336 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<BUCKET_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "fileId", - "description": "File ID.", + "name": "tableId", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "type": "string", - "x-example": "<FILE_ID>", + "x-example": "<TABLE_ID>", "in": "path" }, { - "name": "token", - "description": "File token for accessing this file.", - "required": false, - "type": "string", - "x-example": "<TOKEN>", - "default": "", - "in": "query" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "default": null, + "x-example": null + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "default": null, + "x-example": false + }, + "default": { + "type": "array", + "description": "Default value for column 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 column is required.", + "default": null, + "x-example": "[[1, 2], [3, 4], [5, 6]]", + "x-nullable": true + } + }, + "required": [ + "key", + "required" + ] + } } ] } }, - "\/storage\/usage": { - "get": { - "summary": "Get storage usage stats", - "operationId": "storageGetUsage", - "consumes": [], + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/line\/{key}": { + "patch": { + "summary": "Update line column", + "operationId": "tablesDBUpdateLineColumn", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "storage" + "tablesDB" ], - "description": "Get usage metrics and statistics for all buckets in the project. You can view the total number of buckets, files, storage usage. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.\n", + "description": "Update a line column. Changing the `default` value will not update already existing rows.", "responses": { "200": { - "description": "StorageUsage", + "description": "ColumnLine", "schema": { - "$ref": "#\/definitions\/usageStorage" + "$ref": "#\/definitions\/columnLine" } } }, "deprecated": false, "x-appwrite": { - "method": "getUsage", - "group": null, - "weight": 542, + "method": "updateLineColumn", + "group": "columns", + "weight": 350, "cookies": false, "type": "", - "demo": "storage\/get-usage.md", + "demo": "tablesdb\/update-line-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-usage.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-line-column.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "range", - "description": "Date range.", - "required": false, + "name": "databaseId", + "description": "Database ID.", + "required": true, "type": "string", - "x-example": "24h", - "enum": [ - "24h", - "30d", - "90d" - ], - "x-enum-name": "UsageRange", - "x-enum-keys": [ - "Twenty Four Hours", - "Thirty Days", - "Ninety Days" - ], - "default": "30d", - "in": "query" + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "type": "string", + "x-example": "<TABLE_ID>", + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "type": "string", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "required": { + "type": "boolean", + "description": "Is column required?", + "default": null, + "x-example": false + }, + "default": { + "type": "array", + "description": "Default value for column 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 column is required.", + "default": null, + "x-example": "[[1, 2], [3, 4], [5, 6]]", + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "default": null, + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required" + ] + } } ] } }, - "\/storage\/{bucketId}\/usage": { - "get": { - "summary": "Get bucket usage stats", - "operationId": "storageGetBucketUsage", - "consumes": [], + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/longtext": { + "post": { + "summary": "Create longtext column", + "operationId": "tablesDBCreateLongtextColumn", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "storage" + "tablesDB" ], - "description": "Get usage metrics and statistics a specific bucket in the project. You can view the total number of files, storage usage. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.\n", + "description": "Create a longtext column.\n", "responses": { - "200": { - "description": "UsageBuckets", + "202": { + "description": "ColumnLongtext", "schema": { - "$ref": "#\/definitions\/usageBuckets" + "$ref": "#\/definitions\/columnLongtext" } } }, "deprecated": false, "x-appwrite": { - "method": "getBucketUsage", - "group": null, - "weight": 543, + "method": "createLongtextColumn", + "group": "columns", + "weight": 367, "cookies": false, "type": "", - "demo": "storage\/get-bucket-usage.md", + "demo": "tablesdb\/create-longtext-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-bucket-usage.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-longtext-column.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "bucketId", - "description": "Bucket ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<BUCKET_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "range", - "description": "Date range.", - "required": false, + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, "type": "string", - "x-example": "24h", - "enum": [ - "24h", - "30d", - "90d" - ], - "x-enum-name": "UsageRange", - "x-enum-keys": [ - "Twenty Four Hours", - "Thirty Days", - "Ninety Days" - ], - "default": "30d", - "in": "query" + "x-example": "<TABLE_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "default": null, + "x-example": null + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "default": null, + "x-example": false + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "default": null, + "x-example": "<DEFAULT>", + "x-nullable": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "default": false, + "x-example": false + }, + "encrypt": { + "type": "boolean", + "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", + "default": false, + "x-example": false + } + }, + "required": [ + "key", + "required" + ] + } } ] } }, - "\/tablesdb": { - "get": { - "summary": "List databases", - "operationId": "tablesDBList", - "consumes": [], + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/longtext\/{key}": { + "patch": { + "summary": "Update longtext column", + "operationId": "tablesDBUpdateLongtextColumn", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ "tablesDB" ], - "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.", + "description": "Update a longtext column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "Databases List", + "description": "ColumnLongtext", "schema": { - "$ref": "#\/definitions\/databaseList" + "$ref": "#\/definitions\/columnLongtext" } } }, "deprecated": false, "x-appwrite": { - "method": "list", - "group": "tablesdb", - "weight": 338, + "method": "updateLongtextColumn", + "group": "columns", + "weight": 368, "cookies": false, "type": "", - "demo": "tablesdb\/list.md", + "demo": "tablesdb\/update-longtext-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-longtext-column.md", "auth": { "Project": [] } @@ -48355,40 +55437,68 @@ ], "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, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "in": "path" }, { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, "type": "string", - "x-example": "<SEARCH>", - "default": "", - "in": "query" + "x-example": "<TABLE_ID>", + "in": "path" }, { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" + "name": "key", + "description": "Column Key.", + "required": true, + "type": "string", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "required": { + "type": "boolean", + "description": "Is column required?", + "default": null, + "x-example": false + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "default": null, + "x-example": "<DEFAULT>", + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "default": null, + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required", + "default" + ] + } } ] - }, + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/mediumtext": { "post": { - "summary": "Create database", - "operationId": "tablesDBCreate", + "summary": "Create mediumtext column", + "operationId": "tablesDBCreateMediumtextColumn", "consumes": [ "application\/json" ], @@ -48398,34 +55508,37 @@ "tags": [ "tablesDB" ], - "description": "Create a new Database.\n", + "description": "Create a mediumtext column.\n", "responses": { - "201": { - "description": "Database", + "202": { + "description": "ColumnMediumtext", "schema": { - "$ref": "#\/definitions\/database" + "$ref": "#\/definitions\/columnMediumtext" } } }, "deprecated": false, "x-appwrite": { - "method": "create", - "group": "tablesdb", - "weight": 334, + "method": "createMediumtextColumn", + "group": "columns", + "weight": 365, "cookies": false, "type": "", - "demo": "tablesdb\/create.md", + "demo": "tablesdb\/create-mediumtext-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-mediumtext-column.md", "auth": { "Project": [] } @@ -48437,83 +55550,113 @@ } ], "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "type": "string", + "x-example": "<TABLE_ID>", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "databaseId": { + "key": { "type": "string", - "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.", + "description": "Column Key.", "default": null, - "x-example": "<DATABASE_ID>" + "x-example": null }, - "name": { + "required": { + "type": "boolean", + "description": "Is column required?", + "default": null, + "x-example": false + }, + "default": { "type": "string", - "description": "Database name. Max length: 128 chars.", + "description": "Default value for column when not provided. Cannot be set when column is required.", "default": null, - "x-example": "<NAME>" + "x-example": "<DEFAULT>", + "x-nullable": true }, - "enabled": { + "array": { "type": "boolean", - "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.", - "default": true, + "description": "Is column an array?", + "default": false, + "x-example": false + }, + "encrypt": { + "type": "boolean", + "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", + "default": false, "x-example": false } }, "required": [ - "databaseId", - "name" + "key", + "required" ] } } ] } }, - "\/tablesdb\/transactions": { - "get": { - "summary": "List transactions", - "operationId": "tablesDBListTransactions", - "consumes": [], + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/mediumtext\/{key}": { + "patch": { + "summary": "Update mediumtext column", + "operationId": "tablesDBUpdateMediumtextColumn", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ "tablesDB" ], - "description": "List transactions across all databases.", + "description": "Update a mediumtext column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "Transaction List", + "description": "ColumnMediumtext", "schema": { - "$ref": "#\/definitions\/transactionList" + "$ref": "#\/definitions\/columnMediumtext" } } }, "deprecated": false, "x-appwrite": { - "method": "listTransactions", - "group": "transactions", - "weight": 405, + "method": "updateMediumtextColumn", + "group": "columns", + "weight": 366, "cookies": false, "type": "", - "demo": "tablesdb\/list-transactions.md", + "demo": "tablesdb\/update-mediumtext-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "documents.read", - "rows.read" + "tables.write", + "collections.write" ], "platforms": [ "console", - "server", - "client" + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-transactions.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-mediumtext-column.md", "auth": { "Project": [] } @@ -48521,28 +55664,73 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "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).", - "required": false, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "type": "string", + "x-example": "<TABLE_ID>", + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "type": "string", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "required": { + "type": "boolean", + "description": "Is column required?", + "default": null, + "x-example": false + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "default": null, + "x-example": "<DEFAULT>", + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "default": null, + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required", + "default" + ] + } } ] - }, + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/point": { "post": { - "summary": "Create transaction", - "operationId": "tablesDBCreateTransaction", + "summary": "Create point column", + "operationId": "tablesDBCreatePointColumn", "consumes": [ "application\/json" ], @@ -48552,38 +55740,37 @@ "tags": [ "tablesDB" ], - "description": "Create a new transaction.", + "description": "Create a geometric point column.", "responses": { - "201": { - "description": "Transaction", + "202": { + "description": "ColumnPoint", "schema": { - "$ref": "#\/definitions\/transaction" + "$ref": "#\/definitions\/columnPoint" } } }, "deprecated": false, "x-appwrite": { - "method": "createTransaction", - "group": "transactions", - "weight": 401, + "method": "createPointColumn", + "group": "columns", + "weight": 351, "cookies": false, "type": "", - "demo": "tablesdb\/create-transaction.md", + "demo": "tablesdb\/create-point-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "documents.write", - "rows.write" + "tables.write", + "collections.write" ], "platforms": [ "console", - "server", - "client" + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-transaction.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-point-column.md", "auth": { "Project": [] } @@ -48591,73 +55778,105 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "type": "string", + "x-example": "<TABLE_ID>", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "ttl": { - "type": "integer", - "description": "Seconds before the transaction expires.", - "default": 300, - "x-example": 60, - "format": "int32" + "key": { + "type": "string", + "description": "Column Key.", + "default": null, + "x-example": null + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "default": null, + "x-example": false + }, + "default": { + "type": "array", + "description": "Default value for column when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when column is required.", + "default": null, + "x-example": "[1, 2]", + "x-nullable": true } - } + }, + "required": [ + "key", + "required" + ] } } ] } }, - "\/tablesdb\/transactions\/{transactionId}": { - "get": { - "summary": "Get transaction", - "operationId": "tablesDBGetTransaction", - "consumes": [], + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/point\/{key}": { + "patch": { + "summary": "Update point column", + "operationId": "tablesDBUpdatePointColumn", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ "tablesDB" ], - "description": "Get a transaction by its unique ID.", + "description": "Update a point column. Changing the `default` value will not update already existing rows.", "responses": { "200": { - "description": "Transaction", + "description": "ColumnPoint", "schema": { - "$ref": "#\/definitions\/transaction" + "$ref": "#\/definitions\/columnPoint" } } }, "deprecated": false, - "x-appwrite": { - "method": "getTransaction", - "group": "transactions", - "weight": 402, + "x-appwrite": { + "method": "updatePointColumn", + "group": "columns", + "weight": 352, "cookies": false, "type": "", - "demo": "tablesdb\/get-transaction.md", + "demo": "tablesdb\/update-point-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "documents.read", - "rows.read" + "tables.write", + "collections.write" ], "platforms": [ "console", - "server", - "client" + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-transaction.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-point-column.md", "auth": { "Project": [] } @@ -48665,24 +55884,72 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "transactionId", - "description": "Transaction ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<TRANSACTION_ID>", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "type": "string", + "x-example": "<TABLE_ID>", "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "type": "string", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "required": { + "type": "boolean", + "description": "Is column required?", + "default": null, + "x-example": false + }, + "default": { + "type": "array", + "description": "Default value for column when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when column is required.", + "default": null, + "x-example": "[1, 2]", + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "default": null, + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required" + ] + } } ] - }, - "patch": { - "summary": "Update transaction", - "operationId": "tablesDBUpdateTransaction", + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/polygon": { + "post": { + "summary": "Create polygon column", + "operationId": "tablesDBCreatePolygonColumn", "consumes": [ "application\/json" ], @@ -48692,38 +55959,37 @@ "tags": [ "tablesDB" ], - "description": "Update a transaction, to either commit or roll back its operations.", + "description": "Create a geometric polygon column.", "responses": { - "200": { - "description": "Transaction", + "202": { + "description": "ColumnPolygon", "schema": { - "$ref": "#\/definitions\/transaction" + "$ref": "#\/definitions\/columnPolygon" } } }, "deprecated": false, "x-appwrite": { - "method": "updateTransaction", - "group": "transactions", - "weight": 403, + "method": "createPolygonColumn", + "group": "columns", + "weight": 353, "cookies": false, "type": "", - "demo": "tablesdb\/update-transaction.md", + "demo": "tablesdb\/create-polygon-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "documents.write", - "rows.write" + "tables.write", + "collections.write" ], "platforms": [ "console", - "server", - "client" + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-transaction.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-polygon-column.md", "auth": { "Project": [] } @@ -48731,17 +55997,24 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "transactionId", - "description": "Transaction ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<TRANSACTION_ID>", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "type": "string", + "x-example": "<TABLE_ID>", "in": "path" }, { @@ -48750,62 +56023,79 @@ "schema": { "type": "object", "properties": { - "commit": { - "type": "boolean", - "description": "Commit transaction?", - "default": false, - "x-example": false + "key": { + "type": "string", + "description": "Column Key.", + "default": null, + "x-example": null }, - "rollback": { + "required": { "type": "boolean", - "description": "Rollback transaction?", - "default": false, + "description": "Is column required?", + "default": null, "x-example": false + }, + "default": { + "type": "array", + "description": "Default value for column 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 column is required.", + "default": null, + "x-example": "[[[1, 2], [3, 4], [5, 6], [1, 2]]]", + "x-nullable": true } - } + }, + "required": [ + "key", + "required" + ] } } ] - }, - "delete": { - "summary": "Delete transaction", - "operationId": "tablesDBDeleteTransaction", + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/polygon\/{key}": { + "patch": { + "summary": "Update polygon column", + "operationId": "tablesDBUpdatePolygonColumn", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ "tablesDB" ], - "description": "Delete a transaction by its unique ID.", + "description": "Update a polygon column. Changing the `default` value will not update already existing rows.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "ColumnPolygon", + "schema": { + "$ref": "#\/definitions\/columnPolygon" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteTransaction", - "group": "transactions", - "weight": 404, + "method": "updatePolygonColumn", + "group": "columns", + "weight": 354, "cookies": false, "type": "", - "demo": "tablesdb\/delete-transaction.md", + "demo": "tablesdb\/update-polygon-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "documents.write", - "rows.write" + "tables.write", + "collections.write" ], "platforms": [ "console", - "server", - "client" + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-transaction.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-polygon-column.md", "auth": { "Project": [] } @@ -48813,26 +56103,72 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "transactionId", - "description": "Transaction ID.", + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "type": "string", + "x-example": "<TABLE_ID>", + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", "required": true, "type": "string", - "x-example": "<TRANSACTION_ID>", "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "required": { + "type": "boolean", + "description": "Is column required?", + "default": null, + "x-example": false + }, + "default": { + "type": "array", + "description": "Default value for column 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 column is required.", + "default": null, + "x-example": "[[[1, 2], [3, 4], [5, 6], [1, 2]]]", + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "default": null, + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required" + ] + } } ] } }, - "\/tablesdb\/transactions\/{transactionId}\/operations": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/relationship": { "post": { - "summary": "Create operations", - "operationId": "tablesDBCreateOperations", + "summary": "Create relationship column", + "operationId": "tablesDBCreateRelationshipColumn", "consumes": [ "application\/json" ], @@ -48842,38 +56178,37 @@ "tags": [ "tablesDB" ], - "description": "Create multiple operations in a single transaction.", + "description": "Create relationship column. [Learn more about relationship columns](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-columns).\n", "responses": { - "201": { - "description": "Transaction", + "202": { + "description": "ColumnRelationship", "schema": { - "$ref": "#\/definitions\/transaction" + "$ref": "#\/definitions\/columnRelationship" } } }, "deprecated": false, "x-appwrite": { - "method": "createOperations", - "group": "transactions", - "weight": 406, + "method": "createRelationshipColumn", + "group": "columns", + "weight": 355, "cookies": false, "type": "", - "demo": "tablesdb\/create-operations.md", + "demo": "tablesdb\/create-relationship-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "documents.write", - "rows.write" + "tables.write", + "collections.write" ], "platforms": [ "console", - "server", - "client" + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-operations.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-relationship-column.md", "auth": { "Project": [] } @@ -48881,17 +56216,24 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "transactionId", - "description": "Transaction ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<TRANSACTION_ID>", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "type": "string", + "x-example": "<TABLE_ID>", "in": "path" }, { @@ -48900,157 +56242,247 @@ "schema": { "type": "object", "properties": { - "operations": { - "type": "array", - "description": "Array of staged operations.", - "default": [], - "x-example": "[\n\t {\n\t \"action\": \"create\",\n\t \"databaseId\": \"<DATABASE_ID>\",\n\t \"tableId\": \"<TABLE_ID>\",\n\t \"rowId\": \"<ROW_ID>\",\n\t \"data\": {\n\t \"name\": \"Walter O'Brien\"\n\t }\n\t }\n\t]", - "items": { - "type": "object" - } + "relatedTableId": { + "type": "string", + "description": "Related Table ID.", + "default": null, + "x-example": "<RELATED_TABLE_ID>" + }, + "type": { + "type": "string", + "description": "Relation type", + "default": null, + "x-example": "oneToOne", + "enum": [ + "oneToOne", + "manyToOne", + "manyToMany", + "oneToMany" + ], + "x-enum-name": "RelationshipType", + "x-enum-keys": [] + }, + "twoWay": { + "type": "boolean", + "description": "Is Two Way?", + "default": false, + "x-example": false + }, + "key": { + "type": "string", + "description": "Column Key.", + "default": null, + "x-example": null, + "x-nullable": true + }, + "twoWayKey": { + "type": "string", + "description": "Two Way Column Key.", + "default": null, + "x-example": null, + "x-nullable": true + }, + "onDelete": { + "type": "string", + "description": "Constraints option", + "default": "restrict", + "x-example": "cascade", + "enum": [ + "cascade", + "restrict", + "setNull" + ], + "x-enum-name": "RelationMutate", + "x-enum-keys": [] } - } + }, + "required": [ + "relatedTableId", + "type" + ] } } ] } }, - "\/tablesdb\/usage": { - "get": { - "summary": "Get TablesDB usage stats", - "operationId": "tablesDBListUsage", - "consumes": [], + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/string": { + "post": { + "summary": "Create string column", + "operationId": "tablesDBCreateStringColumn", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ "tablesDB" ], - "description": "List usage metrics and statistics for all databases in the project. You can view the total number of databases, tables, rows, and storage usage. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.", + "description": "Create a string column.\n", "responses": { - "200": { - "description": "UsageDatabases", + "202": { + "description": "ColumnString", "schema": { - "$ref": "#\/definitions\/usageDatabases" + "$ref": "#\/definitions\/columnString" } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "listUsage", - "group": null, - "weight": 340, + "method": "createStringColumn", + "group": "columns", + "weight": 357, "cookies": false, "type": "", - "demo": "tablesdb\/list-usage.md", + "demo": "tablesdb\/create-string-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.read", - "collections.read" + "tables.write", + "collections.write" ], "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-usage.md", - "methods": [ - { - "name": "listUsage", - "namespace": "tablesDB", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "range" - ], - "required": [], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/usageDatabases" - } - ], - "description": "List usage metrics and statistics for all databases in the project. You can view the total number of databases, tables, rows, and storage usage. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.", - "demo": "tablesdb\/list-usage.md", - "public": true - } - ], + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-string-column.md", + "deprecated": { + "since": "1.9.0", + "replaceWith": "tablesDB.createTextColumn" + }, "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "range", - "description": "Date range.", - "required": false, + "name": "databaseId", + "description": "Database ID.", + "required": true, "type": "string", - "x-example": "24h", - "enum": [ - "24h", - "30d", - "90d" - ], - "x-enum-name": "UsageRange", - "x-enum-keys": [ - "Twenty Four Hours", - "Thirty Days", - "Ninety Days" - ], - "default": "30d", - "in": "query" + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "type": "string", + "x-example": "<TABLE_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "default": null, + "x-example": null + }, + "size": { + "type": "integer", + "description": "Column size for text columns, in number of characters.", + "default": null, + "x-example": 1, + "format": "int32" + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "default": null, + "x-example": false + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "default": null, + "x-example": "<DEFAULT>", + "x-nullable": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "default": false, + "x-example": false + }, + "encrypt": { + "type": "boolean", + "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", + "default": false, + "x-example": false + } + }, + "required": [ + "key", + "size", + "required" + ] + } } ] } }, - "\/tablesdb\/{databaseId}": { - "get": { - "summary": "Get database", - "operationId": "tablesDBGet", - "consumes": [], + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/string\/{key}": { + "patch": { + "summary": "Update string column", + "operationId": "tablesDBUpdateStringColumn", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ "tablesDB" ], - "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", + "description": "Update a string column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "Database", + "description": "ColumnString", "schema": { - "$ref": "#\/definitions\/database" + "$ref": "#\/definitions\/columnString" } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "get", - "group": "tablesdb", - "weight": 335, + "method": "updateStringColumn", + "group": "columns", + "weight": 358, "cookies": false, "type": "", - "demo": "tablesdb\/get.md", + "demo": "tablesdb\/update-string-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-string-column.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateTextColumn" + }, "auth": { "Project": [] } @@ -49069,12 +56501,70 @@ "type": "string", "x-example": "<DATABASE_ID>", "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "type": "string", + "x-example": "<TABLE_ID>", + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "type": "string", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "required": { + "type": "boolean", + "description": "Is column required?", + "default": null, + "x-example": false + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "default": null, + "x-example": "<DEFAULT>", + "x-nullable": true + }, + "size": { + "type": "integer", + "description": "Maximum size of the string column.", + "default": null, + "x-example": 1, + "format": "int32", + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "default": null, + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required", + "default" + ] + } } ] - }, - "put": { - "summary": "Update database", - "operationId": "tablesDBUpdate", + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/text": { + "post": { + "summary": "Create text column", + "operationId": "tablesDBCreateTextColumn", "consumes": [ "application\/json" ], @@ -49084,34 +56574,37 @@ "tags": [ "tablesDB" ], - "description": "Update a database by its unique ID.", + "description": "Create a text column.\n", "responses": { - "200": { - "description": "Database", + "202": { + "description": "ColumnText", "schema": { - "$ref": "#\/definitions\/database" + "$ref": "#\/definitions\/columnText" } } }, "deprecated": false, "x-appwrite": { - "method": "update", - "group": "tablesdb", - "weight": 336, + "method": "createTextColumn", + "group": "columns", + "weight": 363, "cookies": false, "type": "", - "demo": "tablesdb\/update.md", + "demo": "tablesdb\/create-text-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-text-column.md", "auth": { "Project": [] } @@ -49131,120 +56624,97 @@ "x-example": "<DATABASE_ID>", "in": "path" }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "type": "string", + "x-example": "<TABLE_ID>", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "name": { + "key": { "type": "string", - "description": "Database name. Max length: 128 chars.", + "description": "Column Key.", "default": null, - "x-example": "<NAME>" + "x-example": null }, - "enabled": { + "required": { "type": "boolean", - "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.", - "default": true, + "description": "Is column required?", + "default": null, + "x-example": false + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "default": null, + "x-example": "<DEFAULT>", + "x-nullable": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "default": false, + "x-example": false + }, + "encrypt": { + "type": "boolean", + "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", + "default": false, "x-example": false } - } + }, + "required": [ + "key", + "required" + ] } } ] - }, - "delete": { - "summary": "Delete database", - "operationId": "tablesDBDelete", + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/text\/{key}": { + "patch": { + "summary": "Update text column", + "operationId": "tablesDBUpdateTextColumn", "consumes": [ "application\/json" ], - "produces": [], - "tags": [ - "tablesDB" - ], - "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": { - "method": "delete", - "group": "tablesdb", - "weight": 337, - "cookies": false, - "type": "", - "demo": "tablesdb\/delete.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - } - ] - } - }, - "\/tablesdb\/{databaseId}\/tables": { - "get": { - "summary": "List tables", - "operationId": "tablesDBListTables", - "consumes": [], "produces": [ "application\/json" ], "tags": [ "tablesDB" ], - "description": "Get a list of all tables that belong to the provided databaseId. You can use the search parameter to filter your results.", + "description": "Update a text column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "Tables List", + "description": "ColumnText", "schema": { - "$ref": "#\/definitions\/tableList" + "$ref": "#\/definitions\/columnText" } } }, "deprecated": false, "x-appwrite": { - "method": "listTables", - "group": "tables", - "weight": 345, + "method": "updateTextColumn", + "group": "columns", + "weight": 364, "cookies": false, "type": "", - "demo": "tablesdb\/list-tables.md", + "demo": "tablesdb\/update-text-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.read", - "collections.read" + "tables.write", + "collections.write" ], "platforms": [ "console", @@ -49252,7 +56722,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-tables.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-text-column.md", "auth": { "Project": [] } @@ -49273,40 +56743,60 @@ "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 columns: name, enabled, rowSecurity", - "required": false, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "type": "string", + "x-example": "<TABLE_ID>", + "in": "path" }, { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, + "name": "key", + "description": "Column Key.", + "required": true, "type": "string", - "x-example": "<SEARCH>", - "default": "", - "in": "query" + "in": "path" }, { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "required": { + "type": "boolean", + "description": "Is column required?", + "default": null, + "x-example": false + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "default": null, + "x-example": "<DEFAULT>", + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "default": null, + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required", + "default" + ] + } } ] - }, + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/url": { "post": { - "summary": "Create table", - "operationId": "tablesDBCreateTable", + "summary": "Create URL column", + "operationId": "tablesDBCreateUrlColumn", "consumes": [ "application\/json" ], @@ -49316,23 +56806,23 @@ "tags": [ "tablesDB" ], - "description": "Create a new Table. Before using this route, you should create a new database resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "description": "Create a URL column.\n", "responses": { - "201": { - "description": "Table", + "202": { + "description": "ColumnURL", "schema": { - "$ref": "#\/definitions\/table" + "$ref": "#\/definitions\/columnUrl" } } }, "deprecated": false, "x-appwrite": { - "method": "createTable", - "group": "tables", - "weight": 341, + "method": "createUrlColumn", + "group": "columns", + "weight": 359, "cookies": false, "type": "", - "demo": "tablesdb\/create-table.md", + "demo": "tablesdb\/create-url-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -49346,7 +56836,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-table.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-url-column.md", "auth": { "Project": [] } @@ -49366,108 +56856,92 @@ "x-example": "<DATABASE_ID>", "in": "path" }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "type": "string", + "x-example": "<TABLE_ID>", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "tableId": { + "key": { "type": "string", - "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.", + "description": "Column Key.", "default": null, - "x-example": "<TABLE_ID>" + "x-example": null }, - "name": { - "type": "string", - "description": "Table name. Max length: 128 chars.", + "required": { + "type": "boolean", + "description": "Is column required?", "default": null, - "x-example": "<NAME>" + "x-example": false }, - "permissions": { - "type": "array", - "description": "An array of permissions strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", "default": null, - "x-example": "[\"read(\"any\")\"]", - "x-nullable": true, - "items": { - "type": "string" - } + "x-example": "https:\/\/example.com", + "format": "url", + "x-nullable": true }, - "rowSecurity": { + "array": { "type": "boolean", - "description": "Enables configuring permissions for individual rows. A user needs one of row or table level permissions to access a row. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "description": "Is column an array?", "default": false, "x-example": false - }, - "enabled": { - "type": "boolean", - "description": "Is table enabled? When set to 'disabled', users cannot access the table but Server SDKs with and API key can still read and write to the table. No data is lost when this is toggled.", - "default": true, - "x-example": false - }, - "columns": { - "type": "array", - "description": "Array of column definitions to create. Each column should contain: key (string), type (string: string, integer, float, boolean, datetime, relationship), size (integer, required for string type), required (boolean, optional), default (mixed, optional), array (boolean, optional), and type-specific options.", - "default": [], - "x-example": null, - "items": { - "type": "object" - } - }, - "indexes": { - "type": "array", - "description": "Array of index definitions to create. Each index should contain: key (string), type (string: key, fulltext, unique, spatial), attributes (array of column keys), orders (array of ASC\/DESC, optional), and lengths (array of integers, optional).", - "default": [], - "x-example": null, - "items": { - "type": "object" - } } }, "required": [ - "tableId", - "name" + "key", + "required" ] } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}": { - "get": { - "summary": "Get table", - "operationId": "tablesDBGetTable", - "consumes": [], + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/url\/{key}": { + "patch": { + "summary": "Update URL column", + "operationId": "tablesDBUpdateUrlColumn", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ "tablesDB" ], - "description": "Get a table by its unique ID. This endpoint response returns a JSON object with the table metadata.", + "description": "Update an url column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "Table", + "description": "ColumnURL", "schema": { - "$ref": "#\/definitions\/table" + "$ref": "#\/definitions\/columnUrl" } } }, "deprecated": false, "x-appwrite": { - "method": "getTable", - "group": "tables", - "weight": 342, + "method": "updateUrlColumn", + "group": "columns", + "weight": 360, "cookies": false, "type": "", - "demo": "tablesdb\/get-table.md", + "demo": "tablesdb\/update-url-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.read", - "collections.read" + "tables.write", + "collections.write" ], "platforms": [ "console", @@ -49475,7 +56949,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-table.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-url-column.md", "auth": { "Project": [] } @@ -49502,12 +56976,55 @@ "type": "string", "x-example": "<TABLE_ID>", "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "type": "string", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "required": { + "type": "boolean", + "description": "Is column required?", + "default": null, + "x-example": false + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "default": null, + "x-example": "https:\/\/example.com", + "format": "url", + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "default": null, + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required", + "default" + ] + } } ] - }, - "put": { - "summary": "Update table", - "operationId": "tablesDBUpdateTable", + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/varchar": { + "post": { + "summary": "Create varchar column", + "operationId": "tablesDBCreateVarcharColumn", "consumes": [ "application\/json" ], @@ -49517,23 +57034,23 @@ "tags": [ "tablesDB" ], - "description": "Update a table by its unique ID.", + "description": "Create a varchar column.\n", "responses": { - "200": { - "description": "Table", + "202": { + "description": "ColumnVarchar", "schema": { - "$ref": "#\/definitions\/table" + "$ref": "#\/definitions\/columnVarchar" } } }, "deprecated": false, "x-appwrite": { - "method": "updateTable", - "group": "tables", - "weight": 343, + "method": "createVarcharColumn", + "group": "columns", + "weight": 361, "cookies": false, "type": "", - "demo": "tablesdb\/update-table.md", + "demo": "tablesdb\/create-varchar-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -49547,7 +57064,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-table.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-varchar-column.md", "auth": { "Project": [] } @@ -49569,7 +57086,7 @@ }, { "name": "tableId", - "description": "Table ID.", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "type": "string", "x-example": "<TABLE_ID>", @@ -49581,63 +57098,85 @@ "schema": { "type": "object", "properties": { - "name": { + "key": { "type": "string", - "description": "Table name. Max length: 128 chars.", + "description": "Column Key.", "default": null, - "x-example": "<NAME>" + "x-example": null }, - "permissions": { - "type": "array", - "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "size": { + "type": "integer", + "description": "Column size for varchar columns, in number of characters. Maximum size is 16381.", "default": null, - "x-example": "[\"read(\"any\")\"]", - "x-nullable": true, - "items": { - "type": "string" - } + "x-example": 1, + "format": "int32" }, - "rowSecurity": { + "required": { "type": "boolean", - "description": "Enables configuring permissions for individual rows. A user needs one of row or table-level permissions to access a row. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "description": "Is column required?", + "default": null, + "x-example": false + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "default": null, + "x-example": "<DEFAULT>", + "x-nullable": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", "default": false, "x-example": false }, - "enabled": { + "encrypt": { "type": "boolean", - "description": "Is table enabled? When set to 'disabled', users cannot access the table but Server SDKs with and API key can still read and write to the table. No data is lost when this is toggled.", - "default": true, + "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", + "default": false, "x-example": false } - } + }, + "required": [ + "key", + "size", + "required" + ] } } ] - }, - "delete": { - "summary": "Delete table", - "operationId": "tablesDBDeleteTable", + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/varchar\/{key}": { + "patch": { + "summary": "Update varchar column", + "operationId": "tablesDBUpdateVarcharColumn", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ "tablesDB" ], - "description": "Delete a table by its unique ID. Only users with write permissions have access to delete this resource.", + "description": "Update a varchar column. Changing the `default` value will not update already existing rows.\n", "responses": { - "204": { - "description": "No content" + "200": { + "description": "ColumnVarchar", + "schema": { + "$ref": "#\/definitions\/columnVarchar" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteTable", - "group": "tables", - "weight": 344, + "method": "updateVarcharColumn", + "group": "columns", + "weight": 362, "cookies": false, "type": "", - "demo": "tablesdb\/delete-table.md", + "demo": "tablesdb\/update-varchar-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -49651,7 +57190,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-table.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-varchar-column.md", "auth": { "Project": [] } @@ -49673,19 +57212,67 @@ }, { "name": "tableId", - "description": "Table ID.", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "type": "string", "x-example": "<TABLE_ID>", "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "type": "string", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "required": { + "type": "boolean", + "description": "Is column required?", + "default": null, + "x-example": false + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "default": null, + "x-example": "<DEFAULT>", + "x-nullable": true + }, + "size": { + "type": "integer", + "description": "Maximum size of the varchar column.", + "default": null, + "x-example": 1, + "format": "int32", + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "default": null, + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required", + "default" + ] + } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/{key}": { "get": { - "summary": "List columns", - "operationId": "tablesDBListColumns", + "summary": "Get column", + "operationId": "tablesDBGetColumn", "consumes": [], "produces": [ "application\/json" @@ -49693,23 +57280,54 @@ "tags": [ "tablesDB" ], - "description": "List columns in the table.", + "description": "Get column by ID.", "responses": { "200": { - "description": "Columns List", + "description": "ColumnBoolean, or ColumnInteger, or ColumnFloat, or ColumnEmail, or ColumnEnum, or ColumnURL, or ColumnIP, or ColumnDatetime, or ColumnRelationship, or ColumnString", "schema": { - "$ref": "#\/definitions\/columnList" + "x-oneOf": [ + { + "$ref": "#\/definitions\/columnBoolean" + }, + { + "$ref": "#\/definitions\/columnInteger" + }, + { + "$ref": "#\/definitions\/columnFloat" + }, + { + "$ref": "#\/definitions\/columnEmail" + }, + { + "$ref": "#\/definitions\/columnEnum" + }, + { + "$ref": "#\/definitions\/columnUrl" + }, + { + "$ref": "#\/definitions\/columnIp" + }, + { + "$ref": "#\/definitions\/columnDatetime" + }, + { + "$ref": "#\/definitions\/columnRelationship" + }, + { + "$ref": "#\/definitions\/columnString" + } + ] } } }, "deprecated": false, "x-appwrite": { - "method": "listColumns", + "method": "getColumn", "group": "columns", - "weight": 350, + "weight": 332, "cookies": false, "type": "", - "demo": "tablesdb\/list-columns.md", + "demo": "tablesdb\/get-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -49723,7 +57341,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-columns.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-column.md", "auth": { "Project": [] } @@ -49752,59 +57370,38 @@ "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 columns: key, type, size, required, array, status, error", - "required": false, - "type": "array", - "collectionFormat": "multi", - "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, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" + "name": "key", + "description": "Column Key.", + "required": true, + "type": "string", + "in": "path" } ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/boolean": { - "post": { - "summary": "Create boolean column", - "operationId": "tablesDBCreateBooleanColumn", + }, + "delete": { + "summary": "Delete column", + "operationId": "tablesDBDeleteColumn", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ "tablesDB" ], - "description": "Create a boolean column.\n", + "description": "Deletes a column.", "responses": { - "202": { - "description": "ColumnBoolean", - "schema": { - "$ref": "#\/definitions\/columnBoolean" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "createBooleanColumn", + "method": "deleteColumn", "group": "columns", - "weight": 351, + "weight": 333, "cookies": false, "type": "", - "demo": "tablesdb\/create-boolean-column.md", + "demo": "tablesdb\/delete-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -49818,7 +57415,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-boolean-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-column.md", "auth": { "Project": [] } @@ -49840,57 +57437,26 @@ }, { "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "description": "Table ID.", "required": true, "type": "string", "x-example": "<TABLE_ID>", "in": "path" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "default": null, - "x-example": null - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "default": null, - "x-example": false - }, - "default": { - "type": "boolean", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "default": null, - "x-example": false, - "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "default": false, - "x-example": false - } - }, - "required": [ - "key", - "required" - ] - } + "name": "key", + "description": "Column Key.", + "required": true, + "type": "string", + "in": "path" } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/boolean\/{key}": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/{key}\/relationship": { "patch": { - "summary": "Update boolean column", - "operationId": "tablesDBUpdateBooleanColumn", + "summary": "Update relationship column", + "operationId": "tablesDBUpdateRelationshipColumn", "consumes": [ "application\/json" ], @@ -49900,23 +57466,23 @@ "tags": [ "tablesDB" ], - "description": "Update a boolean column. Changing the `default` value will not update already existing rows.", + "description": "Update relationship column. [Learn more about relationship columns](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-columns).\n", "responses": { "200": { - "description": "ColumnBoolean", + "description": "ColumnRelationship", "schema": { - "$ref": "#\/definitions\/columnBoolean" + "$ref": "#\/definitions\/columnRelationship" } } }, "deprecated": false, "x-appwrite": { - "method": "updateBooleanColumn", + "method": "updateRelationshipColumn", "group": "columns", - "weight": 352, + "weight": 356, "cookies": false, "type": "", - "demo": "tablesdb\/update-boolean-column.md", + "demo": "tablesdb\/update-relationship-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -49930,7 +57496,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-boolean-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-relationship-column.md", "auth": { "Project": [] } @@ -49952,7 +57518,7 @@ }, { "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "description": "Table ID.", "required": true, "type": "string", "x-example": "<TABLE_ID>", @@ -49971,17 +57537,18 @@ "schema": { "type": "object", "properties": { - "required": { - "type": "boolean", - "description": "Is column required?", - "default": null, - "x-example": false - }, - "default": { - "type": "boolean", - "description": "Default value for column when not provided. Cannot be set when column is required.", + "onDelete": { + "type": "string", + "description": "Constraints option", "default": null, - "x-example": false, + "x-example": "cascade", + "enum": [ + "cascade", + "restrict", + "setNull" + ], + "x-enum-name": "RelationMutate", + "x-enum-keys": [], "x-nullable": true }, "newKey": { @@ -49991,52 +57558,46 @@ "x-example": null, "x-nullable": true } - }, - "required": [ - "required", - "default" - ] + } } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/datetime": { - "post": { - "summary": "Create datetime column", - "operationId": "tablesDBCreateDatetimeColumn", - "consumes": [ - "application\/json" - ], + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/indexes": { + "get": { + "summary": "List indexes", + "operationId": "tablesDBListIndexes", + "consumes": [], "produces": [ "application\/json" ], "tags": [ "tablesDB" ], - "description": "Create a date time column according to the ISO 8601 standard.", + "description": "List indexes on the table.", "responses": { - "202": { - "description": "ColumnDatetime", + "200": { + "description": "Column Indexes List", "schema": { - "$ref": "#\/definitions\/columnDatetime" + "$ref": "#\/definitions\/columnIndexList" } } }, "deprecated": false, "x-appwrite": { - "method": "createDatetimeColumn", - "group": "columns", - "weight": 353, + "method": "listIndexes", + "group": "indexes", + "weight": 372, "cookies": false, "type": "", - "demo": "tablesdb\/create-datetime-column.md", + "demo": "tablesdb\/list-indexes.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.write", - "collections.write" + "tables.read", + "collections.read" ], "platforms": [ "console", @@ -50044,7 +57605,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-datetime-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-indexes.md", "auth": { "Project": [] } @@ -50066,57 +57627,38 @@ }, { "name": "tableId", - "description": "Table ID.", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "type": "string", "x-example": "<TABLE_ID>", "in": "path" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "default": null, - "x-example": null - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "default": null, - "x-example": false - }, - "default": { - "type": "string", - "description": "Default value for the column in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Cannot be set when column is required.", - "default": null, - "x-example": null, - "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "default": false, - "x-example": false - } - }, - "required": [ - "key", - "required" - ] - } + "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: key, type, status, attributes, error", + "required": false, + "type": "array", + "collectionFormat": "multi", + "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, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" } ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/datetime\/{key}": { - "patch": { - "summary": "Update dateTime column", - "operationId": "tablesDBUpdateDatetimeColumn", + }, + "post": { + "summary": "Create index", + "operationId": "tablesDBCreateIndex", "consumes": [ "application\/json" ], @@ -50126,23 +57668,23 @@ "tags": [ "tablesDB" ], - "description": "Update a date time column. Changing the `default` value will not update already existing rows.", + "description": "Creates an index on the columns listed. Your index should include all the columns you will query in a single request.\nType can be `key`, `fulltext`, or `unique`.", "responses": { - "200": { - "description": "ColumnDatetime", + "202": { + "description": "Index", "schema": { - "$ref": "#\/definitions\/columnDatetime" + "$ref": "#\/definitions\/columnIndex" } } }, "deprecated": false, "x-appwrite": { - "method": "updateDatetimeColumn", - "group": "columns", - "weight": 354, + "method": "createIndex", + "group": "indexes", + "weight": 369, "cookies": false, "type": "", - "demo": "tablesdb\/update-datetime-column.md", + "demo": "tablesdb\/create-index.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -50156,7 +57698,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-datetime-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-index.md", "auth": { "Project": [] } @@ -50178,91 +57720,116 @@ }, { "name": "tableId", - "description": "Table ID.", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "type": "string", "x-example": "<TABLE_ID>", "in": "path" }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "type": "string", - "in": "path" - }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "required": { - "type": "boolean", - "description": "Is column required?", + "key": { + "type": "string", + "description": "Index Key.", "default": null, - "x-example": false + "x-example": null }, - "default": { + "type": { "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", + "description": "Index type.", + "default": null, + "x-example": "key", + "enum": [ + "key", + "fulltext", + "unique", + "spatial" + ], + "x-enum-name": "IndexType", + "x-enum-keys": [] + }, + "columns": { + "type": "array", + "description": "Array of columns to index. Maximum of 100 columns are allowed, each 32 characters long.", "default": null, "x-example": null, - "x-nullable": true + "items": { + "type": "string" + } + }, + "orders": { + "type": "array", + "description": "Array of index orders. Maximum of 100 orders are allowed.", + "default": [], + "x-example": null, + "items": { + "type": "string", + "enum": [ + "asc", + "desc" + ], + "x-enum-name": "OrderBy", + "x-enum-keys": [] + } }, - "newKey": { - "type": "string", - "description": "New Column Key.", - "default": null, + "lengths": { + "type": "array", + "description": "Length of index. Maximum of 100", + "default": [], "x-example": null, - "x-nullable": true + "items": { + "type": "integer" + } } }, "required": [ - "required", - "default" + "key", + "type", + "columns" ] } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/email": { - "post": { - "summary": "Create email column", - "operationId": "tablesDBCreateEmailColumn", - "consumes": [ - "application\/json" - ], + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/indexes\/{key}": { + "get": { + "summary": "Get index", + "operationId": "tablesDBGetIndex", + "consumes": [], "produces": [ "application\/json" ], "tags": [ "tablesDB" ], - "description": "Create an email column.\n", + "description": "Get index by ID.", "responses": { - "202": { - "description": "ColumnEmail", + "200": { + "description": "Index", "schema": { - "$ref": "#\/definitions\/columnEmail" + "$ref": "#\/definitions\/columnIndex" } } }, "deprecated": false, "x-appwrite": { - "method": "createEmailColumn", - "group": "columns", - "weight": 355, + "method": "getIndex", + "group": "indexes", + "weight": 370, "cookies": false, "type": "", - "demo": "tablesdb\/create-email-column.md", + "demo": "tablesdb\/get-index.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.write", - "collections.write" + "tables.read", + "collections.read" ], "platforms": [ "console", @@ -50270,7 +57837,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-email-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-index.md", "auth": { "Project": [] } @@ -50292,84 +57859,45 @@ }, { "name": "tableId", - "description": "Table ID.", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "type": "string", "x-example": "<TABLE_ID>", "in": "path" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "default": null, - "x-example": null - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "default": null, - "x-example": false - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "default": null, - "x-example": "email@example.com", - "format": "email", - "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "default": false, - "x-example": false - } - }, - "required": [ - "key", - "required" - ] - } + "name": "key", + "description": "Index Key.", + "required": true, + "type": "string", + "in": "path" } ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/email\/{key}": { - "patch": { - "summary": "Update email column", - "operationId": "tablesDBUpdateEmailColumn", + }, + "delete": { + "summary": "Delete index", + "operationId": "tablesDBDeleteIndex", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ "tablesDB" ], - "description": "Update an email column. Changing the `default` value will not update already existing rows.\n", + "description": "Delete an index.", "responses": { - "200": { - "description": "ColumnEmail", - "schema": { - "$ref": "#\/definitions\/columnEmail" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateEmailColumn", - "group": "columns", - "weight": 356, + "method": "deleteIndex", + "group": "indexes", + "weight": 371, "cookies": false, "type": "", - "demo": "tablesdb\/update-email-column.md", + "demo": "tablesdb\/delete-index.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -50383,7 +57911,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-email-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-index.md", "auth": { "Project": [] } @@ -50405,7 +57933,7 @@ }, { "name": "tableId", - "description": "Table ID.", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "type": "string", "x-example": "<TABLE_ID>", @@ -50413,100 +57941,62 @@ }, { "name": "key", - "description": "Column Key.", + "description": "Index Key.", "required": true, "type": "string", "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "required": { - "type": "boolean", - "description": "Is column required?", - "default": null, - "x-example": false - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "default": null, - "x-example": "email@example.com", - "format": "email", - "x-nullable": true - }, - "newKey": { - "type": "string", - "description": "New Column Key.", - "default": null, - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "required", - "default" - ] - } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/enum": { - "post": { - "summary": "Create enum column", - "operationId": "tablesDBCreateEnumColumn", - "consumes": [ - "application\/json" - ], + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/logs": { + "get": { + "summary": "List table logs", + "operationId": "tablesDBListTableLogs", + "consumes": [], "produces": [ "application\/json" ], "tags": [ "tablesDB" ], - "description": "Create an enumeration column. The `elements` param acts as a white-list of accepted values for this column.", + "description": "Get the table activity logs list by its unique ID.", "responses": { - "202": { - "description": "ColumnEnum", + "200": { + "description": "Logs List", "schema": { - "$ref": "#\/definitions\/columnEnum" + "$ref": "#\/definitions\/logList" } } }, "deprecated": false, "x-appwrite": { - "method": "createEnumColumn", - "group": "columns", - "weight": 357, + "method": "listTableLogs", + "group": "tables", + "weight": 330, "cookies": false, "type": "", - "demo": "tablesdb\/create-enum-column.md", + "demo": "tablesdb\/list-table-logs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.write", - "collections.write" + "tables.read", + "collections.read" ], "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-enum-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-table-logs.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ @@ -50527,100 +58017,63 @@ "in": "path" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "default": null, - "x-example": null - }, - "elements": { - "type": "array", - "description": "Array of enum values.", - "default": null, - "x-example": null, - "items": { - "type": "string" - } - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "default": null, - "x-example": false - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "default": null, - "x-example": "<DEFAULT>", - "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "default": false, - "x-example": false - } - }, - "required": [ - "key", - "elements", - "required" - ] - } + "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, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/enum\/{key}": { - "patch": { - "summary": "Update enum column", - "operationId": "tablesDBUpdateEnumColumn", - "consumes": [ - "application\/json" - ], + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows": { + "get": { + "summary": "List rows", + "operationId": "tablesDBListRows", + "consumes": [], "produces": [ "application\/json" ], "tags": [ "tablesDB" ], - "description": "Update an enum column. Changing the `default` value will not update already existing rows.\n", + "description": "Get a list of all the user's rows in a given table. You can use the query params to filter your results.", "responses": { "200": { - "description": "ColumnEnum", + "description": "Rows List", "schema": { - "$ref": "#\/definitions\/columnEnum" + "$ref": "#\/definitions\/rowList" } } }, "deprecated": false, "x-appwrite": { - "method": "updateEnumColumn", - "group": "columns", - "weight": 358, + "method": "listRows", + "group": "rows", + "weight": 381, "cookies": false, "type": "", - "demo": "tablesdb\/update-enum-column.md", + "demo": "tablesdb\/list-rows.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.write", - "collections.write" + "rows.read", + "documents.read" ], "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-enum-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-rows.md", "auth": { "Project": [] } @@ -50628,7 +58081,8 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ @@ -50642,69 +58096,56 @@ }, { "name": "tableId", - "description": "Table ID.", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/products\/databases\/tables#create-table).", "required": true, "type": "string", "x-example": "<TABLE_ID>", "in": "path" }, { - "name": "key", - "description": "Column Key.", - "required": true, + "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, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", + "required": false, "type": "string", - "in": "path" + "x-example": "<TRANSACTION_ID>", + "in": "query" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "elements": { - "type": "array", - "description": "Updated list of enum values.", - "default": null, - "x-example": null, - "items": { - "type": "string" - } - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "default": null, - "x-example": false - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "default": null, - "x-example": "<DEFAULT>", - "x-nullable": true - }, - "newKey": { - "type": "string", - "description": "New Column Key.", - "default": null, - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "elements", - "required", - "default" - ] - } + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "type": "boolean", + "x-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, + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0, + "in": "query" } ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/float": { + }, "post": { - "summary": "Create float column", - "operationId": "tablesDBCreateFloatColumn", + "summary": "Create row", + "operationId": "tablesDBCreateRow", "consumes": [ "application\/json" ], @@ -50714,37 +58155,99 @@ "tags": [ "tablesDB" ], - "description": "Create a float column. Optionally, minimum and maximum values can be provided.\n", + "description": "Create a new Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", "responses": { - "202": { - "description": "ColumnFloat", + "201": { + "description": "Row", "schema": { - "$ref": "#\/definitions\/columnFloat" + "$ref": "#\/definitions\/row" } } }, "deprecated": false, "x-appwrite": { - "method": "createFloatColumn", - "group": "columns", - "weight": 359, + "method": "createRow", + "group": "rows", + "weight": 373, "cookies": false, "type": "", - "demo": "tablesdb\/create-float-column.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", + "demo": "tablesdb\/create-row.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", "scope": [ - "tables.write", - "collections.write" + "rows.write", + "documents.write" ], "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-float-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-row.md", + "methods": [ + { + "name": "createRow", + "namespace": "tablesDB", + "desc": "Create row", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "tableId", + "rowId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "tableId", + "rowId", + "data" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/row" + } + ], + "description": "Create a new Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "demo": "tablesdb\/create-row.md", + "public": true + }, + { + "name": "createRows", + "namespace": "tablesDB", + "desc": "Create rows", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "tableId", + "rows", + "transactionId" + ], + "required": [ + "databaseId", + "tableId", + "rows" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/rowList" + } + ], + "description": "Create new Rows. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "demo": "tablesdb\/create-rows.md", + "public": true + } + ], "auth": { "Project": [] } @@ -50752,7 +58255,8 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ @@ -50766,7 +58270,7 @@ }, { "name": "tableId", - "description": "Table ID.", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable). Make sure to define columns before creating rows.", "required": true, "type": "string", "x-example": "<TABLE_ID>", @@ -50778,62 +58282,52 @@ "schema": { "type": "object", "properties": { - "key": { + "rowId": { "type": "string", - "description": "Column Key.", - "default": null, - "x-example": null + "description": "Row ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "default": "", + "x-example": "<ROW_ID>" }, - "required": { - "type": "boolean", - "description": "Is column required?", - "default": null, - "x-example": false + "data": { + "type": "object", + "description": "Row data as JSON object.", + "default": [], + "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":30,\"isAdmin\":false}" }, - "min": { - "type": "number", - "description": "Minimum value", + "permissions": { + "type": "array", + "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).", "default": null, - "x-example": null, - "format": "float", - "x-nullable": true + "x-example": "[\"read(\"any\")\"]", + "x-nullable": true, + "items": { + "type": "string" + } }, - "max": { - "type": "number", - "description": "Maximum value", - "default": null, + "rows": { + "type": "array", + "description": "Array of rows data as JSON objects.", + "default": [], "x-example": null, - "format": "float", - "x-nullable": true + "items": { + "type": "object" + } }, - "default": { - "type": "number", - "description": "Default value. Cannot be set when required.", + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", "default": null, - "x-example": null, - "format": "float", + "x-example": "<TRANSACTION_ID>", "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "default": false, - "x-example": false } - }, - "required": [ - "key", - "required" - ] + } } } ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/float\/{key}": { - "patch": { - "summary": "Update float column", - "operationId": "tablesDBUpdateFloatColumn", + }, + "put": { + "summary": "Upsert rows", + "operationId": "tablesDBUpsertRows", "consumes": [ "application\/json" ], @@ -50843,29 +58337,29 @@ "tags": [ "tablesDB" ], - "description": "Update a float column. Changing the `default` value will not update already existing rows.\n", + "description": "Create or update Rows. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.\n", "responses": { - "200": { - "description": "ColumnFloat", + "201": { + "description": "Rows List", "schema": { - "$ref": "#\/definitions\/columnFloat" + "$ref": "#\/definitions\/rowList" } } }, "deprecated": false, "x-appwrite": { - "method": "updateFloatColumn", - "group": "columns", - "weight": 360, + "method": "upsertRows", + "group": "rows", + "weight": 378, "cookies": false, "type": "", - "demo": "tablesdb\/update-float-column.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", + "demo": "tablesdb\/upsert-rows.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", "scope": [ - "tables.write", - "collections.write" + "rows.write", + "documents.write" ], "platforms": [ "console", @@ -50873,7 +58367,37 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-float-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/upsert-rows.md", + "methods": [ + { + "name": "upsertRows", + "namespace": "tablesDB", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "tableId", + "rows", + "transactionId" + ], + "required": [ + "databaseId", + "tableId", + "rows" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/rowList" + } + ], + "description": "Create or update Rows. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.\n", + "demo": "tablesdb\/upsert-rows.md", + "public": true + } + ], "auth": { "Project": [] } @@ -50901,70 +58425,39 @@ "x-example": "<TABLE_ID>", "in": "path" }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "type": "string", - "in": "path" - }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "required": { - "type": "boolean", - "description": "Is column required?", - "default": null, - "x-example": false - }, - "min": { - "type": "number", - "description": "Minimum value", - "default": null, - "x-example": null, - "format": "float", - "x-nullable": true - }, - "max": { - "type": "number", - "description": "Maximum value", - "default": null, - "x-example": null, - "format": "float", - "x-nullable": true - }, - "default": { - "type": "number", - "description": "Default value. Cannot be set when required.", + "rows": { + "type": "array", + "description": "Array of row data as JSON objects. May contain partial rows.", "default": null, "x-example": null, - "format": "float", - "x-nullable": true + "items": { + "type": "object" + } }, - "newKey": { + "transactionId": { "type": "string", - "description": "New Column Key.", + "description": "Transaction ID for staging the operation.", "default": null, - "x-example": null, + "x-example": "<TRANSACTION_ID>", "x-nullable": true } }, "required": [ - "required", - "default" + "rows" ] } } ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/integer": { - "post": { - "summary": "Create integer column", - "operationId": "tablesDBCreateIntegerColumn", + }, + "patch": { + "summary": "Update rows", + "operationId": "tablesDBUpdateRows", "consumes": [ "application\/json" ], @@ -50974,29 +58467,29 @@ "tags": [ "tablesDB" ], - "description": "Create an integer column. Optionally, minimum and maximum values can be provided.\n", + "description": "Update all rows that match your queries, if no queries are submitted then all rows are updated. You can pass only specific fields to be updated.", "responses": { - "202": { - "description": "ColumnInteger", + "200": { + "description": "Rows List", "schema": { - "$ref": "#\/definitions\/columnInteger" + "$ref": "#\/definitions\/rowList" } } }, "deprecated": false, "x-appwrite": { - "method": "createIntegerColumn", - "group": "columns", - "weight": 361, + "method": "updateRows", + "group": "rows", + "weight": 376, "cookies": false, "type": "", - "demo": "tablesdb\/create-integer-column.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", + "demo": "tablesdb\/update-rows.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", "scope": [ - "tables.write", - "collections.write" + "rows.write", + "documents.write" ], "platforms": [ "console", @@ -51004,7 +58497,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-integer-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-rows.md", "auth": { "Project": [] } @@ -51038,62 +58531,36 @@ "schema": { "type": "object", "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "default": null, - "x-example": null - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "default": null, - "x-example": false - }, - "min": { - "type": "integer", - "description": "Minimum value", - "default": null, - "x-example": null, - "format": "int64", - "x-nullable": true + "data": { + "type": "object", + "description": "Row data as JSON object. Include only column and value pairs to be updated.", + "default": [], + "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":33,\"isAdmin\":false}" }, - "max": { - "type": "integer", - "description": "Maximum value", - "default": null, + "queries": { + "type": "array", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "default": [], "x-example": null, - "format": "int64", - "x-nullable": true + "items": { + "type": "string" + } }, - "default": { - "type": "integer", - "description": "Default value. Cannot be set when column is required.", + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", "default": null, - "x-example": null, - "format": "int64", + "x-example": "<TRANSACTION_ID>", "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "default": false, - "x-example": false } - }, - "required": [ - "key", - "required" - ] + } } } ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/integer\/{key}": { - "patch": { - "summary": "Update integer column", - "operationId": "tablesDBUpdateIntegerColumn", + }, + "delete": { + "summary": "Delete rows", + "operationId": "tablesDBDeleteRows", "consumes": [ "application\/json" ], @@ -51103,29 +58570,29 @@ "tags": [ "tablesDB" ], - "description": "Update an integer column. Changing the `default` value will not update already existing rows.\n", + "description": "Bulk delete rows using queries, if no queries are passed then all rows are deleted.", "responses": { "200": { - "description": "ColumnInteger", + "description": "Rows List", "schema": { - "$ref": "#\/definitions\/columnInteger" + "$ref": "#\/definitions\/rowList" } } }, "deprecated": false, "x-appwrite": { - "method": "updateIntegerColumn", - "group": "columns", - "weight": 362, + "method": "deleteRows", + "group": "rows", + "weight": 380, "cookies": false, "type": "", - "demo": "tablesdb\/update-integer-column.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", + "demo": "tablesdb\/delete-rows.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", "scope": [ - "tables.write", - "collections.write" + "rows.write", + "documents.write" ], "platforms": [ "console", @@ -51133,7 +58600,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-integer-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-rows.md", "auth": { "Project": [] } @@ -51155,116 +58622,83 @@ }, { "name": "tableId", - "description": "Table ID.", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "type": "string", "x-example": "<TABLE_ID>", "in": "path" }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "type": "string", - "in": "path" - }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "required": { - "type": "boolean", - "description": "Is column required?", - "default": null, - "x-example": false - }, - "min": { - "type": "integer", - "description": "Minimum value", - "default": null, - "x-example": null, - "format": "int64", - "x-nullable": true - }, - "max": { - "type": "integer", - "description": "Maximum value", - "default": null, - "x-example": null, - "format": "int64", - "x-nullable": true - }, - "default": { - "type": "integer", - "description": "Default value. Cannot be set when column is required.", - "default": null, + "queries": { + "type": "array", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "default": [], "x-example": null, - "format": "int64", - "x-nullable": true + "items": { + "type": "string" + } }, - "newKey": { + "transactionId": { "type": "string", - "description": "New Column Key.", + "description": "Transaction ID for staging the operation.", "default": null, - "x-example": null, + "x-example": "<TRANSACTION_ID>", "x-nullable": true } - }, - "required": [ - "required", - "default" - ] + } } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/ip": { - "post": { - "summary": "Create IP address column", - "operationId": "tablesDBCreateIpColumn", - "consumes": [ - "application\/json" - ], + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}": { + "get": { + "summary": "Get row", + "operationId": "tablesDBGetRow", + "consumes": [], "produces": [ "application\/json" ], "tags": [ "tablesDB" ], - "description": "Create IP address column.\n", + "description": "Get a row by its unique ID. This endpoint response returns a JSON object with the row data.", "responses": { - "202": { - "description": "ColumnIP", + "200": { + "description": "Row", "schema": { - "$ref": "#\/definitions\/columnIp" + "$ref": "#\/definitions\/row" } } }, "deprecated": false, "x-appwrite": { - "method": "createIpColumn", - "group": "columns", - "weight": 363, + "method": "getRow", + "group": "rows", + "weight": 374, "cookies": false, "type": "", - "demo": "tablesdb\/create-ip-column.md", + "demo": "tablesdb\/get-row.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.write", - "collections.write" + "rows.read", + "documents.read" ], "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-ip-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-row.md", "auth": { "Project": [] } @@ -51272,7 +58706,8 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ @@ -51286,57 +58721,45 @@ }, { "name": "tableId", - "description": "Table ID.", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "type": "string", "x-example": "<TABLE_ID>", "in": "path" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "default": null, - "x-example": null - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "default": null, - "x-example": false - }, - "default": { - "type": "string", - "description": "Default value. Cannot be set when column is required.", - "default": null, - "x-example": null, - "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "default": false, - "x-example": false - } - }, - "required": [ - "key", - "required" - ] - } + "name": "rowId", + "description": "Row ID.", + "required": true, + "type": "string", + "x-example": "<ROW_ID>", + "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, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", + "required": false, + "type": "string", + "x-example": "<TRANSACTION_ID>", + "in": "query" } ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/ip\/{key}": { - "patch": { - "summary": "Update IP address column", - "operationId": "tablesDBUpdateIpColumn", + }, + "put": { + "summary": "Upsert a row", + "operationId": "tablesDBUpsertRow", "consumes": [ "application\/json" ], @@ -51346,37 +58769,70 @@ "tags": [ "tablesDB" ], - "description": "Update an ip column. Changing the `default` value will not update already existing rows.\n", + "description": "Create or update a Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", "responses": { - "200": { - "description": "ColumnIP", + "201": { + "description": "Row", "schema": { - "$ref": "#\/definitions\/columnIp" + "$ref": "#\/definitions\/row" } } }, "deprecated": false, "x-appwrite": { - "method": "updateIpColumn", - "group": "columns", - "weight": 364, + "method": "upsertRow", + "group": "rows", + "weight": 377, "cookies": false, "type": "", - "demo": "tablesdb\/update-ip-column.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", + "demo": "tablesdb\/upsert-row.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", "scope": [ - "tables.write", - "collections.write" + "rows.write", + "documents.write" ], "platforms": [ "console", + "client", "server" ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-ip-column.md", + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/upsert-row.md", + "methods": [ + { + "name": "upsertRow", + "namespace": "tablesDB", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "tableId", + "rowId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "tableId", + "rowId" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/row" + } + ], + "description": "Create or update a Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "demo": "tablesdb\/upsert-row.md", + "public": true + } + ], "auth": { "Project": [] } @@ -51384,7 +58840,8 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ @@ -51405,10 +58862,11 @@ "in": "path" }, { - "name": "key", - "description": "Column Key.", + "name": "rowId", + "description": "Row ID.", "required": true, "type": "string", + "x-example": "<ROW_ID>", "in": "path" }, { @@ -51417,40 +58875,37 @@ "schema": { "type": "object", "properties": { - "required": { - "type": "boolean", - "description": "Is column required?", - "default": null, - "x-example": false + "data": { + "type": "object", + "description": "Row data as JSON object. Include all required columns of the row to be created or updated.", + "default": [], + "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":33,\"isAdmin\":false}" }, - "default": { - "type": "string", - "description": "Default value. Cannot be set when column is required.", + "permissions": { + "type": "array", + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", "default": null, - "x-example": null, - "x-nullable": true + "x-example": "[\"read(\"any\")\"]", + "x-nullable": true, + "items": { + "type": "string" + } }, - "newKey": { + "transactionId": { "type": "string", - "description": "New Column Key.", + "description": "Transaction ID for staging the operation.", "default": null, - "x-example": null, + "x-example": "<TRANSACTION_ID>", "x-nullable": true } - }, - "required": [ - "required", - "default" - ] + } } } ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/line": { - "post": { - "summary": "Create line column", - "operationId": "tablesDBCreateLineColumn", + }, + "patch": { + "summary": "Update row", + "operationId": "tablesDBUpdateRow", "consumes": [ "application\/json" ], @@ -51460,37 +58915,38 @@ "tags": [ "tablesDB" ], - "description": "Create a geometric line column.", + "description": "Update a row by its unique ID. Using the patch method you can pass only specific fields that will get updated.", "responses": { - "202": { - "description": "ColumnLine", + "200": { + "description": "Row", "schema": { - "$ref": "#\/definitions\/columnLine" + "$ref": "#\/definitions\/row" } } }, "deprecated": false, "x-appwrite": { - "method": "createLineColumn", - "group": "columns", - "weight": 365, + "method": "updateRow", + "group": "rows", + "weight": 375, "cookies": false, "type": "", - "demo": "tablesdb\/create-line-column.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", + "demo": "tablesdb\/update-row.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", "scope": [ - "tables.write", - "collections.write" + "rows.write", + "documents.write" ], "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-line-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-row.md", "auth": { "Project": [] } @@ -51498,7 +58954,8 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ @@ -51512,91 +58969,93 @@ }, { "name": "tableId", - "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "description": "Table ID.", "required": true, "type": "string", "x-example": "<TABLE_ID>", "in": "path" }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "type": "string", + "x-example": "<ROW_ID>", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "default": null, - "x-example": null + "data": { + "type": "object", + "description": "Row data as JSON object. Include only columns and value pairs to be updated.", + "default": [], + "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":33,\"isAdmin\":false}" }, - "required": { - "type": "boolean", - "description": "Is column required?", + "permissions": { + "type": "array", + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", "default": null, - "x-example": false + "x-example": "[\"read(\"any\")\"]", + "x-nullable": true, + "items": { + "type": "string" + } }, - "default": { - "type": "array", - "description": "Default value for column 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 column is required.", + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", "default": null, - "x-example": "[[1, 2], [3, 4], [5, 6]]", + "x-example": "<TRANSACTION_ID>", "x-nullable": true } - }, - "required": [ - "key", - "required" - ] + } } } ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/line\/{key}": { - "patch": { - "summary": "Update line column", - "operationId": "tablesDBUpdateLineColumn", + }, + "delete": { + "summary": "Delete row", + "operationId": "tablesDBDeleteRow", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ "tablesDB" ], - "description": "Update a line column. Changing the `default` value will not update already existing rows.", + "description": "Delete a row by its unique ID.", "responses": { - "200": { - "description": "ColumnLine", - "schema": { - "$ref": "#\/definitions\/columnLine" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateLineColumn", - "group": "columns", - "weight": 366, + "method": "deleteRow", + "group": "rows", + "weight": 379, "cookies": false, "type": "", - "demo": "tablesdb\/update-line-column.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", + "demo": "tablesdb\/delete-row.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", "scope": [ - "tables.write", - "collections.write" + "rows.write", + "documents.write" ], "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-line-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-row.md", "auth": { "Project": [] } @@ -51604,7 +59063,8 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ @@ -51618,17 +59078,18 @@ }, { "name": "tableId", - "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "type": "string", "x-example": "<TABLE_ID>", "in": "path" }, { - "name": "key", - "description": "Column Key.", + "name": "rowId", + "description": "Row ID.", "required": true, "type": "string", + "x-example": "<ROW_ID>", "in": "path" }, { @@ -51637,87 +59098,67 @@ "schema": { "type": "object", "properties": { - "required": { - "type": "boolean", - "description": "Is column required?", - "default": null, - "x-example": false - }, - "default": { - "type": "array", - "description": "Default value for column 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 column is required.", - "default": null, - "x-example": "[[1, 2], [3, 4], [5, 6]]", - "x-nullable": true - }, - "newKey": { + "transactionId": { "type": "string", - "description": "New Column Key.", + "description": "Transaction ID for staging the operation.", "default": null, - "x-example": null, + "x-example": "<TRANSACTION_ID>", "x-nullable": true } - }, - "required": [ - "required" - ] + } } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/longtext": { - "post": { - "summary": "Create longtext column", - "operationId": "tablesDBCreateLongtextColumn", - "consumes": [ - "application\/json" - ], + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}\/logs": { + "get": { + "summary": "List row logs", + "operationId": "tablesDBListRowLogs", + "consumes": [], "produces": [ "application\/json" ], "tags": [ "tablesDB" ], - "description": "Create a longtext column.\n", + "description": "Get the row activity logs list by its unique ID.", "responses": { - "202": { - "description": "ColumnLongtext", + "200": { + "description": "Logs List", "schema": { - "$ref": "#\/definitions\/columnLongtext" + "$ref": "#\/definitions\/logList" } } }, "deprecated": false, "x-appwrite": { - "method": "createLongtextColumn", - "group": "columns", - "weight": 383, + "method": "listRowLogs", + "group": "logs", + "weight": 382, "cookies": false, "type": "", - "demo": "tablesdb\/create-longtext-column.md", + "demo": "tablesdb\/list-row-logs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.write", - "collections.write" + "rows.read", + "documents.read" ], "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-longtext-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-row-logs.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ @@ -51731,63 +59172,39 @@ }, { "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "description": "Table ID.", "required": true, "type": "string", "x-example": "<TABLE_ID>", "in": "path" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "default": null, - "x-example": null - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "default": null, - "x-example": false - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "default": null, - "x-example": "<DEFAULT>", - "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "default": false, - "x-example": false - }, - "encrypt": { - "type": "boolean", - "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", - "default": false, - "x-example": false - } - }, - "required": [ - "key", - "required" - ] - } + "name": "rowId", + "description": "Row ID.", + "required": true, + "type": "string", + "x-example": "<ROW_ID>", + "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). Only supported methods are limit and offset", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/longtext\/{key}": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}\/{column}\/decrement": { "patch": { - "summary": "Update longtext column", - "operationId": "tablesDBUpdateLongtextColumn", + "summary": "Decrement row column", + "operationId": "tablesDBDecrementRowColumn", "consumes": [ "application\/json" ], @@ -51797,37 +59214,38 @@ "tags": [ "tablesDB" ], - "description": "Update a longtext column. Changing the `default` value will not update already existing rows.\n", + "description": "Decrement a specific column of a row by a given value.", "responses": { "200": { - "description": "ColumnLongtext", + "description": "Row", "schema": { - "$ref": "#\/definitions\/columnLongtext" + "$ref": "#\/definitions\/row" } } }, "deprecated": false, "x-appwrite": { - "method": "updateLongtextColumn", - "group": "columns", + "method": "decrementRowColumn", + "group": "rows", "weight": 384, "cookies": false, "type": "", - "demo": "tablesdb\/update-longtext-column.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", + "demo": "tablesdb\/decrement-row-column.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", "scope": [ - "tables.write", - "collections.write" + "rows.write", + "documents.write" ], "platforms": [ - "console", - "server" + "client", + "server", + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-longtext-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/decrement-row-column.md", "auth": { "Project": [] } @@ -51835,6 +59253,7 @@ "security": [ { "Project": [], + "JWT": [], "Key": [] } ], @@ -51849,15 +59268,23 @@ }, { "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "description": "Table ID.", "required": true, "type": "string", "x-example": "<TABLE_ID>", "in": "path" }, { - "name": "key", - "description": "Column Key.", + "name": "rowId", + "description": "Row ID.", + "required": true, + "type": "string", + "x-example": "<ROW_ID>", + "in": "path" + }, + { + "name": "column", + "description": "Column key.", "required": true, "type": "string", "in": "path" @@ -51868,40 +59295,38 @@ "schema": { "type": "object", "properties": { - "required": { - "type": "boolean", - "description": "Is column required?", - "default": null, - "x-example": false + "value": { + "type": "number", + "description": "Value to increment the column by. The value must be a number.", + "default": 1, + "x-example": null, + "format": "float" }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", + "min": { + "type": "number", + "description": "Minimum value for the column. If the current value is lesser than this value, an exception will be thrown.", "default": null, - "x-example": "<DEFAULT>", + "x-example": null, + "format": "float", "x-nullable": true }, - "newKey": { + "transactionId": { "type": "string", - "description": "New Column Key.", + "description": "Transaction ID for staging the operation.", "default": null, - "x-example": null, + "x-example": "<TRANSACTION_ID>", "x-nullable": true } - }, - "required": [ - "required", - "default" - ] + } } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/mediumtext": { - "post": { - "summary": "Create mediumtext column", - "operationId": "tablesDBCreateMediumtextColumn", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}\/{column}\/increment": { + "patch": { + "summary": "Increment row column", + "operationId": "tablesDBIncrementRowColumn", "consumes": [ "application\/json" ], @@ -51911,37 +59336,38 @@ "tags": [ "tablesDB" ], - "description": "Create a mediumtext column.\n", + "description": "Increment a specific column of a row by a given value.", "responses": { - "202": { - "description": "ColumnMediumtext", + "200": { + "description": "Row", "schema": { - "$ref": "#\/definitions\/columnMediumtext" + "$ref": "#\/definitions\/row" } } }, "deprecated": false, "x-appwrite": { - "method": "createMediumtextColumn", - "group": "columns", - "weight": 381, + "method": "incrementRowColumn", + "group": "rows", + "weight": 383, "cookies": false, "type": "", - "demo": "tablesdb\/create-mediumtext-column.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", + "demo": "tablesdb\/increment-row-column.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", "scope": [ - "tables.write", - "collections.write" + "rows.write", + "documents.write" ], "platforms": [ - "console", - "server" + "client", + "server", + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-mediumtext-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/increment-row-column.md", "auth": { "Project": [] } @@ -51949,6 +59375,7 @@ "security": [ { "Project": [], + "JWT": [], "Key": [] } ], @@ -51963,111 +59390,109 @@ }, { "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "description": "Table ID.", "required": true, "type": "string", "x-example": "<TABLE_ID>", "in": "path" }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "type": "string", + "x-example": "<ROW_ID>", + "in": "path" + }, + { + "name": "column", + "description": "Column key.", + "required": true, + "type": "string", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "default": null, - "x-example": null + "value": { + "type": "number", + "description": "Value to increment the column by. The value must be a number.", + "default": 1, + "x-example": null, + "format": "float" }, - "required": { - "type": "boolean", - "description": "Is column required?", + "max": { + "type": "number", + "description": "Maximum value for the column. If the current value is greater than this value, an error will be thrown.", "default": null, - "x-example": false + "x-example": null, + "format": "float", + "x-nullable": true }, - "default": { + "transactionId": { "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", + "description": "Transaction ID for staging the operation.", "default": null, - "x-example": "<DEFAULT>", + "x-example": "<TRANSACTION_ID>", "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "default": false, - "x-example": false - }, - "encrypt": { - "type": "boolean", - "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", - "default": false, - "x-example": false } - }, - "required": [ - "key", - "required" - ] + } } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/mediumtext\/{key}": { - "patch": { - "summary": "Update mediumtext column", - "operationId": "tablesDBUpdateMediumtextColumn", - "consumes": [ - "application\/json" - ], + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/usage": { + "get": { + "summary": "Get table usage stats", + "operationId": "tablesDBGetTableUsage", + "consumes": [], "produces": [ "application\/json" ], "tags": [ "tablesDB" ], - "description": "Update a mediumtext column. Changing the `default` value will not update already existing rows.\n", + "description": "Get usage metrics and statistics for a table. Returning the total number of rows. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.", "responses": { "200": { - "description": "ColumnMediumtext", + "description": "UsageTable", "schema": { - "$ref": "#\/definitions\/columnMediumtext" + "$ref": "#\/definitions\/usageTable" } } }, "deprecated": false, "x-appwrite": { - "method": "updateMediumtextColumn", - "group": "columns", - "weight": 382, + "method": "getTableUsage", + "group": null, + "weight": 331, "cookies": false, "type": "", - "demo": "tablesdb\/update-mediumtext-column.md", + "demo": "tablesdb\/get-table-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.write", - "collections.write" + "tables.read", + "collections.read" ], "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-mediumtext-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-table-usage.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ @@ -52080,108 +59505,110 @@ "in": "path" }, { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", - "required": true, + "name": "range", + "description": "Date range.", + "required": false, "type": "string", - "x-example": "<TABLE_ID>", - "in": "path" + "x-example": "24h", + "enum": [ + "24h", + "30d", + "90d" + ], + "x-enum-name": "UsageRange", + "x-enum-keys": [ + "Twenty Four Hours", + "Thirty Days", + "Ninety Days" + ], + "default": "30d", + "in": "query" }, { - "name": "key", - "description": "Column Key.", + "name": "tableId", + "description": "Table ID.", "required": true, "type": "string", + "x-example": "<TABLE_ID>", "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "required": { - "type": "boolean", - "description": "Is column required?", - "default": null, - "x-example": false - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "default": null, - "x-example": "<DEFAULT>", - "x-nullable": true - }, - "newKey": { - "type": "string", - "description": "New Column Key.", - "default": null, - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "required", - "default" - ] - } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/point": { - "post": { - "summary": "Create point column", - "operationId": "tablesDBCreatePointColumn", - "consumes": [ - "application\/json" - ], + "\/tablesdb\/{databaseId}\/usage": { + "get": { + "summary": "Get TablesDB usage stats", + "operationId": "tablesDBGetUsage", + "consumes": [], "produces": [ "application\/json" ], "tags": [ "tablesDB" ], - "description": "Create a geometric point column.", + "description": "Get usage metrics and statistics for a database. You can view the total number of tables, rows, and storage usage. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.", "responses": { - "202": { - "description": "ColumnPoint", + "200": { + "description": "UsageDatabase", "schema": { - "$ref": "#\/definitions\/columnPoint" + "$ref": "#\/definitions\/usageDatabase" } } }, "deprecated": false, "x-appwrite": { - "method": "createPointColumn", - "group": "columns", - "weight": 367, + "method": "getUsage", + "group": null, + "weight": 323, "cookies": false, "type": "", - "demo": "tablesdb\/create-point-column.md", + "demo": "tablesdb\/get-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.write", - "collections.write" + "tables.read", + "collections.read" ], "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-point-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-database-usage.md", + "methods": [ + { + "name": "getUsage", + "namespace": "tablesDB", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "range" + ], + "required": [ + "databaseId" + ], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/usageDatabase" + } + ], + "description": "Get usage metrics and statistics for a database. You can view the total number of tables, rows, and storage usage. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.", + "demo": "tablesdb\/get-usage.md", + "public": true + } + ], "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ @@ -52194,92 +59621,68 @@ "in": "path" }, { - "name": "tableId", - "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", - "required": true, + "name": "range", + "description": "Date range.", + "required": false, "type": "string", - "x-example": "<TABLE_ID>", - "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "default": null, - "x-example": null - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "default": null, - "x-example": false - }, - "default": { - "type": "array", - "description": "Default value for column when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when column is required.", - "default": null, - "x-example": "[1, 2]", - "x-nullable": true - } - }, - "required": [ - "key", - "required" - ] - } + "x-example": "24h", + "enum": [ + "24h", + "30d", + "90d" + ], + "x-enum-name": "UsageRange", + "x-enum-keys": [ + "Twenty Four Hours", + "Thirty Days", + "Ninety Days" + ], + "default": "30d", + "in": "query" } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/point\/{key}": { - "patch": { - "summary": "Update point column", - "operationId": "tablesDBUpdatePointColumn", - "consumes": [ - "application\/json" - ], + "\/teams": { + "get": { + "summary": "List teams", + "operationId": "teamsList", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "tablesDB" + "teams" ], - "description": "Update a point column. Changing the `default` value will not update already existing rows.", + "description": "Get a list of all the teams in which the current user is a member. You can use the parameters to filter your results.", "responses": { "200": { - "description": "ColumnPoint", + "description": "Teams List", "schema": { - "$ref": "#\/definitions\/columnPoint" + "$ref": "#\/definitions\/teamList" } } }, "deprecated": false, "x-appwrite": { - "method": "updatePointColumn", - "group": "columns", - "weight": 368, + "method": "list", + "group": "teams", + "weight": 579, "cookies": false, "type": "", - "demo": "tablesdb\/update-point-column.md", + "demo": "teams\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write" - ], + "scope": "teams.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-point-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/list-teams.md", "auth": { "Project": [] } @@ -52287,72 +59690,46 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", - "required": true, - "type": "string", - "x-example": "<TABLE_ID>", - "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, total, billingPlan", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" }, { - "name": "key", - "description": "Column Key.", - "required": true, + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, "type": "string", - "in": "path" + "x-example": "<SEARCH>", + "default": "", + "in": "query" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "required": { - "type": "boolean", - "description": "Is column required?", - "default": null, - "x-example": false - }, - "default": { - "type": "array", - "description": "Default value for column when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when column is required.", - "default": null, - "x-example": "[1, 2]", - "x-nullable": true - }, - "newKey": { - "type": "string", - "description": "New Column Key.", - "default": null, - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "required" - ] - } + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" } ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/polygon": { + }, "post": { - "summary": "Create polygon column", - "operationId": "tablesDBCreatePolygonColumn", + "summary": "Create team", + "operationId": "teamsCreate", "consumes": [ "application\/json" ], @@ -52360,39 +59737,37 @@ "application\/json" ], "tags": [ - "tablesDB" + "teams" ], - "description": "Create a geometric polygon column.", + "description": "Create a new team. The user who creates the team will automatically be assigned as the owner of the team. Only the users with the owner role can invite new members, add new owners and delete or update the team.", "responses": { - "202": { - "description": "ColumnPolygon", + "201": { + "description": "Team", "schema": { - "$ref": "#\/definitions\/columnPolygon" + "$ref": "#\/definitions\/team" } } }, "deprecated": false, "x-appwrite": { - "method": "createPolygonColumn", - "group": "columns", - "weight": 369, + "method": "create", + "group": "teams", + "weight": 577, "cookies": false, "type": "", - "demo": "tablesdb\/create-polygon-column.md", + "demo": "teams\/create.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write" - ], + "scope": "teams.write", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-polygon-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team.md", "auth": { "Project": [] } @@ -52400,105 +59775,90 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", - "required": true, - "type": "string", - "x-example": "<TABLE_ID>", - "in": "path" - }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "key": { + "teamId": { "type": "string", - "description": "Column Key.", + "description": "Team ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", "default": null, - "x-example": null + "x-example": "<TEAM_ID>" }, - "required": { - "type": "boolean", - "description": "Is column required?", + "name": { + "type": "string", + "description": "Team name. Max length: 128 chars.", "default": null, - "x-example": false + "x-example": "<NAME>" }, - "default": { + "roles": { "type": "array", - "description": "Default value for column 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 column is required.", - "default": null, - "x-example": "[[[1, 2], [3, 4], [5, 6], [1, 2]]]", - "x-nullable": true + "description": "Array of strings. Use this param to set the roles in the team for the user who created it. The default role is **owner**. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 32 characters long.", + "default": [ + "owner" + ], + "x-example": null, + "items": { + "type": "string" + } } }, "required": [ - "key", - "required" + "teamId", + "name" ] } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/polygon\/{key}": { - "patch": { - "summary": "Update polygon column", - "operationId": "tablesDBUpdatePolygonColumn", - "consumes": [ - "application\/json" - ], + "\/teams\/{teamId}": { + "get": { + "summary": "Get team", + "operationId": "teamsGet", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "tablesDB" + "teams" ], - "description": "Update a polygon column. Changing the `default` value will not update already existing rows.", + "description": "Get a team by its ID. All team members have read access for this resource.", "responses": { "200": { - "description": "ColumnPolygon", + "description": "Team", "schema": { - "$ref": "#\/definitions\/columnPolygon" + "$ref": "#\/definitions\/team" } } }, "deprecated": false, "x-appwrite": { - "method": "updatePolygonColumn", - "group": "columns", - "weight": 370, + "method": "get", + "group": "teams", + "weight": 578, "cookies": false, "type": "", - "demo": "tablesdb\/update-polygon-column.md", + "demo": "teams\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write" - ], + "scope": "teams.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-polygon-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team.md", "auth": { "Project": [] } @@ -52506,31 +59866,80 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "type": "string", - "x-example": "<DATABASE_ID>", + "x-example": "<TEAM_ID>", "in": "path" - }, + } + ] + }, + "put": { + "summary": "Update name", + "operationId": "teamsUpdateName", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "teams" + ], + "description": "Update the team's name by its unique ID.", + "responses": { + "200": { + "description": "Team", + "schema": { + "$ref": "#\/definitions\/team" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateName", + "group": "teams", + "weight": 581, + "cookies": false, + "type": "", + "demo": "teams\/update-name.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", + "platforms": [ + "console", + "client", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-name.md", + "auth": { + "Project": [] + } + }, + "security": [ { - "name": "tableId", - "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", - "required": true, - "type": "string", - "x-example": "<TABLE_ID>", - "in": "path" - }, + "Project": [], + "Key": [], + "JWT": [] + } + ], + "parameters": [ { - "name": "key", - "description": "Column Key.", + "name": "teamId", + "description": "Team ID.", "required": true, "type": "string", + "x-example": "<TEAM_ID>", "in": "path" }, { @@ -52539,79 +59948,56 @@ "schema": { "type": "object", "properties": { - "required": { - "type": "boolean", - "description": "Is column required?", - "default": null, - "x-example": false - }, - "default": { - "type": "array", - "description": "Default value for column 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 column is required.", - "default": null, - "x-example": "[[[1, 2], [3, 4], [5, 6], [1, 2]]]", - "x-nullable": true - }, - "newKey": { + "name": { "type": "string", - "description": "New Column Key.", + "description": "New team name. Max length: 128 chars.", "default": null, - "x-example": null, - "x-nullable": true + "x-example": "<NAME>" } }, "required": [ - "required" + "name" ] } } ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/relationship": { - "post": { - "summary": "Create relationship column", - "operationId": "tablesDBCreateRelationshipColumn", + }, + "delete": { + "summary": "Delete team", + "operationId": "teamsDelete", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ - "tablesDB" + "teams" ], - "description": "Create relationship column. [Learn more about relationship columns](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-columns).\n", + "description": "Delete a team using its ID. Only team members with the owner role can delete the team.", "responses": { - "202": { - "description": "ColumnRelationship", - "schema": { - "$ref": "#\/definitions\/columnRelationship" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "createRelationshipColumn", - "group": "columns", - "weight": 371, + "method": "delete", + "group": "teams", + "weight": 580, "cookies": false, "type": "", - "demo": "tablesdb\/create-relationship-column.md", + "demo": "teams\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write" - ], + "scope": "teams.write", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-relationship-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team.md", "auth": { "Project": [] } @@ -52619,273 +60005,142 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "type": "string", - "x-example": "<TABLE_ID>", + "x-example": "<TEAM_ID>", "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "relatedTableId": { - "type": "string", - "description": "Related Table ID.", - "default": null, - "x-example": "<RELATED_TABLE_ID>" - }, - "type": { - "type": "string", - "description": "Relation type", - "default": null, - "x-example": "oneToOne", - "enum": [ - "oneToOne", - "manyToOne", - "manyToMany", - "oneToMany" - ], - "x-enum-name": "RelationshipType", - "x-enum-keys": [] - }, - "twoWay": { - "type": "boolean", - "description": "Is Two Way?", - "default": false, - "x-example": false - }, - "key": { - "type": "string", - "description": "Column Key.", - "default": null, - "x-example": null, - "x-nullable": true - }, - "twoWayKey": { - "type": "string", - "description": "Two Way Column Key.", - "default": null, - "x-example": null, - "x-nullable": true - }, - "onDelete": { - "type": "string", - "description": "Constraints option", - "default": "restrict", - "x-example": "cascade", - "enum": [ - "cascade", - "restrict", - "setNull" - ], - "x-enum-name": "RelationMutate", - "x-enum-keys": [] - } - }, - "required": [ - "relatedTableId", - "type" - ] - } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/string": { - "post": { - "summary": "Create string column", - "operationId": "tablesDBCreateStringColumn", - "consumes": [ - "application\/json" - ], + "\/teams\/{teamId}\/logs": { + "get": { + "summary": "List team logs", + "operationId": "teamsListLogs", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "tablesDB" + "teams" ], - "description": "Create a string column.\n", + "description": "Get the team activity logs list by its unique ID.", "responses": { - "202": { - "description": "ColumnString", + "200": { + "description": "Logs List", "schema": { - "$ref": "#\/definitions\/columnString" + "$ref": "#\/definitions\/logList" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createStringColumn", - "group": "columns", - "weight": 373, + "method": "listLogs", + "group": "logs", + "weight": 590, "cookies": false, "type": "", - "demo": "tablesdb\/create-string-column.md", + "demo": "teams\/list-logs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write" - ], + "scope": "teams.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-string-column.md", - "deprecated": { - "since": "1.9.0", - "replaceWith": "tablesDB.createTextColumn" - }, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-logs.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "type": "string", - "x-example": "<DATABASE_ID>", + "x-example": "<TEAM_ID>", "in": "path" }, { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", - "required": true, - "type": "string", - "x-example": "<TABLE_ID>", - "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). Only supported methods are limit and offset", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "default": null, - "x-example": null - }, - "size": { - "type": "integer", - "description": "Column size for text columns, in number of characters.", - "default": null, - "x-example": 1, - "format": "int32" - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "default": null, - "x-example": false - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "default": null, - "x-example": "<DEFAULT>", - "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "default": false, - "x-example": false - }, - "encrypt": { - "type": "boolean", - "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", - "default": false, - "x-example": false - } - }, - "required": [ - "key", - "size", - "required" - ] - } + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/string\/{key}": { - "patch": { - "summary": "Update string column", - "operationId": "tablesDBUpdateStringColumn", - "consumes": [ - "application\/json" - ], + "\/teams\/{teamId}\/memberships": { + "get": { + "summary": "List team memberships", + "operationId": "teamsListMemberships", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "tablesDB" + "teams" ], - "description": "Update a string column. Changing the `default` value will not update already existing rows.\n", + "description": "Use this endpoint to list a team's members using the team's ID. All team members have read access to this endpoint. Hide sensitive attributes from the response by toggling membership privacy in the Console.", "responses": { "200": { - "description": "ColumnString", + "description": "Memberships List", "schema": { - "$ref": "#\/definitions\/columnString" + "$ref": "#\/definitions\/membershipList" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateStringColumn", - "group": "columns", - "weight": 374, + "method": "listMemberships", + "group": "memberships", + "weight": 586, "cookies": false, "type": "", - "demo": "tablesdb\/update-string-column.md", + "demo": "teams\/list-memberships.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write" - ], + "scope": "teams.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-string-column.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateTextColumn" - }, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/list-team-members.md", "auth": { "Project": [] } @@ -52893,81 +60148,54 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "type": "string", - "x-example": "<DATABASE_ID>", + "x-example": "<TEAM_ID>", "in": "path" }, { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", - "required": true, - "type": "string", - "x-example": "<TABLE_ID>", - "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: userId, teamId, invited, joined, confirm, roles", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" }, { - "name": "key", - "description": "Column Key.", - "required": true, + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, "type": "string", - "in": "path" + "x-example": "<SEARCH>", + "default": "", + "in": "query" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "required": { - "type": "boolean", - "description": "Is column required?", - "default": null, - "x-example": false - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "default": null, - "x-example": "<DEFAULT>", - "x-nullable": true - }, - "size": { - "type": "integer", - "description": "Maximum size of the string column.", - "default": null, - "x-example": 1, - "format": "int32", - "x-nullable": true - }, - "newKey": { - "type": "string", - "description": "New Column Key.", - "default": null, - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "required", - "default" - ] - } + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" } ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/text": { + }, "post": { - "summary": "Create text column", - "operationId": "tablesDBCreateTextColumn", + "summary": "Create team membership", + "operationId": "teamsCreateMembership", "consumes": [ "application\/json" ], @@ -52975,39 +60203,37 @@ "application\/json" ], "tags": [ - "tablesDB" + "teams" ], - "description": "Create a text column.\n", + "description": "Invite a new member to join your team. Provide an ID for existing users, or invite unregistered users using an email or phone number. If initiated from a Client SDK, Appwrite will send an email or sms with a link to join the team to the invited user, and an account will be created for them if one doesn't exist. If initiated from a Server SDK, the new member will be added automatically to the team.\n\nYou only need to provide one of a user ID, email, or phone number. Appwrite will prioritize accepting the user ID > email > phone number if you provide more than one of these parameters.\n\nUse the `url` parameter to redirect the user from the invitation email to your app. After the user is redirected, use the [Update Team Membership Status](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/teams#updateMembershipStatus) endpoint to allow the user to accept the invitation to the team. \n\nPlease note that to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) Appwrite will accept the only redirect URLs under the domains you have added as a platform on the Appwrite Console.\n", "responses": { - "202": { - "description": "ColumnText", + "201": { + "description": "Membership", "schema": { - "$ref": "#\/definitions\/columnText" + "$ref": "#\/definitions\/membership" } } }, "deprecated": false, "x-appwrite": { - "method": "createTextColumn", - "group": "columns", - "weight": 379, + "method": "createMembership", + "group": "memberships", + "weight": 584, "cookies": false, "type": "", - "demo": "tablesdb\/create-text-column.md", - "rate-limit": 0, + "demo": "teams\/create-membership.md", + "rate-limit": 10, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write" - ], + "scope": "teams.write", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-text-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team-membership.md", "auth": { "Project": [] } @@ -53015,24 +60241,17 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "name": "teamId", + "description": "Team ID.", "required": true, "type": "string", - "x-example": "<TABLE_ID>", + "x-example": "<TEAM_ID>", "in": "path" }, { @@ -53041,91 +60260,97 @@ "schema": { "type": "object", "properties": { - "key": { + "email": { "type": "string", - "description": "Column Key.", - "default": null, - "x-example": null + "description": "Email of the new team member.", + "default": "", + "x-example": "email@example.com", + "format": "email" }, - "required": { - "type": "boolean", - "description": "Is column required?", - "default": null, - "x-example": false + "userId": { + "type": "string", + "description": "ID of the user to be added to a team.", + "default": "", + "x-example": "<USER_ID>" }, - "default": { + "phone": { "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", + "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "default": "", + "x-example": "+12065550100", + "format": "phone" + }, + "roles": { + "type": "array", + "description": "Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 81 characters long.", "default": null, - "x-example": "<DEFAULT>", - "x-nullable": true + "x-example": null, + "items": { + "type": "string" + } }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "default": false, - "x-example": false + "url": { + "type": "string", + "description": "URL to redirect the user back to your app from the invitation email. This parameter is not required when an API key is supplied. 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.", + "default": "", + "x-example": "https:\/\/example.com", + "format": "url" }, - "encrypt": { - "type": "boolean", - "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", - "default": false, - "x-example": false + "name": { + "type": "string", + "description": "Name of the new team member. Max length: 128 chars.", + "default": "", + "x-example": "<NAME>" } }, "required": [ - "key", - "required" + "roles" ] } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/text\/{key}": { - "patch": { - "summary": "Update text column", - "operationId": "tablesDBUpdateTextColumn", - "consumes": [ - "application\/json" - ], + "\/teams\/{teamId}\/memberships\/{membershipId}": { + "get": { + "summary": "Get team membership", + "operationId": "teamsGetMembership", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "tablesDB" + "teams" ], - "description": "Update a text column. Changing the `default` value will not update already existing rows.\n", + "description": "Get a team member by the membership unique id. All team members have read access for this resource. Hide sensitive attributes from the response by toggling membership privacy in the Console.", "responses": { "200": { - "description": "ColumnText", + "description": "Membership", "schema": { - "$ref": "#\/definitions\/columnText" + "$ref": "#\/definitions\/membership" } } }, "deprecated": false, "x-appwrite": { - "method": "updateTextColumn", - "group": "columns", - "weight": 380, + "method": "getMembership", + "group": "memberships", + "weight": 585, "cookies": false, "type": "", - "demo": "tablesdb\/update-text-column.md", + "demo": "teams\/get-membership.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write" - ], + "scope": "teams.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-text-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-member.md", "auth": { "Project": [] } @@ -53133,73 +60358,32 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "name": "teamId", + "description": "Team ID.", "required": true, "type": "string", - "x-example": "<TABLE_ID>", + "x-example": "<TEAM_ID>", "in": "path" }, { - "name": "key", - "description": "Column Key.", + "name": "membershipId", + "description": "Membership ID.", "required": true, "type": "string", + "x-example": "<MEMBERSHIP_ID>", "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "required": { - "type": "boolean", - "description": "Is column required?", - "default": null, - "x-example": false - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "default": null, - "x-example": "<DEFAULT>", - "x-nullable": true - }, - "newKey": { - "type": "string", - "description": "New Column Key.", - "default": null, - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "required", - "default" - ] - } } ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/url": { - "post": { - "summary": "Create URL column", - "operationId": "tablesDBCreateUrlColumn", + }, + "patch": { + "summary": "Update team membership", + "operationId": "teamsUpdateMembership", "consumes": [ "application\/json" ], @@ -53207,39 +60391,37 @@ "application\/json" ], "tags": [ - "tablesDB" + "teams" ], - "description": "Create a URL column.\n", + "description": "Modify the roles of a team member. Only team members with the owner role have access to this endpoint. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions).\n", "responses": { - "202": { - "description": "ColumnURL", + "200": { + "description": "Membership", "schema": { - "$ref": "#\/definitions\/columnUrl" + "$ref": "#\/definitions\/membership" } } }, "deprecated": false, "x-appwrite": { - "method": "createUrlColumn", - "group": "columns", - "weight": 375, + "method": "updateMembership", + "group": "memberships", + "weight": 587, "cookies": false, "type": "", - "demo": "tablesdb\/create-url-column.md", + "demo": "teams\/update-membership.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write" - ], + "scope": "teams.write", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-url-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership.md", "auth": { "Project": [] } @@ -53247,24 +60429,25 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "type": "string", - "x-example": "<DATABASE_ID>", + "x-example": "<TEAM_ID>", "in": "path" }, { - "name": "tableId", - "description": "Table ID.", + "name": "membershipId", + "description": "Membership ID.", "required": true, "type": "string", - "x-example": "<TABLE_ID>", + "x-example": "<MEMBERSHIP_ID>", "in": "path" }, { @@ -53273,86 +60456,59 @@ "schema": { "type": "object", "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "default": null, - "x-example": null - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "default": null, - "x-example": false - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", + "roles": { + "type": "array", + "description": "An array of strings. Use this param to set the user's roles in the team. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 81 characters long.", "default": null, - "x-example": "https:\/\/example.com", - "format": "url", - "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "default": false, - "x-example": false + "x-example": null, + "items": { + "type": "string" + } } }, "required": [ - "key", - "required" + "roles" ] } } ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/url\/{key}": { - "patch": { - "summary": "Update URL column", - "operationId": "tablesDBUpdateUrlColumn", + }, + "delete": { + "summary": "Delete team membership", + "operationId": "teamsDeleteMembership", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ - "tablesDB" + "teams" ], - "description": "Update an url column. Changing the `default` value will not update already existing rows.\n", + "description": "This endpoint allows a user to leave a team or for a team owner to delete the membership of any other team member. You can also use this endpoint to delete a user membership even if it is not accepted.", "responses": { - "200": { - "description": "ColumnURL", - "schema": { - "$ref": "#\/definitions\/columnUrl" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateUrlColumn", - "group": "columns", - "weight": 376, + "method": "deleteMembership", + "group": "memberships", + "weight": 803, "cookies": false, "type": "", - "demo": "tablesdb\/update-url-column.md", + "demo": "teams\/delete-membership.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write" - ], + "scope": "teams.write", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-url-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team-membership.md", "auth": { "Project": [] } @@ -53360,74 +60516,34 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "type": "string", - "x-example": "<TABLE_ID>", + "x-example": "<TEAM_ID>", "in": "path" }, { - "name": "key", - "description": "Column Key.", + "name": "membershipId", + "description": "Membership ID.", "required": true, "type": "string", + "x-example": "<MEMBERSHIP_ID>", "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "required": { - "type": "boolean", - "description": "Is column required?", - "default": null, - "x-example": false - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "default": null, - "x-example": "https:\/\/example.com", - "format": "url", - "x-nullable": true - }, - "newKey": { - "type": "string", - "description": "New Column Key.", - "default": null, - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "required", - "default" - ] - } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/varchar": { - "post": { - "summary": "Create varchar column", - "operationId": "tablesDBCreateVarcharColumn", + "\/teams\/{teamId}\/memberships\/{membershipId}\/status": { + "patch": { + "summary": "Update team membership status", + "operationId": "teamsUpdateMembershipStatus", "consumes": [ "application\/json" ], @@ -53435,39 +60551,37 @@ "application\/json" ], "tags": [ - "tablesDB" + "teams" ], - "description": "Create a varchar column.\n", + "description": "Use this endpoint to allow a user to accept an invitation to join a team after being redirected back to your app from the invitation email received by the user.\n\nIf the request is successful, a session for the user is automatically created.\n", "responses": { - "202": { - "description": "ColumnVarchar", + "200": { + "description": "Membership", "schema": { - "$ref": "#\/definitions\/columnVarchar" + "$ref": "#\/definitions\/membership" } } }, "deprecated": false, "x-appwrite": { - "method": "createVarcharColumn", - "group": "columns", - "weight": 377, + "method": "updateMembershipStatus", + "group": "memberships", + "weight": 589, "cookies": false, "type": "", - "demo": "tablesdb\/create-varchar-column.md", + "demo": "teams\/update-membership-status.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write" - ], + "scope": "public", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-varchar-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership-status.md", "auth": { "Project": [] } @@ -53475,24 +60589,24 @@ "security": [ { "Project": [], - "Key": [] + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "type": "string", - "x-example": "<DATABASE_ID>", + "x-example": "<TEAM_ID>", "in": "path" }, { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "name": "membershipId", + "description": "Membership ID.", "required": true, "type": "string", - "x-example": "<TABLE_ID>", + "x-example": "<MEMBERSHIP_ID>", "in": "path" }, { @@ -53501,99 +60615,68 @@ "schema": { "type": "object", "properties": { - "key": { + "userId": { "type": "string", - "description": "Column Key.", - "default": null, - "x-example": null - }, - "size": { - "type": "integer", - "description": "Column size for varchar columns, in number of characters. Maximum size is 16381.", - "default": null, - "x-example": 1, - "format": "int32" - }, - "required": { - "type": "boolean", - "description": "Is column required?", + "description": "User ID.", "default": null, - "x-example": false + "x-example": "<USER_ID>" }, - "default": { + "secret": { "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", + "description": "Secret key.", "default": null, - "x-example": "<DEFAULT>", - "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "default": false, - "x-example": false - }, - "encrypt": { - "type": "boolean", - "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", - "default": false, - "x-example": false + "x-example": "<SECRET>" } }, "required": [ - "key", - "size", - "required" + "userId", + "secret" ] } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/varchar\/{key}": { - "patch": { - "summary": "Update varchar column", - "operationId": "tablesDBUpdateVarcharColumn", - "consumes": [ - "application\/json" - ], + "\/teams\/{teamId}\/prefs": { + "get": { + "summary": "Get team preferences", + "operationId": "teamsGetPrefs", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "tablesDB" + "teams" ], - "description": "Update a varchar column. Changing the `default` value will not update already existing rows.\n", + "description": "Get the team's shared preferences by its unique ID. If a preference doesn't need to be shared by all team members, prefer storing them in [user preferences](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#getPrefs).", "responses": { "200": { - "description": "ColumnVarchar", + "description": "Preferences", "schema": { - "$ref": "#\/definitions\/columnVarchar" + "$ref": "#\/definitions\/preferences" } } }, "deprecated": false, "x-appwrite": { - "method": "updateVarcharColumn", - "group": "columns", - "weight": 378, + "method": "getPrefs", + "group": "teams", + "weight": 582, "cookies": false, "type": "", - "demo": "tablesdb\/update-varchar-column.md", + "demo": "teams\/get-prefs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write" - ], + "scope": "teams.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-varchar-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-prefs.md", "auth": { "Project": [] } @@ -53601,150 +60684,61 @@ "security": [ { "Project": [], - "Key": [] + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", - "required": true, - "type": "string", - "x-example": "<TABLE_ID>", - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", + "name": "teamId", + "description": "Team ID.", "required": true, "type": "string", + "x-example": "<TEAM_ID>", "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "required": { - "type": "boolean", - "description": "Is column required?", - "default": null, - "x-example": false - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "default": null, - "x-example": "<DEFAULT>", - "x-nullable": true - }, - "size": { - "type": "integer", - "description": "Maximum size of the varchar column.", - "default": null, - "x-example": 1, - "format": "int32", - "x-nullable": true - }, - "newKey": { - "type": "string", - "description": "New Column Key.", - "default": null, - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "required", - "default" - ] - } } ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/{key}": { - "get": { - "summary": "Get column", - "operationId": "tablesDBGetColumn", - "consumes": [], - "produces": [ - "application\/json" - ], - "tags": [ - "tablesDB" - ], - "description": "Get column by ID.", - "responses": { - "200": { - "description": "ColumnBoolean, or ColumnInteger, or ColumnFloat, or ColumnEmail, or ColumnEnum, or ColumnURL, or ColumnIP, or ColumnDatetime, or ColumnRelationship, or ColumnString", - "schema": { - "x-oneOf": [ - { - "$ref": "#\/definitions\/columnBoolean" - }, - { - "$ref": "#\/definitions\/columnInteger" - }, - { - "$ref": "#\/definitions\/columnFloat" - }, - { - "$ref": "#\/definitions\/columnEmail" - }, - { - "$ref": "#\/definitions\/columnEnum" - }, - { - "$ref": "#\/definitions\/columnUrl" - }, - { - "$ref": "#\/definitions\/columnIp" - }, - { - "$ref": "#\/definitions\/columnDatetime" - }, - { - "$ref": "#\/definitions\/columnRelationship" - }, - { - "$ref": "#\/definitions\/columnString" - } - ] + }, + "put": { + "summary": "Update team preferences", + "operationId": "teamsUpdatePrefs", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "teams" + ], + "description": "Update the team's preferences by its unique ID. The object you pass is stored as is and replaces any previous value. The maximum allowed prefs size is 64kB and throws an error if exceeded.", + "responses": { + "200": { + "description": "Preferences", + "schema": { + "$ref": "#\/definitions\/preferences" } } }, "deprecated": false, "x-appwrite": { - "method": "getColumn", - "group": "columns", - "weight": 348, + "method": "updatePrefs", + "group": "teams", + "weight": 583, "cookies": false, "type": "", - "demo": "tablesdb\/get-column.md", + "demo": "teams\/update-prefs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.read", - "collections.read" - ], + "scope": "teams.write", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-prefs.md", "auth": { "Project": [] } @@ -53752,73 +60746,77 @@ "security": [ { "Project": [], - "Key": [] + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "type": "string", - "x-example": "<TABLE_ID>", + "x-example": "<TEAM_ID>", "in": "path" }, { - "name": "key", - "description": "Column Key.", - "required": true, - "type": "string", - "in": "path" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "prefs": { + "type": "object", + "description": "Prefs key-value JSON object.", + "default": {}, + "x-example": "{}" + } + }, + "required": [ + "prefs" + ] + } } ] - }, - "delete": { - "summary": "Delete column", - "operationId": "tablesDBDeleteColumn", - "consumes": [ + } + }, + "\/tokens\/buckets\/{bucketId}\/files\/{fileId}": { + "get": { + "summary": "List tokens", + "operationId": "tokensList", + "consumes": [], + "produces": [ "application\/json" ], - "produces": [], "tags": [ - "tablesDB" + "tokens" ], - "description": "Deletes a column.", + "description": "List all the tokens created for a specific file or bucket. You can use the query params to filter your results.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Resource Tokens List", + "schema": { + "$ref": "#\/definitions\/resourceTokenList" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteColumn", - "group": "columns", - "weight": 349, + "method": "list", + "group": "files", + "weight": 593, "cookies": false, "type": "", - "demo": "tablesdb\/delete-column.md", + "demo": "tokens\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write" - ], + "scope": "tokens.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-column.md", "auth": { "Project": [] } @@ -53831,35 +60829,47 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", "required": true, "type": "string", - "x-example": "<DATABASE_ID>", + "x-example": "<BUCKET_ID>", "in": "path" }, { - "name": "tableId", - "description": "Table ID.", + "name": "fileId", + "description": "File unique ID.", "required": true, "type": "string", - "x-example": "<TABLE_ID>", + "x-example": "<FILE_ID>", "in": "path" }, { - "name": "key", - "description": "Column Key.", - "required": true, - "type": "string", - "in": "path" + "name": "queries", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: expire", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" } ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/{key}\/relationship": { - "patch": { - "summary": "Update relationship column", - "operationId": "tablesDBUpdateRelationshipColumn", + }, + "post": { + "summary": "Create file token", + "operationId": "tokensCreateFileToken", "consumes": [ "application\/json" ], @@ -53867,39 +60877,35 @@ "application\/json" ], "tags": [ - "tablesDB" + "tokens" ], - "description": "Update relationship column. [Learn more about relationship columns](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-columns).\n", + "description": "Create a new token. A token is linked to a file. Token can be passed as a request URL search parameter.", "responses": { - "200": { - "description": "ColumnRelationship", + "201": { + "description": "ResourceToken", "schema": { - "$ref": "#\/definitions\/columnRelationship" + "$ref": "#\/definitions\/resourceToken" } } }, "deprecated": false, "x-appwrite": { - "method": "updateRelationshipColumn", - "group": "columns", - "weight": 372, + "method": "createFileToken", + "group": "files", + "weight": 591, "cookies": false, "type": "", - "demo": "tablesdb\/update-relationship-column.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write" - ], + "demo": "tokens\/create-file-token.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "tokens.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-relationship-column.md", "auth": { "Project": [] } @@ -53912,26 +60918,19 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", "required": true, "type": "string", - "x-example": "<TABLE_ID>", + "x-example": "<BUCKET_ID>", "in": "path" }, { - "name": "key", - "description": "Column Key.", + "name": "fileId", + "description": "File unique ID.", "required": true, "type": "string", + "x-example": "<FILE_ID>", "in": "path" }, { @@ -53940,23 +60939,9 @@ "schema": { "type": "object", "properties": { - "onDelete": { - "type": "string", - "description": "Constraints option", - "default": null, - "x-example": "cascade", - "enum": [ - "cascade", - "restrict", - "setNull" - ], - "x-enum-name": "RelationMutate", - "x-enum-keys": [], - "x-nullable": true - }, - "newKey": { + "expire": { "type": "string", - "description": "New Column Key.", + "description": "Token expiry date", "default": null, "x-example": null, "x-nullable": true @@ -53967,48 +60952,44 @@ ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/indexes": { + "\/tokens\/{tokenId}": { "get": { - "summary": "List indexes", - "operationId": "tablesDBListIndexes", + "summary": "Get token", + "operationId": "tokensGet", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "tablesDB" + "tokens" ], - "description": "List indexes on the table.", + "description": "Get a token by its unique ID.", "responses": { "200": { - "description": "Column Indexes List", + "description": "ResourceToken", "schema": { - "$ref": "#\/definitions\/columnIndexList" + "$ref": "#\/definitions\/resourceToken" } } }, "deprecated": false, "x-appwrite": { - "method": "listIndexes", - "group": "indexes", - "weight": 388, + "method": "get", + "group": "tokens", + "weight": 592, "cookies": false, "type": "", - "demo": "tablesdb\/list-indexes.md", + "demo": "tokens\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.read", - "collections.read" - ], + "scope": "tokens.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-indexes.md", "auth": { "Project": [] } @@ -54021,47 +61002,18 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "name": "tokenId", + "description": "Token ID.", "required": true, "type": "string", - "x-example": "<TABLE_ID>", + "x-example": "<TOKEN_ID>", "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 columns: key, type, status, attributes, error", - "required": false, - "type": "array", - "collectionFormat": "multi", - "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, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" } ] }, - "post": { - "summary": "Create index", - "operationId": "tablesDBCreateIndex", + "patch": { + "summary": "Update token", + "operationId": "tokensUpdate", "consumes": [ "application\/json" ], @@ -54069,39 +61021,35 @@ "application\/json" ], "tags": [ - "tablesDB" + "tokens" ], - "description": "Creates an index on the columns listed. Your index should include all the columns you will query in a single request.\nType can be `key`, `fulltext`, or `unique`.", + "description": "Update a token by its unique ID. Use this endpoint to update a token's expiry date.", "responses": { - "202": { - "description": "Index", + "200": { + "description": "ResourceToken", "schema": { - "$ref": "#\/definitions\/columnIndex" + "$ref": "#\/definitions\/resourceToken" } } }, "deprecated": false, "x-appwrite": { - "method": "createIndex", - "group": "indexes", - "weight": 385, + "method": "update", + "group": "tokens", + "weight": 594, "cookies": false, "type": "", - "demo": "tablesdb\/create-index.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write" - ], + "demo": "tokens\/update.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "tokens.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-index.md", "auth": { "Project": [] } @@ -54114,19 +61062,11 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "name": "tokenId", + "description": "Token unique ID.", "required": true, "type": "string", - "x-example": "<TABLE_ID>", + "x-example": "<TOKEN_ID>", "in": "path" }, { @@ -54135,112 +61075,113 @@ "schema": { "type": "object", "properties": { - "key": { - "type": "string", - "description": "Index Key.", - "default": null, - "x-example": null - }, - "type": { + "expire": { "type": "string", - "description": "Index type.", - "default": null, - "x-example": "key", - "enum": [ - "key", - "fulltext", - "unique", - "spatial" - ], - "x-enum-name": "IndexType", - "x-enum-keys": [] - }, - "columns": { - "type": "array", - "description": "Array of columns to index. Maximum of 100 columns are allowed, each 32 characters long.", + "description": "File token expiry date", "default": null, "x-example": null, - "items": { - "type": "string" - } - }, - "orders": { - "type": "array", - "description": "Array of index orders. Maximum of 100 orders are allowed.", - "default": [], - "x-example": null, - "items": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "x-enum-name": "OrderBy", - "x-enum-keys": [] - } - }, - "lengths": { - "type": "array", - "description": "Length of index. Maximum of 100", - "default": [], - "x-example": null, - "items": { - "type": "integer" - } + "x-nullable": true } - }, - "required": [ - "key", - "type", - "columns" - ] + } } } ] + }, + "delete": { + "summary": "Delete token", + "operationId": "tokensDelete", + "consumes": [ + "application\/json" + ], + "produces": [], + "tags": [ + "tokens" + ], + "description": "Delete a token by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "delete", + "group": "tokens", + "weight": 595, + "cookies": false, + "type": "", + "demo": "tokens\/delete.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "tokens.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "tokenId", + "description": "Token ID.", + "required": true, + "type": "string", + "x-example": "<TOKEN_ID>", + "in": "path" + } + ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/indexes\/{key}": { + "\/users": { "get": { - "summary": "Get index", - "operationId": "tablesDBGetIndex", + "summary": "List users", + "operationId": "usersList", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "tablesDB" + "users" ], - "description": "Get index by ID.", + "description": "Get a list of all the project's users. You can use the query params to filter your results.", "responses": { "200": { - "description": "Index", + "description": "Users List", "schema": { - "$ref": "#\/definitions\/columnIndex" + "$ref": "#\/definitions\/userList" } } }, "deprecated": false, "x-appwrite": { - "method": "getIndex", - "group": "indexes", - "weight": 386, + "method": "list", + "group": "users", + "weight": 115, "cookies": false, "type": "", - "demo": "tablesdb\/get-index.md", + "demo": "users\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.read", - "collections.read" - ], + "scope": "users.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-index.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-users.md", "auth": { "Project": [] } @@ -54253,68 +61194,77 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "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, email, phone, status, passwordUpdate, registration, emailVerification, phoneVerification, labels", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" }, { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", - "required": true, + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, "type": "string", - "x-example": "<TABLE_ID>", - "in": "path" + "x-example": "<SEARCH>", + "default": "", + "in": "query" }, { - "name": "key", - "description": "Index Key.", - "required": true, - "type": "string", - "in": "path" + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" } ] }, - "delete": { - "summary": "Delete index", - "operationId": "tablesDBDeleteIndex", + "post": { + "summary": "Create user", + "operationId": "usersCreate", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ - "tablesDB" + "users" ], - "description": "Delete an index.", + "description": "Create a new user.", "responses": { - "204": { - "description": "No content" + "201": { + "description": "User", + "schema": { + "$ref": "#\/definitions\/user" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteIndex", - "group": "indexes", - "weight": 387, + "method": "create", + "group": "users", + "weight": 106, "cookies": false, "type": "", - "demo": "tablesdb\/delete-index.md", + "demo": "users\/create.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write" - ], + "scope": "users.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-index.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-user.md", "auth": { "Project": [] } @@ -54327,156 +61277,190 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", - "required": true, - "type": "string", - "x-example": "<TABLE_ID>", - "in": "path" - }, - { - "name": "key", - "description": "Index Key.", - "required": true, - "type": "string", - "in": "path" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "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.", + "default": null, + "x-example": "<USER_ID>" + }, + "email": { + "type": "string", + "description": "User email.", + "default": null, + "x-example": "email@example.com", + "format": "email", + "x-nullable": true + }, + "phone": { + "type": "string", + "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "default": null, + "x-example": "+12065550100", + "format": "phone", + "x-nullable": true + }, + "password": { + "type": "string", + "description": "Plain text user password. Must be at least 8 chars.", + "default": "", + "x-example": null + }, + "name": { + "type": "string", + "description": "User name. Max length: 128 chars.", + "default": "", + "x-example": "<NAME>" + } + }, + "required": [ + "userId" + ] + } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/logs": { - "get": { - "summary": "List table logs", - "operationId": "tablesDBListTableLogs", - "consumes": [], + "\/users\/argon2": { + "post": { + "summary": "Create user with Argon2 password", + "operationId": "usersCreateArgon2User", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "tablesDB" + "users" ], - "description": "Get the table activity logs list by its unique ID.", + "description": "Create a new user. Password provided must be hashed with the [Argon2](https:\/\/en.wikipedia.org\/wiki\/Argon2) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", "responses": { - "200": { - "description": "Logs List", + "201": { + "description": "User", "schema": { - "$ref": "#\/definitions\/logList" + "$ref": "#\/definitions\/user" } } }, "deprecated": false, "x-appwrite": { - "method": "listTableLogs", - "group": "tables", - "weight": 346, + "method": "createArgon2User", + "group": "users", + "weight": 109, "cookies": false, "type": "", - "demo": "tablesdb\/list-table-logs.md", + "demo": "users\/create-argon-2-user.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.read", - "collections.read" - ], + "scope": "users.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-table-logs.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-argon2-user.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "type": "string", - "x-example": "<TABLE_ID>", - "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). Only supported methods are limit and offset", - "required": false, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "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.", + "default": null, + "x-example": "<USER_ID>" + }, + "email": { + "type": "string", + "description": "User email.", + "default": null, + "x-example": "email@example.com", + "format": "email" + }, + "password": { + "type": "string", + "description": "User password hashed using Argon2.", + "default": null, + "x-example": "password", + "format": "password" + }, + "name": { + "type": "string", + "description": "User name. Max length: 128 chars.", + "default": "", + "x-example": "<NAME>" + } + }, + "required": [ + "userId", + "email", + "password" + ] + } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows": { - "get": { - "summary": "List rows", - "operationId": "tablesDBListRows", - "consumes": [], + "\/users\/bcrypt": { + "post": { + "summary": "Create user with bcrypt password", + "operationId": "usersCreateBcryptUser", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "tablesDB" + "users" ], - "description": "Get a list of all the user's rows in a given table. You can use the query params to filter your results.", + "description": "Create a new user. Password provided must be hashed with the [Bcrypt](https:\/\/en.wikipedia.org\/wiki\/Bcrypt) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", "responses": { - "200": { - "description": "Rows List", + "201": { + "description": "User", "schema": { - "$ref": "#\/definitions\/rowList" + "$ref": "#\/definitions\/user" } } }, "deprecated": false, "x-appwrite": { - "method": "listRows", - "group": "rows", - "weight": 397, + "method": "createBcryptUser", + "group": "users", + "weight": 107, "cookies": false, "type": "", - "demo": "tablesdb\/list-rows.md", + "demo": "users\/create-bcrypt-user.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "rows.read", - "documents.read" - ], + "scope": "users.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-rows.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-bcrypt-user.md", "auth": { "Project": [] } @@ -54484,163 +61468,92 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/products\/databases\/tables#create-table).", - "required": true, - "type": "string", - "x-example": "<TABLE_ID>", - "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, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" - }, - { - "name": "transactionId", - "description": "Transaction ID to read uncommitted changes within the transaction.", - "required": false, - "type": "string", - "x-example": "<TRANSACTION_ID>", - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "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.", + "default": null, + "x-example": "<USER_ID>" + }, + "email": { + "type": "string", + "description": "User email.", + "default": null, + "x-example": "email@example.com", + "format": "email" + }, + "password": { + "type": "string", + "description": "User password hashed using Bcrypt.", + "default": null, + "x-example": "password", + "format": "password" + }, + "name": { + "type": "string", + "description": "User name. Max length: 128 chars.", + "default": "", + "x-example": "<NAME>" + } + }, + "required": [ + "userId", + "email", + "password" + ] + } } ] - }, - "post": { - "summary": "Create row", - "operationId": "tablesDBCreateRow", - "consumes": [ - "application\/json" - ], + } + }, + "\/users\/identities": { + "get": { + "summary": "List identities", + "operationId": "usersListIdentities", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "tablesDB" + "users" ], - "description": "Create a new Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "description": "Get identities for all users.", "responses": { - "201": { - "description": "Row", + "200": { + "description": "Identities List", "schema": { - "$ref": "#\/definitions\/row" + "$ref": "#\/definitions\/identityList" } } }, "deprecated": false, "x-appwrite": { - "method": "createRow", - "group": "rows", - "weight": 389, + "method": "listIdentities", + "group": "identities", + "weight": 123, "cookies": false, "type": "", - "demo": "tablesdb\/create-row.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": [ - "rows.write", - "documents.write" - ], + "demo": "users\/list-identities.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-row.md", - "methods": [ - { - "name": "createRow", - "namespace": "tablesDB", - "desc": "Create row", - "auth": { - "Project": [] - }, - "parameters": [ - "databaseId", - "tableId", - "rowId", - "data", - "permissions", - "transactionId" - ], - "required": [ - "databaseId", - "tableId", - "rowId", - "data" - ], - "responses": [ - { - "code": 201, - "model": "#\/definitions\/row" - } - ], - "description": "Create a new Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", - "demo": "tablesdb\/create-row.md", - "public": true - }, - { - "name": "createRows", - "namespace": "tablesDB", - "desc": "Create rows", - "auth": { - "Project": [] - }, - "parameters": [ - "databaseId", - "tableId", - "rows", - "transactionId" - ], - "required": [ - "databaseId", - "tableId", - "rows" - ], - "responses": [ - { - "code": 201, - "model": "#\/definitions\/rowList" - } - ], - "description": "Create new Rows. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", - "demo": "tablesdb\/create-rows.md", - "public": true - } - ], + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-identities.md", "auth": { "Project": [] } @@ -54648,149 +61561,79 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable). Make sure to define columns before creating rows.", - "required": true, - "type": "string", - "x-example": "<TABLE_ID>", - "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "rowId": { - "type": "string", - "description": "Row ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": "", - "x-example": "<ROW_ID>" - }, - "data": { - "type": "object", - "description": "Row data as JSON object.", - "default": [], - "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":30,\"isAdmin\":false}" - }, - "permissions": { - "type": "array", - "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).", - "default": null, - "x-example": "[\"read(\"any\")\"]", - "x-nullable": true, - "items": { - "type": "string" - } - }, - "rows": { - "type": "array", - "description": "Array of rows data as JSON objects.", - "default": [], - "x-example": null, - "items": { - "type": "object" - } - }, - "transactionId": { - "type": "string", - "description": "Transaction ID for staging the operation.", - "default": null, - "x-example": "<TRANSACTION_ID>", - "x-nullable": true - } - } - } + "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, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "type": "string", + "x-example": "<SEARCH>", + "default": "", + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" } ] - }, - "put": { - "summary": "Upsert rows", - "operationId": "tablesDBUpsertRows", + } + }, + "\/users\/identities\/{identityId}": { + "delete": { + "summary": "Delete identity", + "operationId": "usersDeleteIdentity", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ - "tablesDB" + "users" ], - "description": "Create or update Rows. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.\n", + "description": "Delete an identity by its unique ID.", "responses": { - "201": { - "description": "Rows List", - "schema": { - "$ref": "#\/definitions\/rowList" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "upsertRows", - "group": "rows", - "weight": 394, + "method": "deleteIdentity", + "group": "identities", + "weight": 146, "cookies": false, "type": "", - "demo": "tablesdb\/upsert-rows.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": [ - "rows.write", - "documents.write" - ], + "demo": "users\/delete-identity.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/upsert-rows.md", - "methods": [ - { - "name": "upsertRows", - "namespace": "tablesDB", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "databaseId", - "tableId", - "rows", - "transactionId" - ], - "required": [ - "databaseId", - "tableId", - "rows" - ], - "responses": [ - { - "code": 201, - "model": "#\/definitions\/rowList" - } - ], - "description": "Create or update Rows. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.\n", - "demo": "tablesdb\/upsert-rows.md", - "public": true - } - ], + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-identity.md", "auth": { "Project": [] } @@ -54803,54 +61646,20 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", + "name": "identityId", + "description": "Identity ID.", "required": true, "type": "string", - "x-example": "<TABLE_ID>", + "x-example": "<IDENTITY_ID>", "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "rows": { - "type": "array", - "description": "Array of row data as JSON objects. May contain partial rows.", - "default": null, - "x-example": null, - "items": { - "type": "object" - } - }, - "transactionId": { - "type": "string", - "description": "Transaction ID for staging the operation.", - "default": null, - "x-example": "<TRANSACTION_ID>", - "x-nullable": true - } - }, - "required": [ - "rows" - ] - } } ] - }, - "patch": { - "summary": "Update rows", - "operationId": "tablesDBUpdateRows", + } + }, + "\/users\/md5": { + "post": { + "summary": "Create user with MD5 password", + "operationId": "usersCreateMD5User", "consumes": [ "application\/json" ], @@ -54858,39 +61667,36 @@ "application\/json" ], "tags": [ - "tablesDB" + "users" ], - "description": "Update all rows that match your queries, if no queries are submitted then all rows are updated. You can pass only specific fields to be updated.", + "description": "Create a new user. Password provided must be hashed with the [MD5](https:\/\/en.wikipedia.org\/wiki\/MD5) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", "responses": { - "200": { - "description": "Rows List", + "201": { + "description": "User", "schema": { - "$ref": "#\/definitions\/rowList" + "$ref": "#\/definitions\/user" } } }, "deprecated": false, "x-appwrite": { - "method": "updateRows", - "group": "rows", - "weight": 392, + "method": "createMD5User", + "group": "users", + "weight": 108, "cookies": false, "type": "", - "demo": "tablesdb\/update-rows.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": [ - "rows.write", - "documents.write" - ], + "demo": "users\/create-md-5-user.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-rows.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-md5-user.md", "auth": { "Project": [] } @@ -54902,58 +61708,53 @@ } ], "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "type": "string", - "x-example": "<TABLE_ID>", - "in": "path" - }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "data": { - "type": "object", - "description": "Row data as JSON object. Include only column and value pairs to be updated.", - "default": [], - "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":33,\"isAdmin\":false}" + "userId": { + "type": "string", + "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.", + "default": null, + "x-example": "<USER_ID>" }, - "queries": { - "type": "array", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } + "email": { + "type": "string", + "description": "User email.", + "default": null, + "x-example": "email@example.com", + "format": "email" }, - "transactionId": { + "password": { "type": "string", - "description": "Transaction ID for staging the operation.", + "description": "User password hashed using MD5.", "default": null, - "x-example": "<TRANSACTION_ID>", - "x-nullable": true + "x-example": "password", + "format": "password" + }, + "name": { + "type": "string", + "description": "User name. Max length: 128 chars.", + "default": "", + "x-example": "<NAME>" } - } + }, + "required": [ + "userId", + "email", + "password" + ] } } ] - }, - "delete": { - "summary": "Delete rows", - "operationId": "tablesDBDeleteRows", + } + }, + "\/users\/phpass": { + "post": { + "summary": "Create user with PHPass password", + "operationId": "usersCreatePHPassUser", "consumes": [ "application\/json" ], @@ -54961,39 +61762,36 @@ "application\/json" ], "tags": [ - "tablesDB" + "users" ], - "description": "Bulk delete rows using queries, if no queries are passed then all rows are deleted.", + "description": "Create a new user. Password provided must be hashed with the [PHPass](https:\/\/www.openwall.com\/phpass\/) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", "responses": { - "200": { - "description": "Rows List", + "201": { + "description": "User", "schema": { - "$ref": "#\/definitions\/rowList" + "$ref": "#\/definitions\/user" } } }, "deprecated": false, "x-appwrite": { - "method": "deleteRows", - "group": "rows", - "weight": 396, + "method": "createPHPassUser", + "group": "users", + "weight": 111, "cookies": false, "type": "", - "demo": "tablesdb\/delete-rows.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": [ - "rows.write", - "documents.write" - ], + "demo": "users\/create-ph-pass-user.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-rows.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-phpass-user.md", "auth": { "Project": [] } @@ -55005,93 +61803,90 @@ } ], "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", - "required": true, - "type": "string", - "x-example": "<TABLE_ID>", - "in": "path" - }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "queries": { - "type": "array", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } + "userId": { + "type": "string", + "description": "User ID. Choose a custom ID or pass the string `ID.unique()`to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "default": null, + "x-example": "<USER_ID>" }, - "transactionId": { + "email": { "type": "string", - "description": "Transaction ID for staging the operation.", + "description": "User email.", "default": null, - "x-example": "<TRANSACTION_ID>", - "x-nullable": true + "x-example": "email@example.com", + "format": "email" + }, + "password": { + "type": "string", + "description": "User password hashed using PHPass.", + "default": null, + "x-example": "password", + "format": "password" + }, + "name": { + "type": "string", + "description": "User name. Max length: 128 chars.", + "default": "", + "x-example": "<NAME>" } - } + }, + "required": [ + "userId", + "email", + "password" + ] } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}": { - "get": { - "summary": "Get row", - "operationId": "tablesDBGetRow", - "consumes": [], + "\/users\/scrypt": { + "post": { + "summary": "Create user with Scrypt password", + "operationId": "usersCreateScryptUser", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "tablesDB" + "users" ], - "description": "Get a row by its unique ID. This endpoint response returns a JSON object with the row data.", + "description": "Create a new user. Password provided must be hashed with the [Scrypt](https:\/\/github.com\/Tarsnap\/scrypt) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", "responses": { - "200": { - "description": "Row", + "201": { + "description": "User", "schema": { - "$ref": "#\/definitions\/row" + "$ref": "#\/definitions\/user" } } }, "deprecated": false, "x-appwrite": { - "method": "getRow", - "group": "rows", - "weight": 390, + "method": "createScryptUser", + "group": "users", + "weight": 112, "cookies": false, "type": "", - "demo": "tablesdb\/get-row.md", + "demo": "users\/create-scrypt-user.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "rows.read", - "documents.read" - ], + "scope": "users.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-row.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-scrypt-user.md", "auth": { "Project": [] } @@ -55099,60 +61894,96 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", - "required": true, - "type": "string", - "x-example": "<TABLE_ID>", - "in": "path" - }, - { - "name": "rowId", - "description": "Row ID.", - "required": true, - "type": "string", - "x-example": "<ROW_ID>", - "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, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" - }, - { - "name": "transactionId", - "description": "Transaction ID to read uncommitted changes within the transaction.", - "required": false, - "type": "string", - "x-example": "<TRANSACTION_ID>", - "in": "query" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "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.", + "default": null, + "x-example": "<USER_ID>" + }, + "email": { + "type": "string", + "description": "User email.", + "default": null, + "x-example": "email@example.com", + "format": "email" + }, + "password": { + "type": "string", + "description": "User password hashed using Scrypt.", + "default": null, + "x-example": "password", + "format": "password" + }, + "passwordSalt": { + "type": "string", + "description": "Optional salt used to hash password.", + "default": null, + "x-example": "<PASSWORD_SALT>" + }, + "passwordCpu": { + "type": "integer", + "description": "Optional CPU cost used to hash password.", + "default": null, + "x-example": null, + "format": "int32" + }, + "passwordMemory": { + "type": "integer", + "description": "Optional memory cost used to hash password.", + "default": null, + "x-example": null, + "format": "int32" + }, + "passwordParallel": { + "type": "integer", + "description": "Optional parallelization cost used to hash password.", + "default": null, + "x-example": null, + "format": "int32" + }, + "passwordLength": { + "type": "integer", + "description": "Optional hash length used to hash password.", + "default": null, + "x-example": null, + "format": "int32" + }, + "name": { + "type": "string", + "description": "User name. Max length: 128 chars.", + "default": "", + "x-example": "<NAME>" + } + }, + "required": [ + "userId", + "email", + "password", + "passwordSalt", + "passwordCpu", + "passwordMemory", + "passwordParallel", + "passwordLength" + ] + } } ] - }, - "put": { - "summary": "Upsert a row", - "operationId": "tablesDBUpsertRow", + } + }, + "\/users\/scrypt-modified": { + "post": { + "summary": "Create user with Scrypt modified password", + "operationId": "usersCreateScryptModifiedUser", "consumes": [ "application\/json" ], @@ -55160,72 +61991,36 @@ "application\/json" ], "tags": [ - "tablesDB" + "users" ], - "description": "Create or update a Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "description": "Create a new user. Password provided must be hashed with the [Scrypt Modified](https:\/\/gist.github.com\/Meldiron\/eecf84a0225eccb5a378d45bb27462cc) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", "responses": { "201": { - "description": "Row", + "description": "User", "schema": { - "$ref": "#\/definitions\/row" + "$ref": "#\/definitions\/user" } } }, "deprecated": false, "x-appwrite": { - "method": "upsertRow", - "group": "rows", - "weight": 393, + "method": "createScryptModifiedUser", + "group": "users", + "weight": 113, "cookies": false, "type": "", - "demo": "tablesdb\/upsert-row.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": [ - "rows.write", - "documents.write" - ], + "demo": "users\/create-scrypt-modified-user.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/upsert-row.md", - "methods": [ - { - "name": "upsertRow", - "namespace": "tablesDB", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "databaseId", - "tableId", - "rowId", - "data", - "permissions", - "transactionId" - ], - "required": [ - "databaseId", - "tableId", - "rowId" - ], - "responses": [ - { - "code": 201, - "model": "#\/definitions\/row" - } - ], - "description": "Create or update a Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", - "demo": "tablesdb\/upsert-row.md", - "public": true - } - ], + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-scrypt-modified-user.md", "auth": { "Project": [] } @@ -55233,72 +62028,78 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "type": "string", - "x-example": "<TABLE_ID>", - "in": "path" - }, - { - "name": "rowId", - "description": "Row ID.", - "required": true, - "type": "string", - "x-example": "<ROW_ID>", - "in": "path" - }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "data": { - "type": "object", - "description": "Row data as JSON object. Include all required columns of the row to be created or updated.", - "default": [], - "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":33,\"isAdmin\":false}" + "userId": { + "type": "string", + "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.", + "default": null, + "x-example": "<USER_ID>" }, - "permissions": { - "type": "array", - "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "email": { + "type": "string", + "description": "User email.", "default": null, - "x-example": "[\"read(\"any\")\"]", - "x-nullable": true, - "items": { - "type": "string" - } + "x-example": "email@example.com", + "format": "email" }, - "transactionId": { + "password": { "type": "string", - "description": "Transaction ID for staging the operation.", + "description": "User password hashed using Scrypt Modified.", "default": null, - "x-example": "<TRANSACTION_ID>", - "x-nullable": true + "x-example": "password", + "format": "password" + }, + "passwordSalt": { + "type": "string", + "description": "Salt used to hash password.", + "default": null, + "x-example": "<PASSWORD_SALT>" + }, + "passwordSaltSeparator": { + "type": "string", + "description": "Salt separator used to hash password.", + "default": null, + "x-example": "<PASSWORD_SALT_SEPARATOR>" + }, + "passwordSignerKey": { + "type": "string", + "description": "Signer key used to hash password.", + "default": null, + "x-example": "<PASSWORD_SIGNER_KEY>" + }, + "name": { + "type": "string", + "description": "User name. Max length: 128 chars.", + "default": "", + "x-example": "<NAME>" } - } + }, + "required": [ + "userId", + "email", + "password", + "passwordSalt", + "passwordSaltSeparator", + "passwordSignerKey" + ] } } ] - }, - "patch": { - "summary": "Update row", - "operationId": "tablesDBUpdateRow", + } + }, + "\/users\/sha": { + "post": { + "summary": "Create user with SHA password", + "operationId": "usersCreateSHAUser", "consumes": [ "application\/json" ], @@ -55306,40 +62107,36 @@ "application\/json" ], "tags": [ - "tablesDB" + "users" ], - "description": "Update a row by its unique ID. Using the patch method you can pass only specific fields that will get updated.", + "description": "Create a new user. Password provided must be hashed with the [SHA](https:\/\/en.wikipedia.org\/wiki\/Secure_Hash_Algorithm) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", "responses": { - "200": { - "description": "Row", + "201": { + "description": "User", "schema": { - "$ref": "#\/definitions\/row" + "$ref": "#\/definitions\/user" } } }, "deprecated": false, "x-appwrite": { - "method": "updateRow", - "group": "rows", - "weight": 391, + "method": "createSHAUser", + "group": "users", + "weight": 110, "cookies": false, "type": "", - "demo": "tablesdb\/update-row.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": [ - "rows.write", - "documents.write" - ], + "demo": "users\/create-sha-user.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-row.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-sha-user.md", "auth": { "Project": [] } @@ -55347,298 +62144,240 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "type": "string", - "x-example": "<TABLE_ID>", - "in": "path" - }, - { - "name": "rowId", - "description": "Row ID.", - "required": true, - "type": "string", - "x-example": "<ROW_ID>", - "in": "path" - }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "data": { - "type": "object", - "description": "Row data as JSON object. Include only columns and value pairs to be updated.", - "default": [], - "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":33,\"isAdmin\":false}" + "userId": { + "type": "string", + "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.", + "default": null, + "x-example": "<USER_ID>" }, - "permissions": { - "type": "array", - "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "email": { + "type": "string", + "description": "User email.", "default": null, - "x-example": "[\"read(\"any\")\"]", - "x-nullable": true, - "items": { - "type": "string" - } + "x-example": "email@example.com", + "format": "email" }, - "transactionId": { + "password": { "type": "string", - "description": "Transaction ID for staging the operation.", + "description": "User password hashed using SHA.", "default": null, - "x-example": "<TRANSACTION_ID>", - "x-nullable": true + "x-example": "password", + "format": "password" + }, + "passwordVersion": { + "type": "string", + "description": "Optional SHA version used to hash password. Allowed values are: 'sha1', 'sha224', 'sha256', 'sha384', 'sha512\/224', 'sha512\/256', 'sha512', 'sha3-224', 'sha3-256', 'sha3-384', 'sha3-512'", + "default": "", + "x-example": "sha1", + "enum": [ + "sha1", + "sha224", + "sha256", + "sha384", + "sha512\/224", + "sha512\/256", + "sha512", + "sha3-224", + "sha3-256", + "sha3-384", + "sha3-512" + ], + "x-enum-name": "PasswordHash", + "x-enum-keys": [] + }, + "name": { + "type": "string", + "description": "User name. Max length: 128 chars.", + "default": "", + "x-example": "<NAME>" } - } + }, + "required": [ + "userId", + "email", + "password" + ] } } ] - }, - "delete": { - "summary": "Delete row", - "operationId": "tablesDBDeleteRow", - "consumes": [ + } + }, + "\/users\/usage": { + "get": { + "summary": "Get users usage stats", + "operationId": "usersGetUsage", + "consumes": [], + "produces": [ "application\/json" ], - "produces": [], "tags": [ - "tablesDB" + "users" ], - "description": "Delete a row by its unique ID.", + "description": "Get usage metrics and statistics for all users in the project. You can view the total number of users and sessions. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.\n", "responses": { - "204": { - "description": "No content" + "200": { + "description": "UsageUsers", + "schema": { + "$ref": "#\/definitions\/usageUsers" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteRow", - "group": "rows", - "weight": 395, + "method": "getUsage", + "group": null, + "weight": 148, "cookies": false, "type": "", - "demo": "tablesdb\/delete-row.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": [ - "rows.write", - "documents.write" - ], + "demo": "users\/get-usage.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", "platforms": [ - "console", - "client", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-row.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-usage.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [], - "JWT": [] + "Project": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", - "required": true, - "type": "string", - "x-example": "<TABLE_ID>", - "in": "path" - }, - { - "name": "rowId", - "description": "Row ID.", - "required": true, + "name": "range", + "description": "Date range.", + "required": false, "type": "string", - "x-example": "<ROW_ID>", - "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "transactionId": { - "type": "string", - "description": "Transaction ID for staging the operation.", - "default": null, - "x-example": "<TRANSACTION_ID>", - "x-nullable": true - } - } - } + "x-example": "24h", + "enum": [ + "24h", + "30d", + "90d" + ], + "x-enum-name": "UsageRange", + "x-enum-keys": [ + "Twenty Four Hours", + "Thirty Days", + "Ninety Days" + ], + "default": "30d", + "in": "query" } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}\/logs": { + "\/users\/{userId}": { "get": { - "summary": "List row logs", - "operationId": "tablesDBListRowLogs", + "summary": "Get user", + "operationId": "usersGet", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "tablesDB" + "users" ], - "description": "Get the row activity logs list by its unique ID.", + "description": "Get a user by its unique ID.", "responses": { "200": { - "description": "Logs List", + "description": "User", "schema": { - "$ref": "#\/definitions\/logList" + "$ref": "#\/definitions\/user" } } }, "deprecated": false, "x-appwrite": { - "method": "listRowLogs", - "group": "logs", - "weight": 398, + "method": "get", + "group": "users", + "weight": 116, "cookies": false, "type": "", - "demo": "tablesdb\/list-row-logs.md", + "demo": "users\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "rows.read", - "documents.read" - ], + "scope": "users.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-row-logs.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "type": "string", - "x-example": "<TABLE_ID>", - "in": "path" - }, - { - "name": "rowId", - "description": "Row ID.", + "name": "userId", + "description": "User ID.", "required": true, "type": "string", - "x-example": "<ROW_ID>", + "x-example": "<USER_ID>", "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). Only supported methods are limit and offset", - "required": false, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" } ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}\/{column}\/decrement": { - "patch": { - "summary": "Decrement row column", - "operationId": "tablesDBDecrementRowColumn", + }, + "delete": { + "summary": "Delete user", + "operationId": "usersDelete", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ - "tablesDB" + "users" ], - "description": "Decrement a specific column of a row by a given value.", + "description": "Delete a user by its unique ID, thereby releasing it's ID. Since ID is released and can be reused, all user-related resources like documents or storage files should be deleted before user deletion. If you want to keep ID reserved, use the [updateStatus](https:\/\/appwrite.io\/docs\/server\/users#usersUpdateStatus) endpoint instead.", "responses": { - "200": { - "description": "Row", - "schema": { - "$ref": "#\/definitions\/row" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "decrementRowColumn", - "group": "rows", - "weight": 400, + "method": "delete", + "group": "users", + "weight": 144, "cookies": false, "type": "", - "demo": "tablesdb\/decrement-row-column.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": [ - "rows.write", - "documents.write" - ], + "demo": "users\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", "platforms": [ - "client", - "server", - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/decrement-row-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete.md", "auth": { "Project": [] } @@ -55646,80 +62385,25 @@ "security": [ { "Project": [], - "JWT": [], "Key": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "type": "string", - "x-example": "<TABLE_ID>", - "in": "path" - }, - { - "name": "rowId", - "description": "Row ID.", - "required": true, - "type": "string", - "x-example": "<ROW_ID>", - "in": "path" - }, - { - "name": "column", - "description": "Column key.", + "name": "userId", + "description": "User ID.", "required": true, "type": "string", + "x-example": "<USER_ID>", "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "value": { - "type": "number", - "description": "Value to increment the column by. The value must be a number.", - "default": 1, - "x-example": null, - "format": "float" - }, - "min": { - "type": "number", - "description": "Minimum value for the column. If the current value is lesser than this value, an exception will be thrown.", - "default": null, - "x-example": null, - "format": "float", - "x-nullable": true - }, - "transactionId": { - "type": "string", - "description": "Transaction ID for staging the operation.", - "default": null, - "x-example": "<TRANSACTION_ID>", - "x-nullable": true - } - } - } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}\/{column}\/increment": { + "\/users\/{userId}\/email": { "patch": { - "summary": "Increment row column", - "operationId": "tablesDBIncrementRowColumn", + "summary": "Update email", + "operationId": "usersUpdateEmail", "consumes": [ "application\/json" ], @@ -55727,40 +62411,36 @@ "application\/json" ], "tags": [ - "tablesDB" + "users" ], - "description": "Increment a specific column of a row by a given value.", + "description": "Update the user email by its unique ID.", "responses": { "200": { - "description": "Row", + "description": "User", "schema": { - "$ref": "#\/definitions\/row" + "$ref": "#\/definitions\/user" } } }, "deprecated": false, "x-appwrite": { - "method": "incrementRowColumn", - "group": "rows", - "weight": 399, + "method": "updateEmail", + "group": "users", + "weight": 129, "cookies": false, "type": "", - "demo": "tablesdb\/increment-row-column.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": [ - "rows.write", - "documents.write" - ], + "demo": "users\/update-email.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", "platforms": [ - "client", - "server", - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/increment-row-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-email.md", "auth": { "Project": [] } @@ -55768,40 +62448,16 @@ "security": [ { "Project": [], - "JWT": [], "Key": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "type": "string", - "x-example": "<TABLE_ID>", - "in": "path" - }, - { - "name": "rowId", - "description": "Row ID.", - "required": true, - "type": "string", - "x-example": "<ROW_ID>", - "in": "path" - }, - { - "name": "column", - "description": "Column key.", + "name": "userId", + "description": "User ID.", "required": true, "type": "string", + "x-example": "<USER_ID>", "in": "path" }, { @@ -55810,272 +62466,230 @@ "schema": { "type": "object", "properties": { - "value": { - "type": "number", - "description": "Value to increment the column by. The value must be a number.", - "default": 1, - "x-example": null, - "format": "float" - }, - "max": { - "type": "number", - "description": "Maximum value for the column. If the current value is greater than this value, an error will be thrown.", - "default": null, - "x-example": null, - "format": "float", - "x-nullable": true - }, - "transactionId": { + "email": { "type": "string", - "description": "Transaction ID for staging the operation.", + "description": "User email.", "default": null, - "x-example": "<TRANSACTION_ID>", - "x-nullable": true + "x-example": "email@example.com", + "format": "email" } - } + }, + "required": [ + "email" + ] } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/usage": { - "get": { - "summary": "Get table usage stats", - "operationId": "tablesDBGetTableUsage", - "consumes": [], + "\/users\/{userId}\/jwts": { + "post": { + "summary": "Create user JWT", + "operationId": "usersCreateJWT", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "tablesDB" + "users" ], - "description": "Get usage metrics and statistics for a table. Returning the total number of rows. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.", + "description": "Use this endpoint to create a JSON Web Token for user by its unique ID. You can use the resulting JWT to authenticate on behalf of the user. The JWT secret will become invalid if the session it uses gets deleted.", "responses": { - "200": { - "description": "UsageTable", + "201": { + "description": "JWT", "schema": { - "$ref": "#\/definitions\/usageTable" + "$ref": "#\/definitions\/jwt" } } }, "deprecated": false, "x-appwrite": { - "method": "getTableUsage", - "group": null, - "weight": 347, + "method": "createJWT", + "group": "sessions", + "weight": 147, "cookies": false, "type": "", - "demo": "tablesdb\/get-table-usage.md", + "demo": "users\/create-jwt.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.read", - "collections.read" - ], + "scope": "users.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-table-usage.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-user-jwt.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "userId", + "description": "User ID.", "required": true, "type": "string", - "x-example": "<DATABASE_ID>", + "x-example": "<USER_ID>", "in": "path" }, { - "name": "range", - "description": "Date range.", - "required": false, - "type": "string", - "x-example": "24h", - "enum": [ - "24h", - "30d", - "90d" - ], - "x-enum-name": "UsageRange", - "x-enum-keys": [ - "Twenty Four Hours", - "Thirty Days", - "Ninety Days" - ], - "default": "30d", - "in": "query" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "type": "string", - "x-example": "<TABLE_ID>", - "in": "path" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "sessionId": { + "type": "string", + "description": "Session ID. Use the string 'recent' to use the most recent session. Defaults to the most recent session.", + "default": "", + "x-example": "<SESSION_ID>" + }, + "duration": { + "type": "integer", + "description": "Time in seconds before JWT expires. Default duration is 900 seconds, and maximum is 3600 seconds.", + "default": 900, + "x-example": 0, + "format": "int32" + } + } + } } ] } }, - "\/tablesdb\/{databaseId}\/usage": { - "get": { - "summary": "Get TablesDB usage stats", - "operationId": "tablesDBGetUsage", - "consumes": [], + "\/users\/{userId}\/labels": { + "put": { + "summary": "Update user labels", + "operationId": "usersUpdateLabels", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "tablesDB" + "users" ], - "description": "Get usage metrics and statistics for a database. You can view the total number of tables, rows, and storage usage. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.", + "description": "Update the user labels by its unique ID. \n\nLabels can be used to grant access to resources. While teams are a way for user's to share access to a resource, labels can be defined by the developer to grant access without an invitation. See the [Permissions docs](https:\/\/appwrite.io\/docs\/permissions) for more info.", "responses": { "200": { - "description": "UsageDatabase", + "description": "User", "schema": { - "$ref": "#\/definitions\/usageDatabase" + "$ref": "#\/definitions\/user" } } }, "deprecated": false, "x-appwrite": { - "method": "getUsage", - "group": null, - "weight": 339, + "method": "updateLabels", + "group": "users", + "weight": 125, "cookies": false, "type": "", - "demo": "tablesdb\/get-usage.md", + "demo": "users\/update-labels.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.read", - "collections.read" - ], + "scope": "users.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-database-usage.md", - "methods": [ - { - "name": "getUsage", - "namespace": "tablesDB", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "databaseId", - "range" - ], - "required": [ - "databaseId" - ], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/usageDatabase" - } - ], - "description": "Get usage metrics and statistics for a database. You can view the total number of tables, rows, and storage usage. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.", - "demo": "tablesdb\/get-usage.md", - "public": true - } - ], + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-labels.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "userId", + "description": "User ID.", "required": true, "type": "string", - "x-example": "<DATABASE_ID>", + "x-example": "<USER_ID>", "in": "path" }, { - "name": "range", - "description": "Date range.", - "required": false, - "type": "string", - "x-example": "24h", - "enum": [ - "24h", - "30d", - "90d" - ], - "x-enum-name": "UsageRange", - "x-enum-keys": [ - "Twenty Four Hours", - "Thirty Days", - "Ninety Days" - ], - "default": "30d", - "in": "query" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "labels": { + "type": "array", + "description": "Array of user labels. Replaces the previous labels. Maximum of 1000 labels are allowed, each up to 36 alphanumeric characters long.", + "default": null, + "x-example": null, + "items": { + "type": "string" + } + } + }, + "required": [ + "labels" + ] + } } ] } }, - "\/teams": { + "\/users\/{userId}\/logs": { "get": { - "summary": "List teams", - "operationId": "teamsList", + "summary": "List user logs", + "operationId": "usersListLogs", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "teams" + "users" ], - "description": "Get a list of all the teams in which the current user is a member. You can use the parameters to filter your results.", + "description": "Get the user activity logs list by its unique ID.", "responses": { "200": { - "description": "Teams List", + "description": "Logs List", "schema": { - "$ref": "#\/definitions\/teamList" + "$ref": "#\/definitions\/logList" } } }, "deprecated": false, "x-appwrite": { - "method": "list", - "group": "teams", - "weight": 107, + "method": "listLogs", + "group": "logs", + "weight": 121, "cookies": false, "type": "", - "demo": "teams\/list.md", + "demo": "users\/list-logs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "users.read", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/list-teams.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-user-logs.md", "auth": { "Project": [] } @@ -56083,14 +62697,21 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "type": "string", + "x-example": "<USER_ID>", + "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, total, billingPlan", + "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, "type": "array", "collectionFormat": "multi", @@ -56100,15 +62721,6 @@ "default": [], "in": "query" }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "type": "string", - "x-example": "<SEARCH>", - "default": "", - "in": "query" - }, { "name": "total", "description": "When set to false, the total count returned will be 0 and will not be calculated.", @@ -56119,139 +62731,47 @@ "in": "query" } ] - }, - "post": { - "summary": "Create team", - "operationId": "teamsCreate", - "consumes": [ - "application\/json" - ], - "produces": [ - "application\/json" - ], - "tags": [ - "teams" - ], - "description": "Create a new team. The user who creates the team will automatically be assigned as the owner of the team. Only the users with the owner role can invite new members, add new owners and delete or update the team.", - "responses": { - "201": { - "description": "Team", - "schema": { - "$ref": "#\/definitions\/team" - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "create", - "group": "teams", - "weight": 106, - "cookies": false, - "type": "", - "demo": "teams\/create.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "teamId": { - "type": "string", - "description": "Team ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": null, - "x-example": "<TEAM_ID>" - }, - "name": { - "type": "string", - "description": "Team name. Max length: 128 chars.", - "default": null, - "x-example": "<NAME>" - }, - "roles": { - "type": "array", - "description": "Array of strings. Use this param to set the roles in the team for the user who created it. The default role is **owner**. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 32 characters long.", - "default": [ - "owner" - ], - "x-example": null, - "items": { - "type": "string" - } - } - }, - "required": [ - "teamId", - "name" - ] - } - } - ] } }, - "\/teams\/{teamId}": { + "\/users\/{userId}\/memberships": { "get": { - "summary": "Get team", - "operationId": "teamsGet", + "summary": "List user memberships", + "operationId": "usersListMemberships", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "teams" + "users" ], - "description": "Get a team by its ID. All team members have read access for this resource.", + "description": "Get the user membership list by its unique ID.", "responses": { "200": { - "description": "Team", + "description": "Memberships List", "schema": { - "$ref": "#\/definitions\/team" + "$ref": "#\/definitions\/membershipList" } } }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": "teams", - "weight": 108, + "method": "listMemberships", + "group": "memberships", + "weight": 120, "cookies": false, "type": "", - "demo": "teams\/get.md", + "demo": "users\/list-memberships.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "users.read", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-user-memberships.md", "auth": { "Project": [] } @@ -56259,24 +62779,55 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "userId", + "description": "User ID.", "required": true, "type": "string", - "x-example": "<TEAM_ID>", + "x-example": "<USER_ID>", "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: userId, teamId, invited, joined, confirm, roles", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "type": "string", + "x-example": "<SEARCH>", + "default": "", + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" } ] - }, - "put": { - "summary": "Update name", - "operationId": "teamsUpdateName", + } + }, + "\/users\/{userId}\/mfa": { + "patch": { + "summary": "Update MFA", + "operationId": "usersUpdateMfa", "consumes": [ "application\/json" ], @@ -56284,37 +62835,96 @@ "application\/json" ], "tags": [ - "teams" + "users" ], - "description": "Update the team's name by its unique ID.", + "description": "Enable or disable MFA on a user account.", "responses": { "200": { - "description": "Team", + "description": "User", "schema": { - "$ref": "#\/definitions\/team" + "$ref": "#\/definitions\/user" } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "updateName", - "group": "teams", - "weight": 110, + "method": "updateMfa", + "group": "users", + "weight": 134, "cookies": false, "type": "", - "demo": "teams\/update-name.md", + "demo": "users\/update-mfa.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": "users.write", "platforms": [ "console", - "client", "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-name.md", + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-mfa.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.updateMFA" + }, + "methods": [ + { + "name": "updateMfa", + "namespace": "users", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "userId", + "mfa" + ], + "required": [ + "userId", + "mfa" + ], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/user" + } + ], + "description": "Enable or disable MFA on a user account.", + "demo": "users\/update-mfa.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.updateMFA" + } + }, + { + "name": "updateMFA", + "namespace": "users", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "userId", + "mfa" + ], + "required": [ + "userId", + "mfa" + ], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/user" + } + ], + "description": "Enable or disable MFA on a user account.", + "demo": "users\/update-mfa.md", + "public": true + } + ], "auth": { "Project": [] } @@ -56322,17 +62932,16 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "userId", + "description": "User ID.", "required": true, "type": "string", - "x-example": "<TEAM_ID>", + "x-example": "<USER_ID>", "in": "path" }, { @@ -56341,56 +62950,115 @@ "schema": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "New team name. Max length: 128 chars.", + "mfa": { + "type": "boolean", + "description": "Enable or disable MFA.", "default": null, - "x-example": "<NAME>" + "x-example": false } }, "required": [ - "name" + "mfa" ] } } ] - }, + } + }, + "\/users\/{userId}\/mfa\/authenticators\/{type}": { "delete": { - "summary": "Delete team", - "operationId": "teamsDelete", + "summary": "Delete authenticator", + "operationId": "usersDeleteMfaAuthenticator", "consumes": [ "application\/json" ], "produces": [], "tags": [ - "teams" + "users" ], - "description": "Delete a team using its ID. Only team members with the owner role can delete the team.", + "description": "Delete an authenticator app.", "responses": { "204": { "description": "No content" } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "delete", - "group": "teams", - "weight": 112, + "method": "deleteMfaAuthenticator", + "group": "mfa", + "weight": 139, "cookies": false, "type": "", - "demo": "teams\/delete.md", + "demo": "users\/delete-mfa-authenticator.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": "users.write", "platforms": [ "console", - "client", "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team.md", + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-mfa-authenticator.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.deleteMFAAuthenticator" + }, + "methods": [ + { + "name": "deleteMfaAuthenticator", + "namespace": "users", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "userId", + "type" + ], + "required": [ + "userId", + "type" + ], + "responses": [ + { + "code": 204 + } + ], + "description": "Delete an authenticator app.", + "demo": "users\/delete-mfa-authenticator.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.deleteMFAAuthenticator" + } + }, + { + "name": "deleteMFAAuthenticator", + "namespace": "users", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "userId", + "type" + ], + "required": [ + "userId", + "type" + ], + "responses": [ + { + "code": 204 + } + ], + "description": "Delete an authenticator app.", + "demo": "users\/delete-mfa-authenticator.md", + "public": true + } + ], "auth": { "Project": [] } @@ -56398,142 +63066,246 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "userId", + "description": "User ID.", "required": true, "type": "string", - "x-example": "<TEAM_ID>", + "x-example": "<USER_ID>", + "in": "path" + }, + { + "name": "type", + "description": "Type of authenticator.", + "required": true, + "type": "string", + "x-example": "totp", + "enum": [ + "totp" + ], + "x-enum-name": "AuthenticatorType", + "x-enum-keys": [], "in": "path" } ] } }, - "\/teams\/{teamId}\/logs": { + "\/users\/{userId}\/mfa\/factors": { "get": { - "summary": "List team logs", - "operationId": "teamsListLogs", + "summary": "List factors", + "operationId": "usersListMfaFactors", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "teams" + "users" ], - "description": "Get the team activity logs list by its unique ID.", + "description": "List the factors available on the account to be used as a MFA challange.", "responses": { "200": { - "description": "Logs List", + "description": "MFAFactors", "schema": { - "$ref": "#\/definitions\/logList" + "$ref": "#\/definitions\/mfaFactors" } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "listLogs", - "group": "logs", - "weight": 119, + "method": "listMfaFactors", + "group": "mfa", + "weight": 135, "cookies": false, "type": "", - "demo": "teams\/list-logs.md", + "demo": "users\/list-mfa-factors.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "users.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-logs.md", + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-mfa-factors.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.listMFAFactors" + }, + "methods": [ + { + "name": "listMfaFactors", + "namespace": "users", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/mfaFactors" + } + ], + "description": "List the factors available on the account to be used as a MFA challange.", + "demo": "users\/list-mfa-factors.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.listMFAFactors" + } + }, + { + "name": "listMFAFactors", + "namespace": "users", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/mfaFactors" + } + ], + "description": "List the factors available on the account to be used as a MFA challange.", + "demo": "users\/list-mfa-factors.md", + "public": true + } + ], "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "userId", + "description": "User ID.", "required": true, "type": "string", - "x-example": "<TEAM_ID>", + "x-example": "<USER_ID>", "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). Only supported methods are limit and offset", - "required": false, - "type": "array", - "collectionFormat": "multi", - "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, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" } ] } }, - "\/teams\/{teamId}\/memberships": { + "\/users\/{userId}\/mfa\/recovery-codes": { "get": { - "summary": "List team memberships", - "operationId": "teamsListMemberships", + "summary": "Get MFA recovery codes", + "operationId": "usersGetMfaRecoveryCodes", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "teams" + "users" ], - "description": "Use this endpoint to list a team's members using the team's ID. All team members have read access to this endpoint. Hide sensitive attributes from the response by toggling membership privacy in the Console.", + "description": "Get recovery codes that can be used as backup for MFA flow by User ID. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", "responses": { "200": { - "description": "Memberships List", + "description": "MFA Recovery Codes", "schema": { - "$ref": "#\/definitions\/membershipList" + "$ref": "#\/definitions\/mfaRecoveryCodes" } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "listMemberships", - "group": "memberships", - "weight": 114, + "method": "getMfaRecoveryCodes", + "group": "mfa", + "weight": 136, "cookies": false, "type": "", - "demo": "teams\/list-memberships.md", + "demo": "users\/get-mfa-recovery-codes.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "users.read", "platforms": [ "console", - "client", "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/list-team-members.md", + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-mfa-recovery-codes.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.getMFARecoveryCodes" + }, + "methods": [ + { + "name": "getMfaRecoveryCodes", + "namespace": "users", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/mfaRecoveryCodes" + } + ], + "description": "Get recovery codes that can be used as backup for MFA flow by User ID. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", + "demo": "users\/get-mfa-recovery-codes.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.getMFARecoveryCodes" + } + }, + { + "name": "getMFARecoveryCodes", + "namespace": "users", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/mfaRecoveryCodes" + } + ], + "description": "Get recovery codes that can be used as backup for MFA flow by User ID. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", + "demo": "users\/get-mfa-recovery-codes.md", + "public": true + } + ], "auth": { "Project": [] } @@ -56541,54 +63313,23 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", - "required": true, - "type": "string", - "x-example": "<TEAM_ID>", - "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: userId, teamId, invited, joined, confirm, roles", - "required": false, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, + "name": "userId", + "description": "User ID.", + "required": true, "type": "string", - "x-example": "<SEARCH>", - "default": "", - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" + "x-example": "<USER_ID>", + "in": "path" } ] }, - "post": { - "summary": "Create team membership", - "operationId": "teamsCreateMembership", + "put": { + "summary": "Update MFA recovery codes (regenerate)", + "operationId": "usersUpdateMfaRecoveryCodes", "consumes": [ "application\/json" ], @@ -56596,37 +63337,92 @@ "application\/json" ], "tags": [ - "teams" + "users" ], - "description": "Invite a new member to join your team. Provide an ID for existing users, or invite unregistered users using an email or phone number. If initiated from a Client SDK, Appwrite will send an email or sms with a link to join the team to the invited user, and an account will be created for them if one doesn't exist. If initiated from a Server SDK, the new member will be added automatically to the team.\n\nYou only need to provide one of a user ID, email, or phone number. Appwrite will prioritize accepting the user ID > email > phone number if you provide more than one of these parameters.\n\nUse the `url` parameter to redirect the user from the invitation email to your app. After the user is redirected, use the [Update Team Membership Status](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/teams#updateMembershipStatus) endpoint to allow the user to accept the invitation to the team. \n\nPlease note that to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) Appwrite will accept the only redirect URLs under the domains you have added as a platform on the Appwrite Console.\n", + "description": "Regenerate recovery codes that can be used as backup for MFA flow by User ID. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", "responses": { - "201": { - "description": "Membership", + "200": { + "description": "MFA Recovery Codes", "schema": { - "$ref": "#\/definitions\/membership" + "$ref": "#\/definitions\/mfaRecoveryCodes" } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "createMembership", - "group": "memberships", - "weight": 113, + "method": "updateMfaRecoveryCodes", + "group": "mfa", + "weight": 138, "cookies": false, "type": "", - "demo": "teams\/create-membership.md", - "rate-limit": 10, + "demo": "users\/update-mfa-recovery-codes.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": "users.write", "platforms": [ "console", - "client", "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team-membership.md", + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-mfa-recovery-codes.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.updateMFARecoveryCodes" + }, + "methods": [ + { + "name": "updateMfaRecoveryCodes", + "namespace": "users", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/mfaRecoveryCodes" + } + ], + "description": "Regenerate recovery codes that can be used as backup for MFA flow by User ID. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", + "demo": "users\/update-mfa-recovery-codes.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.updateMFARecoveryCodes" + } + }, + { + "name": "updateMFARecoveryCodes", + "namespace": "users", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/mfaRecoveryCodes" + } + ], + "description": "Regenerate recovery codes that can be used as backup for MFA flow by User ID. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", + "demo": "users\/update-mfa-recovery-codes.md", + "public": false + } + ], "auth": { "Project": [] } @@ -56634,116 +63430,116 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "userId", + "description": "User ID.", "required": true, "type": "string", - "x-example": "<TEAM_ID>", + "x-example": "<USER_ID>", "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "email": { - "type": "string", - "description": "Email of the new team member.", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, - "userId": { - "type": "string", - "description": "ID of the user to be added to a team.", - "default": "", - "x-example": "<USER_ID>" - }, - "phone": { - "type": "string", - "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "default": "", - "x-example": "+12065550100", - "format": "phone" - }, - "roles": { - "type": "array", - "description": "Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 32 characters long.", - "default": null, - "x-example": null, - "items": { - "type": "string" - } - }, - "url": { - "type": "string", - "description": "URL to redirect the user back to your app from the invitation email. This parameter is not required when an API key is supplied. 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.", - "default": "", - "x-example": "https:\/\/example.com", - "format": "url" - }, - "name": { - "type": "string", - "description": "Name of the new team member. Max length: 128 chars.", - "default": "", - "x-example": "<NAME>" - } - }, - "required": [ - "roles" - ] - } } ] - } - }, - "\/teams\/{teamId}\/memberships\/{membershipId}": { - "get": { - "summary": "Get team membership", - "operationId": "teamsGetMembership", - "consumes": [], + }, + "patch": { + "summary": "Create MFA recovery codes", + "operationId": "usersCreateMfaRecoveryCodes", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "teams" + "users" ], - "description": "Get a team member by the membership unique id. All team members have read access for this resource. Hide sensitive attributes from the response by toggling membership privacy in the Console.", + "description": "Generate recovery codes used as backup for MFA flow for User ID. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method by client SDK.", "responses": { - "200": { - "description": "Membership", + "201": { + "description": "MFA Recovery Codes", "schema": { - "$ref": "#\/definitions\/membership" + "$ref": "#\/definitions\/mfaRecoveryCodes" } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "getMembership", - "group": "memberships", - "weight": 115, + "method": "createMfaRecoveryCodes", + "group": "mfa", + "weight": 137, "cookies": false, "type": "", - "demo": "teams\/get-membership.md", + "demo": "users\/create-mfa-recovery-codes.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "users.write", "platforms": [ "console", - "client", "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-member.md", + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-mfa-recovery-codes.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.createMFARecoveryCodes" + }, + "methods": [ + { + "name": "createMfaRecoveryCodes", + "namespace": "users", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/mfaRecoveryCodes" + } + ], + "description": "Generate recovery codes used as backup for MFA flow for User ID. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method by client SDK.", + "demo": "users\/create-mfa-recovery-codes.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.createMFARecoveryCodes" + } + }, + { + "name": "createMFARecoveryCodes", + "namespace": "users", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/mfaRecoveryCodes" + } + ], + "description": "Generate recovery codes used as backup for MFA flow for User ID. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method by client SDK.", + "demo": "users\/create-mfa-recovery-codes.md", + "public": true + } + ], "auth": { "Project": [] } @@ -56751,32 +63547,25 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", - "required": true, - "type": "string", - "x-example": "<TEAM_ID>", - "in": "path" - }, - { - "name": "membershipId", - "description": "Membership ID.", + "name": "userId", + "description": "User ID.", "required": true, "type": "string", - "x-example": "<MEMBERSHIP_ID>", + "x-example": "<USER_ID>", "in": "path" } ] - }, + } + }, + "\/users\/{userId}\/name": { "patch": { - "summary": "Update membership", - "operationId": "teamsUpdateMembership", + "summary": "Update name", + "operationId": "usersUpdateName", "consumes": [ "application\/json" ], @@ -56784,37 +63573,36 @@ "application\/json" ], "tags": [ - "teams" + "users" ], - "description": "Modify the roles of a team member. Only team members with the owner role have access to this endpoint. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions).\n", + "description": "Update the user name by its unique ID.", "responses": { "200": { - "description": "Membership", + "description": "User", "schema": { - "$ref": "#\/definitions\/membership" + "$ref": "#\/definitions\/user" } } }, "deprecated": false, "x-appwrite": { - "method": "updateMembership", - "group": "memberships", - "weight": 116, + "method": "updateName", + "group": "users", + "weight": 127, "cookies": false, "type": "", - "demo": "teams\/update-membership.md", + "demo": "users\/update-name.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": "users.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-name.md", "auth": { "Project": [] } @@ -56822,25 +63610,16 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", - "required": true, - "type": "string", - "x-example": "<TEAM_ID>", - "in": "path" - }, - { - "name": "membershipId", - "description": "Membership ID.", + "name": "userId", + "description": "User ID.", "required": true, "type": "string", - "x-example": "<MEMBERSHIP_ID>", + "x-example": "<USER_ID>", "in": "path" }, { @@ -56849,26 +63628,25 @@ "schema": { "type": "object", "properties": { - "roles": { - "type": "array", - "description": "An array of strings. Use this param to set the user's roles in the team. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 32 characters long.", + "name": { + "type": "string", + "description": "User name. Max length: 128 chars.", "default": null, - "x-example": null, - "items": { - "type": "string" - } + "x-example": "<NAME>" } }, "required": [ - "roles" + "name" ] } } ] - }, - "delete": { - "summary": "Delete team membership", - "operationId": "teamsDeleteMembership", + } + }, + "\/users\/{userId}\/password": { + "patch": { + "summary": "Update password", + "operationId": "usersUpdatePassword", "consumes": [ "application\/json" ], @@ -56876,34 +63654,36 @@ "application\/json" ], "tags": [ - "teams" + "users" ], - "description": "This endpoint allows a user to leave a team or for a team owner to delete the membership of any other team member. You can also use this endpoint to delete a user membership even if it is not accepted.", + "description": "Update the user password by its unique ID.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "User", + "schema": { + "$ref": "#\/definitions\/user" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteMembership", - "group": null, - "weight": 555, + "method": "updatePassword", + "group": "users", + "weight": 128, "cookies": false, "type": "", - "demo": "teams\/delete-membership.md", + "demo": "users\/update-password.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": "users.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team-membership.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-password.md", "auth": { "Project": [] } @@ -56911,34 +63691,43 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "userId", + "description": "User ID.", "required": true, "type": "string", - "x-example": "<TEAM_ID>", + "x-example": "<USER_ID>", "in": "path" }, { - "name": "membershipId", - "description": "Membership ID.", - "required": true, - "type": "string", - "x-example": "<MEMBERSHIP_ID>", - "in": "path" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "password": { + "type": "string", + "description": "New user password. Must be at least 8 chars.", + "default": null, + "x-example": null + } + }, + "required": [ + "password" + ] + } } ] } }, - "\/teams\/{teamId}\/memberships\/{membershipId}\/status": { + "\/users\/{userId}\/phone": { "patch": { - "summary": "Update team membership status", - "operationId": "teamsUpdateMembershipStatus", + "summary": "Update phone", + "operationId": "usersUpdatePhone", "consumes": [ "application\/json" ], @@ -56946,37 +63735,36 @@ "application\/json" ], "tags": [ - "teams" + "users" ], - "description": "Use this endpoint to allow a user to accept an invitation to join a team after being redirected back to your app from the invitation email received by the user.\n\nIf the request is successful, a session for the user is automatically created.\n", + "description": "Update the user phone by its unique ID.", "responses": { "200": { - "description": "Membership", + "description": "User", "schema": { - "$ref": "#\/definitions\/membership" + "$ref": "#\/definitions\/user" } } }, "deprecated": false, "x-appwrite": { - "method": "updateMembershipStatus", - "group": "memberships", - "weight": 117, + "method": "updatePhone", + "group": "users", + "weight": 130, "cookies": false, "type": "", - "demo": "teams\/update-membership-status.md", + "demo": "users\/update-phone.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "users.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership-status.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-phone.md", "auth": { "Project": [] } @@ -56984,24 +63772,16 @@ "security": [ { "Project": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", - "required": true, - "type": "string", - "x-example": "<TEAM_ID>", - "in": "path" - }, - { - "name": "membershipId", - "description": "Membership ID.", + "name": "userId", + "description": "User ID.", "required": true, "type": "string", - "x-example": "<MEMBERSHIP_ID>", + "x-example": "<USER_ID>", "in": "path" }, { @@ -57010,40 +63790,34 @@ "schema": { "type": "object", "properties": { - "userId": { - "type": "string", - "description": "User ID.", - "default": null, - "x-example": "<USER_ID>" - }, - "secret": { + "number": { "type": "string", - "description": "Secret key.", + "description": "User phone number.", "default": null, - "x-example": "<SECRET>" + "x-example": "+12065550100", + "format": "phone" } }, "required": [ - "userId", - "secret" + "number" ] } } ] } }, - "\/teams\/{teamId}\/prefs": { + "\/users\/{userId}\/prefs": { "get": { - "summary": "Get team preferences", - "operationId": "teamsGetPrefs", + "summary": "Get user preferences", + "operationId": "usersGetPrefs", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "teams" + "users" ], - "description": "Get the team's shared preferences by its unique ID. If a preference doesn't need to be shared by all team members, prefer storing them in [user preferences](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#getPrefs).", + "description": "Get the user preferences by its unique ID.", "responses": { "200": { "description": "Preferences", @@ -57055,23 +63829,22 @@ "deprecated": false, "x-appwrite": { "method": "getPrefs", - "group": "teams", - "weight": 109, + "group": "users", + "weight": 117, "cookies": false, "type": "", - "demo": "teams\/get-prefs.md", + "demo": "users\/get-prefs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "users.read", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-prefs.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user-prefs.md", "auth": { "Project": [] } @@ -57079,23 +63852,23 @@ "security": [ { "Project": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "userId", + "description": "User ID.", "required": true, "type": "string", - "x-example": "<TEAM_ID>", + "x-example": "<USER_ID>", "in": "path" } ] }, - "put": { - "summary": "Update preferences", - "operationId": "teamsUpdatePrefs", + "patch": { + "summary": "Update user preferences", + "operationId": "usersUpdatePrefs", "consumes": [ "application\/json" ], @@ -57103,9 +63876,9 @@ "application\/json" ], "tags": [ - "teams" + "users" ], - "description": "Update the team's preferences by its unique ID. The object you pass is stored as is and replaces any previous value. The maximum allowed prefs size is 64kB and throws an error if exceeded.", + "description": "Update the user preferences by its unique ID. 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": "Preferences", @@ -57117,23 +63890,22 @@ "deprecated": false, "x-appwrite": { "method": "updatePrefs", - "group": "teams", - "weight": 111, + "group": "users", + "weight": 132, "cookies": false, "type": "", - "demo": "teams\/update-prefs.md", + "demo": "users\/update-prefs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": "users.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-prefs.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-prefs.md", "auth": { "Project": [] } @@ -57141,16 +63913,16 @@ "security": [ { "Project": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "userId", + "description": "User ID.", "required": true, "type": "string", - "x-example": "<TEAM_ID>", + "x-example": "<USER_ID>", "in": "path" }, { @@ -57174,44 +63946,45 @@ ] } }, - "\/tokens\/buckets\/{bucketId}\/files\/{fileId}": { + "\/users\/{userId}\/sessions": { "get": { - "summary": "List tokens", - "operationId": "tokensList", + "summary": "List user sessions", + "operationId": "usersListSessions", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "tokens" + "users" ], - "description": "List all the tokens created for a specific file or bucket. You can use the query params to filter your results.", + "description": "Get the user sessions list by its unique ID.", "responses": { "200": { - "description": "Resource Tokens List", + "description": "Sessions List", "schema": { - "$ref": "#\/definitions\/resourceTokenList" + "$ref": "#\/definitions\/sessionList" } } }, "deprecated": false, "x-appwrite": { - "method": "list", - "group": "files", - "weight": 525, + "method": "listSessions", + "group": "sessions", + "weight": 119, "cookies": false, "type": "", - "demo": "tokens\/list.md", + "demo": "users\/list-sessions.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "tokens.read", + "scope": "users.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-user-sessions.md", "auth": { "Project": [] } @@ -57224,33 +63997,13 @@ ], "parameters": [ { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", - "required": true, - "type": "string", - "x-example": "<BUCKET_ID>", - "in": "path" - }, - { - "name": "fileId", - "description": "File unique ID.", + "name": "userId", + "description": "User ID.", "required": true, "type": "string", - "x-example": "<FILE_ID>", + "x-example": "<USER_ID>", "in": "path" }, - { - "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: expire", - "required": false, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" - }, { "name": "total", "description": "When set to false, the total count returned will be 0 and will not be calculated.", @@ -57263,8 +64016,8 @@ ] }, "post": { - "summary": "Create file token", - "operationId": "tokensCreateFileToken", + "summary": "Create session", + "operationId": "usersCreateSession", "consumes": [ "application\/json" ], @@ -57272,35 +64025,36 @@ "application\/json" ], "tags": [ - "tokens" + "users" ], - "description": "Create a new token. A token is linked to a file. Token can be passed as a request URL search parameter.", + "description": "Creates a session for a user. Returns an immediately usable session object.\n\nIf you want to generate a token for a custom authentication flow, use the [POST \/users\/{userId}\/tokens](https:\/\/appwrite.io\/docs\/server\/users#createToken) endpoint.", "responses": { "201": { - "description": "ResourceToken", + "description": "Session", "schema": { - "$ref": "#\/definitions\/resourceToken" + "$ref": "#\/definitions\/session" } } }, "deprecated": false, "x-appwrite": { - "method": "createFileToken", - "group": "files", - "weight": 523, + "method": "createSession", + "group": "sessions", + "weight": 140, "cookies": false, "type": "", - "demo": "tokens\/create-file-token.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "tokens.write", + "demo": "users\/create-session.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-session.md", "auth": { "Project": [] } @@ -57313,78 +64067,50 @@ ], "parameters": [ { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", - "required": true, - "type": "string", - "x-example": "<BUCKET_ID>", - "in": "path" - }, - { - "name": "fileId", - "description": "File unique ID.", + "name": "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.", "required": true, "type": "string", - "x-example": "<FILE_ID>", + "x-example": "<USER_ID>", "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "expire": { - "type": "string", - "description": "Token expiry date", - "default": null, - "x-example": null, - "x-nullable": true - } - } - } } ] - } - }, - "\/tokens\/{tokenId}": { - "get": { - "summary": "Get token", - "operationId": "tokensGet", - "consumes": [], - "produces": [ + }, + "delete": { + "summary": "Delete user sessions", + "operationId": "usersDeleteSessions", + "consumes": [ "application\/json" ], + "produces": [], "tags": [ - "tokens" + "users" ], - "description": "Get a token by its unique ID.", + "description": "Delete all user's sessions by using the user's unique ID.", "responses": { - "200": { - "description": "ResourceToken", - "schema": { - "$ref": "#\/definitions\/resourceToken" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": "tokens", - "weight": 524, + "method": "deleteSessions", + "group": "sessions", + "weight": 143, "cookies": false, "type": "", - "demo": "tokens\/get.md", + "demo": "users\/delete-sessions.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "tokens.read", + "scope": "users.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-user-sessions.md", "auth": { "Project": [] } @@ -57397,54 +64123,52 @@ ], "parameters": [ { - "name": "tokenId", - "description": "Token ID.", + "name": "userId", + "description": "User ID.", "required": true, "type": "string", - "x-example": "<TOKEN_ID>", + "x-example": "<USER_ID>", "in": "path" } ] - }, - "patch": { - "summary": "Update token", - "operationId": "tokensUpdate", + } + }, + "\/users\/{userId}\/sessions\/{sessionId}": { + "delete": { + "summary": "Delete user session", + "operationId": "usersDeleteSession", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ - "tokens" + "users" ], - "description": "Update a token by its unique ID. Use this endpoint to update a token's expiry date.", + "description": "Delete a user sessions by its unique ID.", "responses": { - "200": { - "description": "ResourceToken", - "schema": { - "$ref": "#\/definitions\/resourceToken" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "update", - "group": "tokens", - "weight": 526, + "method": "deleteSession", + "group": "sessions", + "weight": 142, "cookies": false, "type": "", - "demo": "tokens\/update.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "tokens.write", + "demo": "users\/delete-session.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-user-session.md", "auth": { "Project": [] } @@ -57457,65 +64181,65 @@ ], "parameters": [ { - "name": "tokenId", - "description": "Token unique ID.", + "name": "userId", + "description": "User ID.", "required": true, "type": "string", - "x-example": "<TOKEN_ID>", + "x-example": "<USER_ID>", "in": "path" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "expire": { - "type": "string", - "description": "File token expiry date", - "default": null, - "x-example": null, - "x-nullable": true - } - } - } + "name": "sessionId", + "description": "Session ID.", + "required": true, + "type": "string", + "x-example": "<SESSION_ID>", + "in": "path" } ] - }, - "delete": { - "summary": "Delete token", - "operationId": "tokensDelete", + } + }, + "\/users\/{userId}\/status": { + "patch": { + "summary": "Update user status", + "operationId": "usersUpdateStatus", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ - "tokens" + "users" ], - "description": "Delete a token by its unique ID.", + "description": "Update the user status by its unique ID. Use this endpoint as an alternative to deleting a user if you want to keep user's ID reserved.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "User", + "schema": { + "$ref": "#\/definitions\/user" + } } }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": "tokens", - "weight": 527, + "method": "updateStatus", + "group": "users", + "weight": 124, "cookies": false, "type": "", - "demo": "tokens\/delete.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "tokens.write", + "demo": "users\/update-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-status.md", "auth": { "Project": [] } @@ -57528,20 +64252,38 @@ ], "parameters": [ { - "name": "tokenId", - "description": "Token ID.", + "name": "userId", + "description": "User ID.", "required": true, "type": "string", - "x-example": "<TOKEN_ID>", + "x-example": "<USER_ID>", "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "status": { + "type": "boolean", + "description": "User Status. To activate the user pass `true` and to block the user pass `false`.", + "default": null, + "x-example": false + } + }, + "required": [ + "status" + ] + } } ] } }, - "\/users": { + "\/users\/{userId}\/targets": { "get": { - "summary": "List users", - "operationId": "usersList", + "summary": "List user targets", + "operationId": "usersListTargets", "consumes": [], "produces": [ "application\/json" @@ -57549,34 +64291,34 @@ "tags": [ "users" ], - "description": "Get a list of all the project's users. You can use the query params to filter your results.", + "description": "List the messaging targets that are associated with a user.", "responses": { "200": { - "description": "Users List", + "description": "Target list", "schema": { - "$ref": "#\/definitions\/userList" + "$ref": "#\/definitions\/targetList" } } }, "deprecated": false, "x-appwrite": { - "method": "list", - "group": "users", - "weight": 129, + "method": "listTargets", + "group": "targets", + "weight": 122, "cookies": false, "type": "", - "demo": "users\/list.md", + "demo": "users\/list-targets.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": "targets.read", "platforms": [ - "console", - "server" + "server", + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-users.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-user-targets.md", "auth": { "Project": [] } @@ -57588,9 +64330,17 @@ } ], "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "type": "string", + "x-example": "<USER_ID>", + "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, email, phone, status, passwordUpdate, registration, emailVerification, phoneVerification, labels", + "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, providerId, identifier, providerType", "required": false, "type": "array", "collectionFormat": "multi", @@ -57600,15 +64350,6 @@ "default": [], "in": "query" }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "type": "string", - "x-example": "<SEARCH>", - "default": "", - "in": "query" - }, { "name": "total", "description": "When set to false, the total count returned will be 0 and will not be calculated.", @@ -57621,8 +64362,8 @@ ] }, "post": { - "summary": "Create user", - "operationId": "usersCreate", + "summary": "Create user target", + "operationId": "usersCreateTarget", "consumes": [ "application\/json" ], @@ -57632,34 +64373,34 @@ "tags": [ "users" ], - "description": "Create a new user.", + "description": "Create a messaging target.", "responses": { "201": { - "description": "User", + "description": "Target", "schema": { - "$ref": "#\/definitions\/user" + "$ref": "#\/definitions\/target" } } }, "deprecated": false, "x-appwrite": { - "method": "create", - "group": "users", - "weight": 120, + "method": "createTarget", + "group": "targets", + "weight": 114, "cookies": false, "type": "", - "demo": "users\/create.md", + "demo": "users\/create-target.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "targets.write", "platforms": [ - "console", - "server" + "server", + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-user.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-target.md", "auth": { "Project": [] } @@ -57671,154 +64412,139 @@ } ], "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "type": "string", + "x-example": "<USER_ID>", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "userId": { + "targetId": { "type": "string", - "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.", + "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.", "default": null, - "x-example": "<USER_ID>" + "x-example": "<TARGET_ID>" }, - "email": { + "providerType": { "type": "string", - "description": "User email.", + "description": "The target provider type. Can be one of the following: `email`, `sms` or `push`.", "default": null, - "x-example": "email@example.com", - "format": "email", - "x-nullable": true + "x-example": "email", + "enum": [ + "email", + "sms", + "push" + ], + "x-enum-name": "MessagingProviderType", + "x-enum-keys": [] }, - "phone": { + "identifier": { "type": "string", - "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "description": "The target identifier (token, email, phone etc.)", "default": null, - "x-example": "+12065550100", - "format": "phone", - "x-nullable": true + "x-example": "<IDENTIFIER>" }, - "password": { + "providerId": { "type": "string", - "description": "Plain text user password. Must be at least 8 chars.", + "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.", "default": "", - "x-example": null + "x-example": "<PROVIDER_ID>" }, "name": { "type": "string", - "description": "User name. Max length: 128 chars.", + "description": "Target name. Max length: 128 chars. For example: My Awesome App Galaxy S23.", "default": "", "x-example": "<NAME>" } }, "required": [ - "userId" + "targetId", + "providerType", + "identifier" ] } } ] } }, - "\/users\/argon2": { - "post": { - "summary": "Create user with Argon2 password", - "operationId": "usersCreateArgon2User", - "consumes": [ - "application\/json" - ], + "\/users\/{userId}\/targets\/{targetId}": { + "get": { + "summary": "Get user target", + "operationId": "usersGetTarget", + "consumes": [], "produces": [ "application\/json" ], "tags": [ "users" ], - "description": "Create a new user. Password provided must be hashed with the [Argon2](https:\/\/en.wikipedia.org\/wiki\/Argon2) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "description": "Get a user's push notification target by ID.", "responses": { - "201": { - "description": "User", - "schema": { - "$ref": "#\/definitions\/user" - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "createArgon2User", - "group": "users", - "weight": 123, - "cookies": false, - "type": "", - "demo": "users\/create-argon-2-user.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-argon2-user.md", - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "payload", - "in": "body", + "200": { + "description": "Target", "schema": { - "type": "object", - "properties": { - "userId": { - "type": "string", - "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.", - "default": null, - "x-example": "<USER_ID>" - }, - "email": { - "type": "string", - "description": "User email.", - "default": null, - "x-example": "email@example.com", - "format": "email" - }, - "password": { - "type": "string", - "description": "User password hashed using Argon2.", - "default": null, - "x-example": "password", - "format": "password" - }, - "name": { - "type": "string", - "description": "User name. Max length: 128 chars.", - "default": "", - "x-example": "<NAME>" - } - }, - "required": [ - "userId", - "email", - "password" - ] + "$ref": "#\/definitions\/target" } } + }, + "deprecated": false, + "x-appwrite": { + "method": "getTarget", + "group": "targets", + "weight": 118, + "cookies": false, + "type": "", + "demo": "users\/get-target.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "targets.read", + "platforms": [ + "server", + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user-target.md", + "auth": { + "Project": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "type": "string", + "x-example": "<USER_ID>", + "in": "path" + }, + { + "name": "targetId", + "description": "Target ID.", + "required": true, + "type": "string", + "x-example": "<TARGET_ID>", + "in": "path" + } ] - } - }, - "\/users\/bcrypt": { - "post": { - "summary": "Create user with bcrypt password", - "operationId": "usersCreateBcryptUser", + }, + "patch": { + "summary": "Update user target", + "operationId": "usersUpdateTarget", "consumes": [ "application\/json" ], @@ -57828,34 +64554,34 @@ "tags": [ "users" ], - "description": "Create a new user. Password provided must be hashed with the [Bcrypt](https:\/\/en.wikipedia.org\/wiki\/Bcrypt) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "description": "Update a messaging target.", "responses": { - "201": { - "description": "User", + "200": { + "description": "Target", "schema": { - "$ref": "#\/definitions\/user" + "$ref": "#\/definitions\/target" } } }, "deprecated": false, "x-appwrite": { - "method": "createBcryptUser", - "group": "users", - "weight": 121, + "method": "updateTarget", + "group": "targets", + "weight": 133, "cookies": false, "type": "", - "demo": "users\/create-bcrypt-user.md", + "demo": "users\/update-target.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "targets.write", "platforms": [ - "console", - "server" + "server", + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-bcrypt-user.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-target.md", "auth": { "Project": [] } @@ -57867,88 +64593,86 @@ } ], "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "type": "string", + "x-example": "<USER_ID>", + "in": "path" + }, + { + "name": "targetId", + "description": "Target ID.", + "required": true, + "type": "string", + "x-example": "<TARGET_ID>", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "userId": { - "type": "string", - "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.", - "default": null, - "x-example": "<USER_ID>" - }, - "email": { + "identifier": { "type": "string", - "description": "User email.", - "default": null, - "x-example": "email@example.com", - "format": "email" + "description": "The target identifier (token, email, phone etc.)", + "default": "", + "x-example": "<IDENTIFIER>" }, - "password": { + "providerId": { "type": "string", - "description": "User password hashed using Bcrypt.", - "default": null, - "x-example": "password", - "format": "password" + "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.", + "default": "", + "x-example": "<PROVIDER_ID>" }, "name": { "type": "string", - "description": "User name. Max length: 128 chars.", + "description": "Target name. Max length: 128 chars. For example: My Awesome App Galaxy S23.", "default": "", "x-example": "<NAME>" } - }, - "required": [ - "userId", - "email", - "password" - ] + } } } ] - } - }, - "\/users\/identities": { - "get": { - "summary": "List identities", - "operationId": "usersListIdentities", - "consumes": [], - "produces": [ + }, + "delete": { + "summary": "Delete user target", + "operationId": "usersDeleteTarget", + "consumes": [ "application\/json" ], + "produces": [], "tags": [ "users" ], - "description": "Get identities for all users.", + "description": "Delete a messaging target.", "responses": { - "200": { - "description": "Identities List", - "schema": { - "$ref": "#\/definitions\/identityList" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "listIdentities", - "group": "identities", - "weight": 137, + "method": "deleteTarget", + "group": "targets", + "weight": 145, "cookies": false, "type": "", - "demo": "users\/list-identities.md", + "demo": "users\/delete-target.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": "targets.write", "platforms": [ - "console", - "server" + "server", + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-identities.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-target.md", "auth": { "Project": [] } @@ -57961,63 +64685,54 @@ ], "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, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, + "name": "userId", + "description": "User ID.", + "required": true, "type": "string", - "x-example": "<SEARCH>", - "default": "", - "in": "query" + "x-example": "<USER_ID>", + "in": "path" }, { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" + "name": "targetId", + "description": "Target ID.", + "required": true, + "type": "string", + "x-example": "<TARGET_ID>", + "in": "path" } ] } }, - "\/users\/identities\/{identityId}": { - "delete": { - "summary": "Delete identity", - "operationId": "usersDeleteIdentity", + "\/users\/{userId}\/tokens": { + "post": { + "summary": "Create token", + "operationId": "usersCreateToken", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ "users" ], - "description": "Delete an identity by its unique ID.", + "description": "Returns a token with a secret key for creating a session. Use the user ID and secret and submit a request to the [PUT \/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process.\n", "responses": { - "204": { - "description": "No content" + "201": { + "description": "Token", + "schema": { + "$ref": "#\/definitions\/token" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteIdentity", - "group": "identities", - "weight": 160, + "method": "createToken", + "group": "sessions", + "weight": 141, "cookies": false, "type": "", - "demo": "users\/delete-identity.md", + "demo": "users\/create-token.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -58028,7 +64743,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-identity.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-token.md", "auth": { "Project": [] } @@ -58041,20 +64756,43 @@ ], "parameters": [ { - "name": "identityId", - "description": "Identity ID.", + "name": "userId", + "description": "User ID.", "required": true, "type": "string", - "x-example": "<IDENTITY_ID>", + "x-example": "<USER_ID>", "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "length": { + "type": "integer", + "description": "Token length in characters. The default length is 6 characters", + "default": 6, + "x-example": 4, + "format": "int32" + }, + "expire": { + "type": "integer", + "description": "Token expiration period in seconds. The default expiration is 15 minutes.", + "default": 900, + "x-example": 60, + "format": "int32" + } + } + } } ] } }, - "\/users\/md5": { - "post": { - "summary": "Create user with MD5 password", - "operationId": "usersCreateMD5User", + "\/users\/{userId}\/verification": { + "patch": { + "summary": "Update email verification", + "operationId": "usersUpdateEmailVerification", "consumes": [ "application\/json" ], @@ -58064,9 +64802,9 @@ "tags": [ "users" ], - "description": "Create a new user. Password provided must be hashed with the [MD5](https:\/\/en.wikipedia.org\/wiki\/MD5) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "description": "Update the user email verification status by its unique ID.", "responses": { - "201": { + "200": { "description": "User", "schema": { "$ref": "#\/definitions\/user" @@ -58075,12 +64813,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "createMD5User", + "method": "updateEmailVerification", "group": "users", - "weight": 122, + "weight": 131, "cookies": false, "type": "", - "demo": "users\/create-md-5-user.md", + "demo": "users\/update-email-verification.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -58091,7 +64829,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-md5-user.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-email-verification.md", "auth": { "Project": [] } @@ -58103,53 +64841,39 @@ } ], "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "type": "string", + "x-example": "<USER_ID>", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "userId": { - "type": "string", - "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.", - "default": null, - "x-example": "<USER_ID>" - }, - "email": { - "type": "string", - "description": "User email.", - "default": null, - "x-example": "email@example.com", - "format": "email" - }, - "password": { - "type": "string", - "description": "User password hashed using MD5.", + "emailVerification": { + "type": "boolean", + "description": "User email verification status.", "default": null, - "x-example": "password", - "format": "password" - }, - "name": { - "type": "string", - "description": "User name. Max length: 128 chars.", - "default": "", - "x-example": "<NAME>" + "x-example": false } }, "required": [ - "userId", - "email", - "password" + "emailVerification" ] } } ] } }, - "\/users\/phpass": { - "post": { - "summary": "Create user with PHPass password", - "operationId": "usersCreatePHPassUser", + "\/users\/{userId}\/verification\/phone": { + "patch": { + "summary": "Update phone verification", + "operationId": "usersUpdatePhoneVerification", "consumes": [ "application\/json" ], @@ -58159,9 +64883,9 @@ "tags": [ "users" ], - "description": "Create a new user. Password provided must be hashed with the [PHPass](https:\/\/www.openwall.com\/phpass\/) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "description": "Update the user phone verification status by its unique ID.", "responses": { - "201": { + "200": { "description": "User", "schema": { "$ref": "#\/definitions\/user" @@ -58170,12 +64894,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "createPHPassUser", + "method": "updatePhoneVerification", "group": "users", - "weight": 125, + "weight": 126, "cookies": false, "type": "", - "demo": "users\/create-ph-pass-user.md", + "demo": "users\/update-phone-verification.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -58186,7 +64910,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-phpass-user.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-phone-verification.md", "auth": { "Project": [] } @@ -58198,53 +64922,39 @@ } ], "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "type": "string", + "x-example": "<USER_ID>", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "userId": { - "type": "string", - "description": "User ID. Choose a custom ID or pass the string `ID.unique()`to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": null, - "x-example": "<USER_ID>" - }, - "email": { - "type": "string", - "description": "User email.", - "default": null, - "x-example": "email@example.com", - "format": "email" - }, - "password": { - "type": "string", - "description": "User password hashed using PHPass.", + "phoneVerification": { + "type": "boolean", + "description": "User phone verification status.", "default": null, - "x-example": "password", - "format": "password" - }, - "name": { - "type": "string", - "description": "User name. Max length: 128 chars.", - "default": "", - "x-example": "<NAME>" + "x-example": false } }, "required": [ - "userId", - "email", - "password" + "phoneVerification" ] } } ] } }, - "\/users\/scrypt": { + "\/vcs\/github\/installations\/{installationId}\/detections": { "post": { - "summary": "Create user with Scrypt password", - "operationId": "usersCreateScryptUser", + "summary": "Create repository detection", + "operationId": "vcsCreateRepositoryDetection", "consumes": [ "application\/json" ], @@ -58252,249 +64962,189 @@ "application\/json" ], "tags": [ - "users" + "vcs" ], - "description": "Create a new user. Password provided must be hashed with the [Scrypt](https:\/\/github.com\/Tarsnap\/scrypt) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "description": "Analyze a GitHub repository to automatically detect the programming language and runtime environment. This endpoint scans the repository's files and language statistics to determine the appropriate runtime settings for your function. The GitHub installation must be properly configured and the repository must be accessible through your installation for this endpoint to work.", "responses": { - "201": { - "description": "User", + "200": { + "description": "DetectionFramework", "schema": { - "$ref": "#\/definitions\/user" + "$ref": "#\/definitions\/detectionFramework" } } }, "deprecated": false, "x-appwrite": { - "method": "createScryptUser", - "group": "users", - "weight": 126, + "method": "createRepositoryDetection", + "group": "repositories", + "weight": 623, "cookies": false, "type": "", - "demo": "users\/create-scrypt-user.md", + "demo": "vcs\/create-repository-detection.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "vcs.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-scrypt-user.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/create-repository-detection.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ + { + "name": "installationId", + "description": "Installation Id", + "required": true, + "type": "string", + "x-example": "<INSTALLATION_ID>", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "userId": { - "type": "string", - "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.", - "default": null, - "x-example": "<USER_ID>" - }, - "email": { - "type": "string", - "description": "User email.", - "default": null, - "x-example": "email@example.com", - "format": "email" - }, - "password": { + "providerRepositoryId": { "type": "string", - "description": "User password hashed using Scrypt.", + "description": "Repository Id", "default": null, - "x-example": "password", - "format": "password" + "x-example": "<PROVIDER_REPOSITORY_ID>" }, - "passwordSalt": { + "type": { "type": "string", - "description": "Optional salt used to hash password.", - "default": null, - "x-example": "<PASSWORD_SALT>" - }, - "passwordCpu": { - "type": "integer", - "description": "Optional CPU cost used to hash password.", - "default": null, - "x-example": null, - "format": "int32" - }, - "passwordMemory": { - "type": "integer", - "description": "Optional memory cost used to hash password.", - "default": null, - "x-example": null, - "format": "int32" - }, - "passwordParallel": { - "type": "integer", - "description": "Optional parallelization cost used to hash password.", - "default": null, - "x-example": null, - "format": "int32" - }, - "passwordLength": { - "type": "integer", - "description": "Optional hash length used to hash password.", + "description": "Detector type. Must be one of the following: runtime, framework", "default": null, - "x-example": null, - "format": "int32" + "x-example": "runtime", + "enum": [ + "runtime", + "framework" + ], + "x-enum-name": "VCSDetectionType", + "x-enum-keys": [] }, - "name": { + "providerRootDirectory": { "type": "string", - "description": "User name. Max length: 128 chars.", + "description": "Path to Root Directory", "default": "", - "x-example": "<NAME>" + "x-example": "<PROVIDER_ROOT_DIRECTORY>" } }, "required": [ - "userId", - "email", - "password", - "passwordSalt", - "passwordCpu", - "passwordMemory", - "passwordParallel", - "passwordLength" + "providerRepositoryId", + "type" ] } } ] - } - }, - "\/users\/scrypt-modified": { - "post": { - "summary": "Create user with Scrypt modified password", - "operationId": "usersCreateScryptModifiedUser", - "consumes": [ - "application\/json" - ], + } + }, + "\/vcs\/github\/installations\/{installationId}\/providerRepositories": { + "get": { + "summary": "List repositories", + "operationId": "vcsListRepositories", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "users" + "vcs" ], - "description": "Create a new user. Password provided must be hashed with the [Scrypt Modified](https:\/\/gist.github.com\/Meldiron\/eecf84a0225eccb5a378d45bb27462cc) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "description": "Get a list of GitHub repositories available through your installation. This endpoint returns repositories with their basic information, detected runtime environments, and latest push dates. You can optionally filter repositories using a search term. Each repository's runtime is automatically detected based on its contents and language statistics. The GitHub installation must be properly configured for this endpoint to work.", "responses": { - "201": { - "description": "User", + "200": { + "description": "Framework Provider Repositories List", "schema": { - "$ref": "#\/definitions\/user" + "$ref": "#\/definitions\/providerRepositoryFrameworkList" } } }, "deprecated": false, "x-appwrite": { - "method": "createScryptModifiedUser", - "group": "users", - "weight": 127, + "method": "listRepositories", + "group": "repositories", + "weight": 620, "cookies": false, "type": "", - "demo": "users\/create-scrypt-modified-user.md", + "demo": "vcs\/list-repositories.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "vcs.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-scrypt-modified-user.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/list-repositories.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "userId": { - "type": "string", - "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.", - "default": null, - "x-example": "<USER_ID>" - }, - "email": { - "type": "string", - "description": "User email.", - "default": null, - "x-example": "email@example.com", - "format": "email" - }, - "password": { - "type": "string", - "description": "User password hashed using Scrypt Modified.", - "default": null, - "x-example": "password", - "format": "password" - }, - "passwordSalt": { - "type": "string", - "description": "Salt used to hash password.", - "default": null, - "x-example": "<PASSWORD_SALT>" - }, - "passwordSaltSeparator": { - "type": "string", - "description": "Salt separator used to hash password.", - "default": null, - "x-example": "<PASSWORD_SALT_SEPARATOR>" - }, - "passwordSignerKey": { - "type": "string", - "description": "Signer key used to hash password.", - "default": null, - "x-example": "<PASSWORD_SIGNER_KEY>" - }, - "name": { - "type": "string", - "description": "User name. Max length: 128 chars.", - "default": "", - "x-example": "<NAME>" - } - }, - "required": [ - "userId", - "email", - "password", - "passwordSalt", - "passwordSaltSeparator", - "passwordSignerKey" - ] - } + "name": "installationId", + "description": "Installation Id", + "required": true, + "type": "string", + "x-example": "<INSTALLATION_ID>", + "in": "path" + }, + { + "name": "type", + "description": "Detector type. Must be one of the following: runtime, framework", + "required": true, + "type": "string", + "x-example": "runtime", + "enum": [ + "runtime", + "framework" + ], + "x-enum-name": "VCSDetectionType", + "x-enum-keys": [], + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "type": "string", + "x-example": "<SEARCH>", + "default": "", + "in": "query" + }, + { + "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, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" } ] - } - }, - "\/users\/sha": { + }, "post": { - "summary": "Create user with SHA password", - "operationId": "usersCreateSHAUser", + "summary": "Create repository", + "operationId": "vcsCreateRepository", "consumes": [ "application\/json" ], @@ -58502,149 +65152,119 @@ "application\/json" ], "tags": [ - "users" + "vcs" ], - "description": "Create a new user. Password provided must be hashed with the [SHA](https:\/\/en.wikipedia.org\/wiki\/Secure_Hash_Algorithm) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "description": "Create a new GitHub repository through your installation. This endpoint allows you to create either a public or private repository by specifying a name and visibility setting. The repository will be created under your GitHub user account or organization, depending on your installation type. The GitHub installation must be properly configured and have the necessary permissions for repository creation.", "responses": { - "201": { - "description": "User", + "200": { + "description": "ProviderRepository", "schema": { - "$ref": "#\/definitions\/user" + "$ref": "#\/definitions\/providerRepository" } } }, "deprecated": false, "x-appwrite": { - "method": "createSHAUser", - "group": "users", - "weight": 124, + "method": "createRepository", + "group": "repositories", + "weight": 618, "cookies": false, "type": "", - "demo": "users\/create-sha-user.md", + "demo": "vcs\/create-repository.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "vcs.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-sha-user.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/create-repository.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ + { + "name": "installationId", + "description": "Installation Id", + "required": true, + "type": "string", + "x-example": "<INSTALLATION_ID>", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "userId": { - "type": "string", - "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.", - "default": null, - "x-example": "<USER_ID>" - }, - "email": { + "name": { "type": "string", - "description": "User email.", + "description": "Repository name (slug)", "default": null, - "x-example": "email@example.com", - "format": "email" + "x-example": "<NAME>" }, - "password": { - "type": "string", - "description": "User password hashed using SHA.", + "private": { + "type": "boolean", + "description": "Mark repository public or private", "default": null, - "x-example": "password", - "format": "password" - }, - "passwordVersion": { - "type": "string", - "description": "Optional SHA version used to hash password. Allowed values are: 'sha1', 'sha224', 'sha256', 'sha384', 'sha512\/224', 'sha512\/256', 'sha512', 'sha3-224', 'sha3-256', 'sha3-384', 'sha3-512'", - "default": "", - "x-example": "sha1", - "enum": [ - "sha1", - "sha224", - "sha256", - "sha384", - "sha512\/224", - "sha512\/256", - "sha512", - "sha3-224", - "sha3-256", - "sha3-384", - "sha3-512" - ], - "x-enum-name": "PasswordHash", - "x-enum-keys": [] - }, - "name": { - "type": "string", - "description": "User name. Max length: 128 chars.", - "default": "", - "x-example": "<NAME>" + "x-example": false } }, "required": [ - "userId", - "email", - "password" + "name", + "private" ] } } ] } }, - "\/users\/usage": { + "\/vcs\/github\/installations\/{installationId}\/providerRepositories\/{providerRepositoryId}": { "get": { - "summary": "Get users usage stats", - "operationId": "usersGetUsage", + "summary": "Get repository", + "operationId": "vcsGetRepository", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "users" + "vcs" ], - "description": "Get usage metrics and statistics for all users in the project. You can view the total number of users and sessions. The response includes both current totals and historical data over time. Use the optional range parameter to specify the time window for historical data: 24h (last 24 hours), 30d (last 30 days), or 90d (last 90 days). If not specified, range defaults to 30 days.\n", + "description": "Get detailed information about a specific GitHub repository from your installation. This endpoint returns repository details including its ID, name, visibility status, organization, and latest push date. The GitHub installation must be properly configured and have access to the requested repository for this endpoint to work.", "responses": { "200": { - "description": "UsageUsers", + "description": "ProviderRepository", "schema": { - "$ref": "#\/definitions\/usageUsers" + "$ref": "#\/definitions\/providerRepository" } } }, "deprecated": false, "x-appwrite": { - "method": "getUsage", - "group": null, - "weight": 162, + "method": "getRepository", + "group": "repositories", + "weight": 619, "cookies": false, "type": "", - "demo": "users\/get-usage.md", + "demo": "vcs\/get-repository.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": "vcs.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-usage.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/get-repository.md", "auth": { "Project": [] } @@ -58656,149 +65276,180 @@ ], "parameters": [ { - "name": "range", - "description": "Date range.", - "required": false, + "name": "installationId", + "description": "Installation Id", + "required": true, "type": "string", - "x-example": "24h", - "enum": [ - "24h", - "30d", - "90d" - ], - "x-enum-name": "UsageRange", - "x-enum-keys": [ - "Twenty Four Hours", - "Thirty Days", - "Ninety Days" - ], - "default": "30d", - "in": "query" + "x-example": "<INSTALLATION_ID>", + "in": "path" + }, + { + "name": "providerRepositoryId", + "description": "Repository Id", + "required": true, + "type": "string", + "x-example": "<PROVIDER_REPOSITORY_ID>", + "in": "path" } ] } }, - "\/users\/{userId}": { + "\/vcs\/github\/installations\/{installationId}\/providerRepositories\/{providerRepositoryId}\/branches": { "get": { - "summary": "Get user", - "operationId": "usersGet", + "summary": "List repository branches", + "operationId": "vcsListRepositoryBranches", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "users" + "vcs" ], - "description": "Get a user by its unique ID.", + "description": "Get a list of all branches from a GitHub repository in your installation. This endpoint returns the names of all branches in the repository and their total count. The GitHub installation must be properly configured and have access to the requested repository for this endpoint to work.\n", "responses": { "200": { - "description": "User", + "description": "Branches List", "schema": { - "$ref": "#\/definitions\/user" + "$ref": "#\/definitions\/branchList" } } }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": "users", - "weight": 130, + "method": "listRepositoryBranches", + "group": "repositories", + "weight": 621, "cookies": false, "type": "", - "demo": "users\/get.md", + "demo": "vcs\/list-repository-branches.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": "vcs.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/list-repository-branches.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "installationId", + "description": "Installation Id", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<INSTALLATION_ID>", + "in": "path" + }, + { + "name": "providerRepositoryId", + "description": "Repository Id", + "required": true, + "type": "string", + "x-example": "<PROVIDER_REPOSITORY_ID>", "in": "path" } ] - }, - "delete": { - "summary": "Delete user", - "operationId": "usersDelete", - "consumes": [ + } + }, + "\/vcs\/github\/installations\/{installationId}\/providerRepositories\/{providerRepositoryId}\/contents": { + "get": { + "summary": "Get files and directories of a VCS repository", + "operationId": "vcsGetRepositoryContents", + "consumes": [], + "produces": [ "application\/json" ], - "produces": [], "tags": [ - "users" + "vcs" ], - "description": "Delete a user by its unique ID, thereby releasing it's ID. Since ID is released and can be reused, all user-related resources like documents or storage files should be deleted before user deletion. If you want to keep ID reserved, use the [updateStatus](https:\/\/appwrite.io\/docs\/server\/users#usersUpdateStatus) endpoint instead.", + "description": "Get a list of files and directories from a GitHub repository connected to your project. This endpoint returns the contents of a specified repository path, including file names, sizes, and whether each item is a file or directory. The GitHub installation must be properly configured and the repository must be accessible through your installation for this endpoint to work.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "VCS Content List", + "schema": { + "$ref": "#\/definitions\/vcsContentList" + } } }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": "users", - "weight": 158, + "method": "getRepositoryContents", + "group": "repositories", + "weight": 622, "cookies": false, "type": "", - "demo": "users\/delete.md", + "demo": "vcs\/get-repository-contents.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "vcs.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/get-repository-contents.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "installationId", + "description": "Installation Id", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<INSTALLATION_ID>", + "in": "path" + }, + { + "name": "providerRepositoryId", + "description": "Repository Id", + "required": true, + "type": "string", + "x-example": "<PROVIDER_REPOSITORY_ID>", "in": "path" + }, + { + "name": "providerRootDirectory", + "description": "Path to get contents of nested directory", + "required": false, + "type": "string", + "x-example": "<PROVIDER_ROOT_DIRECTORY>", + "default": "", + "in": "query" + }, + { + "name": "providerReference", + "description": "Git reference (branch, tag, commit) to get contents from", + "required": false, + "type": "string", + "x-example": "<PROVIDER_REFERENCE>", + "default": "", + "in": "query" } ] } }, - "\/users\/{userId}\/email": { + "\/vcs\/github\/installations\/{installationId}\/repositories\/{repositoryId}": { "patch": { - "summary": "Update email", - "operationId": "usersUpdateEmail", + "summary": "Update external deployment (authorize)", + "operationId": "vcsUpdateExternalDeployments", "consumes": [ "application\/json" ], @@ -58806,53 +65457,56 @@ "application\/json" ], "tags": [ - "users" + "vcs" ], - "description": "Update the user email by its unique ID.", + "description": "Authorize and create deployments for a GitHub pull request in your project. This endpoint allows external contributions by creating deployments from pull requests, enabling preview environments for code review. The pull request must be open and not previously authorized. The GitHub installation must be properly configured and have access to both the repository and pull request for this endpoint to work.", "responses": { - "200": { - "description": "User", - "schema": { - "$ref": "#\/definitions\/user" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateEmail", - "group": "users", - "weight": 143, + "method": "updateExternalDeployments", + "group": "repositories", + "weight": 813, "cookies": false, "type": "", - "demo": "users\/update-email.md", + "demo": "vcs\/update-external-deployments.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "vcs.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-email.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/update-external-deployments.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "installationId", + "description": "Installation Id", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<INSTALLATION_ID>", + "in": "path" + }, + { + "name": "repositoryId", + "description": "VCS Repository Id", + "required": true, + "type": "string", + "x-example": "<REPOSITORY_ID>", "in": "path" }, { @@ -58861,312 +65515,253 @@ "schema": { "type": "object", "properties": { - "email": { + "providerPullRequestId": { "type": "string", - "description": "User email.", + "description": "GitHub Pull Request Id", "default": null, - "x-example": "email@example.com", - "format": "email" + "x-example": "<PROVIDER_PULL_REQUEST_ID>" } }, "required": [ - "email" + "providerPullRequestId" ] } } ] } }, - "\/users\/{userId}\/jwts": { - "post": { - "summary": "Create user JWT", - "operationId": "usersCreateJWT", - "consumes": [ - "application\/json" - ], + "\/vcs\/installations": { + "get": { + "summary": "List installations", + "operationId": "vcsListInstallations", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "users" + "vcs" ], - "description": "Use this endpoint to create a JSON Web Token for user by its unique ID. You can use the resulting JWT to authenticate on behalf of the user. The JWT secret will become invalid if the session it uses gets deleted.", + "description": "List all VCS installations configured for the current project. This endpoint returns a list of installations including their provider, organization, and other configuration details.\n", "responses": { - "201": { - "description": "JWT", + "200": { + "description": "Installations List", "schema": { - "$ref": "#\/definitions\/jwt" + "$ref": "#\/definitions\/installationList" } } }, "deprecated": false, "x-appwrite": { - "method": "createJWT", - "group": "sessions", - "weight": 161, + "method": "listInstallations", + "group": "installations", + "weight": 616, "cookies": false, "type": "", - "demo": "users\/create-jwt.md", + "demo": "vcs\/list-installations.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "vcs.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-user-jwt.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/list-installations.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", - "required": true, + "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: provider, organization", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, "type": "string", - "x-example": "<USER_ID>", - "in": "path" + "x-example": "<SEARCH>", + "default": "", + "in": "query" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "sessionId": { - "type": "string", - "description": "Session ID. Use the string 'recent' to use the most recent session. Defaults to the most recent session.", - "default": "", - "x-example": "<SESSION_ID>" - }, - "duration": { - "type": "integer", - "description": "Time in seconds before JWT expires. Default duration is 900 seconds, and maximum is 3600 seconds.", - "default": 900, - "x-example": 0, - "format": "int32" - } - } - } + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" } ] } }, - "\/users\/{userId}\/labels": { - "put": { - "summary": "Update user labels", - "operationId": "usersUpdateLabels", - "consumes": [ - "application\/json" - ], + "\/vcs\/installations\/{installationId}": { + "get": { + "summary": "Get installation", + "operationId": "vcsGetInstallation", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "users" + "vcs" ], - "description": "Update the user labels by its unique ID. \n\nLabels can be used to grant access to resources. While teams are a way for user's to share access to a resource, labels can be defined by the developer to grant access without an invitation. See the [Permissions docs](https:\/\/appwrite.io\/docs\/permissions) for more info.", + "description": "Get a VCS installation by its unique ID. This endpoint returns the installation's details including its provider, organization, and configuration. ", "responses": { "200": { - "description": "User", + "description": "Installation", "schema": { - "$ref": "#\/definitions\/user" + "$ref": "#\/definitions\/installation" } } }, "deprecated": false, "x-appwrite": { - "method": "updateLabels", - "group": "users", - "weight": 139, + "method": "getInstallation", + "group": "installations", + "weight": 615, "cookies": false, "type": "", - "demo": "users\/update-labels.md", + "demo": "vcs\/get-installation.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "vcs.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-labels.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/get-installation.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "installationId", + "description": "Installation Id", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<INSTALLATION_ID>", "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "labels": { - "type": "array", - "description": "Array of user labels. Replaces the previous labels. Maximum of 1000 labels are allowed, each up to 36 alphanumeric characters long.", - "default": null, - "x-example": null, - "items": { - "type": "string" - } - } - }, - "required": [ - "labels" - ] - } } ] - } - }, - "\/users\/{userId}\/logs": { - "get": { - "summary": "List user logs", - "operationId": "usersListLogs", - "consumes": [], - "produces": [ + }, + "delete": { + "summary": "Delete installation", + "operationId": "vcsDeleteInstallation", + "consumes": [ "application\/json" ], + "produces": [], "tags": [ - "users" + "vcs" ], - "description": "Get the user activity logs list by its unique ID.", + "description": "Delete a VCS installation by its unique ID. This endpoint removes the installation and all its associated repositories from the project.", "responses": { - "200": { - "description": "Logs List", - "schema": { - "$ref": "#\/definitions\/logList" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "listLogs", - "group": "logs", - "weight": 135, + "method": "deleteInstallation", + "group": "installations", + "weight": 617, "cookies": false, "type": "", - "demo": "users\/list-logs.md", + "demo": "vcs\/delete-installation.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": "vcs.write", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-user-logs.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/delete-installation.md", "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "installationId", + "description": "Installation Id", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<INSTALLATION_ID>", "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). Only supported methods are limit and offset", - "required": false, - "type": "array", - "collectionFormat": "multi", - "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, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" } ] } }, - "\/users\/{userId}\/memberships": { + "\/vectordb": { "get": { - "summary": "List user memberships", - "operationId": "usersListMemberships", + "summary": "List databases", + "operationId": "vectorDBList", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "users" + "vectorDB" ], - "description": "Get the user membership list by its unique ID.", + "description": false, "responses": { "200": { - "description": "Memberships List", + "description": "Databases List", "schema": { - "$ref": "#\/definitions\/membershipList" + "$ref": "#\/definitions\/databaseList" } } }, "deprecated": false, "x-appwrite": { - "method": "listMemberships", - "group": "memberships", - "weight": 134, + "method": "list", + "group": "vectordb", + "weight": 431, "cookies": false, "type": "", - "demo": "users\/list-memberships.md", + "demo": "vectordb\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": "databases.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-user-memberships.md", "auth": { "Project": [] } @@ -59178,17 +65773,9 @@ } ], "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "type": "string", - "x-example": "<USER_ID>", - "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: userId, teamId, invited, joined, confirm, roles", + "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, "type": "array", "collectionFormat": "multi", @@ -59217,12 +65804,10 @@ "in": "query" } ] - } - }, - "\/users\/{userId}\/mfa": { - "patch": { - "summary": "Update MFA", - "operationId": "usersUpdateMfa", + }, + "post": { + "summary": "Create database", + "operationId": "vectorDBCreate", "consumes": [ "application\/json" ], @@ -59230,96 +65815,35 @@ "application\/json" ], "tags": [ - "users" + "vectorDB" ], - "description": "Enable or disable MFA on a user account.", + "description": false, "responses": { - "200": { - "description": "User", + "201": { + "description": "Database", "schema": { - "$ref": "#\/definitions\/user" + "$ref": "#\/definitions\/database" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateMfa", - "group": "users", - "weight": 148, + "method": "create", + "group": "vectordb", + "weight": 427, "cookies": false, "type": "", - "demo": "users\/update-mfa.md", + "demo": "vectordb\/create.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-mfa.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.updateMFA" - }, - "methods": [ - { - "name": "updateMfa", - "namespace": "users", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "userId", - "mfa" - ], - "required": [ - "userId", - "mfa" - ], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/user" - } - ], - "description": "Enable or disable MFA on a user account.", - "demo": "users\/update-mfa.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.updateMFA" - } - }, - { - "name": "updateMFA", - "namespace": "users", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "userId", - "mfa" - ], - "required": [ - "userId", - "mfa" - ], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/user" - } - ], - "description": "Enable or disable MFA on a user account.", - "demo": "users\/update-mfa.md", - "public": true - } - ], + "public": true, "auth": { "Project": [] } @@ -59331,256 +65855,106 @@ } ], "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "type": "string", - "x-example": "<USER_ID>", - "in": "path" - }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "mfa": { - "type": "boolean", - "description": "Enable or disable MFA.", + "databaseId": { + "type": "string", + "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.", + "default": null, + "x-example": "<DATABASE_ID>" + }, + "name": { + "type": "string", + "description": "Database name. Max length: 128 chars.", "default": null, + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "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.", + "default": true, "x-example": false } }, "required": [ - "mfa" + "databaseId", + "name" ] } } ] } }, - "\/users\/{userId}\/mfa\/authenticators\/{type}": { - "delete": { - "summary": "Delete authenticator", - "operationId": "usersDeleteMfaAuthenticator", + "\/vectordb\/embeddings\/text": { + "post": { + "summary": "Create Text Embeddings", + "operationId": "vectorDBCreateTextEmbeddings", "consumes": [ "application\/json" ], - "produces": [], - "tags": [ - "users" - ], - "description": "Delete an authenticator app.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": true, - "x-appwrite": { - "method": "deleteMfaAuthenticator", - "group": "mfa", - "weight": 153, - "cookies": false, - "type": "", - "demo": "users\/delete-mfa-authenticator.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-mfa-authenticator.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.deleteMFAAuthenticator" - }, - "methods": [ - { - "name": "deleteMfaAuthenticator", - "namespace": "users", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "userId", - "type" - ], - "required": [ - "userId", - "type" - ], - "responses": [ - { - "code": 204 - } - ], - "description": "Delete an authenticator app.", - "demo": "users\/delete-mfa-authenticator.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.deleteMFAAuthenticator" - } - }, - { - "name": "deleteMFAAuthenticator", - "namespace": "users", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "userId", - "type" - ], - "required": [ - "userId", - "type" - ], - "responses": [ - { - "code": 204 - } - ], - "description": "Delete an authenticator app.", - "demo": "users\/delete-mfa-authenticator.md", - "public": true - } - ], - "auth": { - "Project": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "type": "string", - "x-example": "<USER_ID>", - "in": "path" - }, - { - "name": "type", - "description": "Type of authenticator.", - "required": true, - "type": "string", - "x-example": "totp", - "enum": [ - "totp" - ], - "x-enum-name": "AuthenticatorType", - "x-enum-keys": [], - "in": "path" - } - ] - } - }, - "\/users\/{userId}\/mfa\/factors": { - "get": { - "summary": "List factors", - "operationId": "usersListMfaFactors", - "consumes": [], "produces": [ "application\/json" ], "tags": [ - "users" + "vectorDB" ], - "description": "List the factors available on the account to be used as a MFA challange.", + "description": false, "responses": { "200": { - "description": "MFAFactors", + "description": "Embedding list", "schema": { - "$ref": "#\/definitions\/mfaFactors" + "$ref": "#\/definitions\/embeddingList" } - } - }, - "deprecated": true, - "x-appwrite": { - "method": "listMfaFactors", - "group": "mfa", - "weight": 149, - "cookies": false, - "type": "", - "demo": "users\/list-mfa-factors.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-mfa-factors.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.listMFAFactors" - }, - "methods": [ - { - "name": "listMfaFactors", - "namespace": "users", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "userId" - ], - "required": [ - "userId" - ], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/mfaFactors" - } - ], - "description": "List the factors available on the account to be used as a MFA challange.", - "demo": "users\/list-mfa-factors.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.listMFAFactors" - } - }, + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createTextEmbeddings", + "group": "documents", + "weight": 454, + "cookies": false, + "type": "", + "demo": "vectordb\/create-text-embeddings.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, + "methods": [ { - "name": "listMFAFactors", - "namespace": "users", - "desc": "", + "name": "createTextEmbeddings", + "namespace": "vectorDB", + "desc": "Create Text Embedding", "auth": { "Project": [] }, "parameters": [ - "userId" + "databaseId", + "collectionId", + "documents" ], "required": [ - "userId" + "databaseId", + "collectionId", + "documents" ], "responses": [ { "code": 200, - "model": "#\/definitions\/mfaFactors" + "model": "#\/definitions\/embeddingList" } ], - "description": "List the factors available on the account to be used as a MFA challange.", - "demo": "users\/list-mfa-factors.md", + "description": "", + "demo": "vectordb\/create-text-embeddings.md", "public": true } ], @@ -59591,116 +65965,85 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", - "required": true, - "type": "string", - "x-example": "<USER_ID>", - "in": "path" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "texts": { + "type": "array", + "description": "Array of text to generate embeddings.", + "default": null, + "x-example": null, + "items": { + "type": "string" + } + }, + "model": { + "type": "string", + "description": "The embedding model to use for generating vector embeddings.", + "default": "embeddinggemma", + "x-example": "embeddinggemma", + "enum": [ + "embeddinggemma" + ], + "x-enum-name": null, + "x-enum-keys": [] + } + }, + "required": [ + "texts" + ] + } } ] } }, - "\/users\/{userId}\/mfa\/recovery-codes": { + "\/vectordb\/transactions": { "get": { - "summary": "Get MFA recovery codes", - "operationId": "usersGetMfaRecoveryCodes", + "summary": "List transactions", + "operationId": "vectorDBListTransactions", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "users" + "vectorDB" ], - "description": "Get recovery codes that can be used as backup for MFA flow by User ID. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", + "description": false, "responses": { "200": { - "description": "MFA Recovery Codes", + "description": "Transaction List", "schema": { - "$ref": "#\/definitions\/mfaRecoveryCodes" + "$ref": "#\/definitions\/transactionList" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "getMfaRecoveryCodes", - "group": "mfa", - "weight": 150, + "method": "listTransactions", + "group": "transactions", + "weight": 459, "cookies": false, "type": "", - "demo": "users\/get-mfa-recovery-codes.md", + "demo": "vectordb\/list-transactions.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": "documents.read", "platforms": [ "console", - "server" + "server", + "client" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-mfa-recovery-codes.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.getMFARecoveryCodes" - }, - "methods": [ - { - "name": "getMfaRecoveryCodes", - "namespace": "users", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "userId" - ], - "required": [ - "userId" - ], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/mfaRecoveryCodes" - } - ], - "description": "Get recovery codes that can be used as backup for MFA flow by User ID. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", - "demo": "users\/get-mfa-recovery-codes.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.getMFARecoveryCodes" - } - }, - { - "name": "getMFARecoveryCodes", - "namespace": "users", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "userId" - ], - "required": [ - "userId" - ], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/mfaRecoveryCodes" - } - ], - "description": "Get recovery codes that can be used as backup for MFA flow by User ID. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", - "demo": "users\/get-mfa-recovery-codes.md", - "public": true - } - ], + "public": true, "auth": { "Project": [] } @@ -59708,23 +66051,28 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", - "required": true, - "type": "string", - "x-example": "<USER_ID>", - "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).", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" } ] }, - "put": { - "summary": "Update MFA recovery codes (regenerate)", - "operationId": "usersUpdateMfaRecoveryCodes", + "post": { + "summary": "Create transaction", + "operationId": "vectorDBCreateTransaction", "consumes": [ "application\/json" ], @@ -59732,92 +66080,36 @@ "application\/json" ], "tags": [ - "users" + "vectorDB" ], - "description": "Regenerate recovery codes that can be used as backup for MFA flow by User ID. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", + "description": false, "responses": { - "200": { - "description": "MFA Recovery Codes", + "201": { + "description": "Transaction", "schema": { - "$ref": "#\/definitions\/mfaRecoveryCodes" + "$ref": "#\/definitions\/transaction" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateMfaRecoveryCodes", - "group": "mfa", - "weight": 152, + "method": "createTransaction", + "group": "transactions", + "weight": 455, "cookies": false, "type": "", - "demo": "users\/update-mfa-recovery-codes.md", + "demo": "vectordb\/create-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "documents.write", "platforms": [ "console", - "server" + "server", + "client" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-mfa-recovery-codes.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.updateMFARecoveryCodes" - }, - "methods": [ - { - "name": "updateMfaRecoveryCodes", - "namespace": "users", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "userId" - ], - "required": [ - "userId" - ], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/mfaRecoveryCodes" - } - ], - "description": "Regenerate recovery codes that can be used as backup for MFA flow by User ID. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", - "demo": "users\/update-mfa-recovery-codes.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.updateMFARecoveryCodes" - } - }, - { - "name": "updateMFARecoveryCodes", - "namespace": "users", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "userId" - ], - "required": [ - "userId" - ], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/mfaRecoveryCodes" - } - ], - "description": "Regenerate recovery codes that can be used as backup for MFA flow by User ID. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", - "demo": "users\/update-mfa-recovery-codes.md", - "public": false - } - ], + "public": true, "auth": { "Project": [] } @@ -59825,116 +66117,69 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", - "required": true, - "type": "string", - "x-example": "<USER_ID>", - "in": "path" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "ttl": { + "type": "integer", + "description": "Seconds before the transaction expires.", + "default": 300, + "x-example": 60, + "format": "int32" + } + } + } } ] - }, - "patch": { - "summary": "Create MFA recovery codes", - "operationId": "usersCreateMfaRecoveryCodes", - "consumes": [ - "application\/json" - ], + } + }, + "\/vectordb\/transactions\/{transactionId}": { + "get": { + "summary": "Get transaction", + "operationId": "vectorDBGetTransaction", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "users" + "vectorDB" ], - "description": "Generate recovery codes used as backup for MFA flow for User ID. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method by client SDK.", + "description": false, "responses": { - "201": { - "description": "MFA Recovery Codes", + "200": { + "description": "Transaction", "schema": { - "$ref": "#\/definitions\/mfaRecoveryCodes" + "$ref": "#\/definitions\/transaction" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createMfaRecoveryCodes", - "group": "mfa", - "weight": 151, + "method": "getTransaction", + "group": "transactions", + "weight": 456, "cookies": false, "type": "", - "demo": "users\/create-mfa-recovery-codes.md", + "demo": "vectordb\/get-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "documents.read", "platforms": [ "console", - "server" + "server", + "client" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-mfa-recovery-codes.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.createMFARecoveryCodes" - }, - "methods": [ - { - "name": "createMfaRecoveryCodes", - "namespace": "users", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "userId" - ], - "required": [ - "userId" - ], - "responses": [ - { - "code": 201, - "model": "#\/definitions\/mfaRecoveryCodes" - } - ], - "description": "Generate recovery codes used as backup for MFA flow for User ID. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method by client SDK.", - "demo": "users\/create-mfa-recovery-codes.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.createMFARecoveryCodes" - } - }, - { - "name": "createMFARecoveryCodes", - "namespace": "users", - "desc": "", - "auth": { - "Project": [] - }, - "parameters": [ - "userId" - ], - "required": [ - "userId" - ], - "responses": [ - { - "code": 201, - "model": "#\/definitions\/mfaRecoveryCodes" - } - ], - "description": "Generate recovery codes used as backup for MFA flow for User ID. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method by client SDK.", - "demo": "users\/create-mfa-recovery-codes.md", - "public": true - } - ], + "public": true, "auth": { "Project": [] } @@ -59942,25 +66187,24 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<TRANSACTION_ID>", "in": "path" } ] - } - }, - "\/users\/{userId}\/name": { + }, "patch": { - "summary": "Update name", - "operationId": "usersUpdateName", + "summary": "Update transaction", + "operationId": "vectorDBUpdateTransaction", "consumes": [ "application\/json" ], @@ -59968,36 +66212,36 @@ "application\/json" ], "tags": [ - "users" + "vectorDB" ], - "description": "Update the user name by its unique ID.", + "description": false, "responses": { "200": { - "description": "User", + "description": "Transaction", "schema": { - "$ref": "#\/definitions\/user" + "$ref": "#\/definitions\/transaction" } } }, "deprecated": false, "x-appwrite": { - "method": "updateName", - "group": "users", - "weight": 141, + "method": "updateTransaction", + "group": "transactions", + "weight": 457, "cookies": false, "type": "", - "demo": "users\/update-name.md", + "demo": "vectordb\/update-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "documents.write", "platforms": [ "console", - "server" + "server", + "client" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-name.md", "auth": { "Project": [] } @@ -60005,16 +66249,17 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<TRANSACTION_ID>", "in": "path" }, { @@ -60023,62 +66268,58 @@ "schema": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "User name. Max length: 128 chars.", - "default": null, - "x-example": "<NAME>" + "commit": { + "type": "boolean", + "description": "Commit transaction?", + "default": false, + "x-example": false + }, + "rollback": { + "type": "boolean", + "description": "Rollback transaction?", + "default": false, + "x-example": false } - }, - "required": [ - "name" - ] + } } } ] - } - }, - "\/users\/{userId}\/password": { - "patch": { - "summary": "Update password", - "operationId": "usersUpdatePassword", + }, + "delete": { + "summary": "Delete transaction", + "operationId": "vectorDBDeleteTransaction", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ - "users" + "vectorDB" ], - "description": "Update the user password by its unique ID.", + "description": false, "responses": { - "200": { - "description": "User", - "schema": { - "$ref": "#\/definitions\/user" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updatePassword", - "group": "users", - "weight": 142, + "method": "deleteTransaction", + "group": "transactions", + "weight": 458, "cookies": false, "type": "", - "demo": "users\/update-password.md", + "demo": "vectordb\/delete-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "documents.write", "platforms": [ "console", - "server" + "server", + "client" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-password.md", "auth": { "Project": [] } @@ -60086,43 +66327,26 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<TRANSACTION_ID>", "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "password": { - "type": "string", - "description": "New user password. Must be at least 8 chars.", - "default": null, - "x-example": null - } - }, - "required": [ - "password" - ] - } } ] } }, - "\/users\/{userId}\/phone": { - "patch": { - "summary": "Update phone", - "operationId": "usersUpdatePhone", + "\/vectordb\/transactions\/{transactionId}\/operations": { + "post": { + "summary": "Create operations", + "operationId": "vectorDBCreateOperations", "consumes": [ "application\/json" ], @@ -60130,36 +66354,36 @@ "application\/json" ], "tags": [ - "users" + "vectorDB" ], - "description": "Update the user phone by its unique ID.", + "description": false, "responses": { - "200": { - "description": "User", + "201": { + "description": "Transaction", "schema": { - "$ref": "#\/definitions\/user" + "$ref": "#\/definitions\/transaction" } } }, "deprecated": false, "x-appwrite": { - "method": "updatePhone", - "group": "users", - "weight": 144, + "method": "createOperations", + "group": "transactions", + "weight": 460, "cookies": false, "type": "", - "demo": "users\/update-phone.md", + "demo": "vectordb\/create-operations.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "documents.write", "platforms": [ "console", - "server" + "server", + "client" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-phone.md", "auth": { "Project": [] } @@ -60167,16 +66391,17 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<TRANSACTION_ID>", "in": "path" }, { @@ -60185,122 +66410,152 @@ "schema": { "type": "object", "properties": { - "number": { - "type": "string", - "description": "User phone number.", - "default": null, - "x-example": "+12065550100", - "format": "phone" + "operations": { + "type": "array", + "description": "Array of staged operations.", + "default": [], + "x-example": "[\n\t {\n\t \"action\": \"create\",\n\t \"databaseId\": \"<DATABASE_ID>\",\n\t \"collectionId\": \"<COLLECTION_ID>\",\n\t \"documentId\": \"<DOCUMENT_ID>\",\n\t \"data\": {\n\t \"name\": \"Walter O'Brien\"\n\t }\n\t }\n\t]", + "items": { + "type": "object" + } } - }, - "required": [ - "number" - ] + } } } ] } }, - "\/users\/{userId}\/prefs": { + "\/vectordb\/usage": { "get": { - "summary": "Get user preferences", - "operationId": "usersGetPrefs", + "summary": "Get VectorDB usage stats", + "operationId": "vectorDBListUsage", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "users" + "vectorDB" ], - "description": "Get the user preferences by its unique ID.", + "description": false, "responses": { "200": { - "description": "Preferences", + "description": "UsageVectorDBs", "schema": { - "$ref": "#\/definitions\/preferences" + "$ref": "#\/definitions\/usageVectorDBs" } } }, "deprecated": false, "x-appwrite": { - "method": "getPrefs", - "group": "users", - "weight": 131, + "method": "listUsage", + "group": null, + "weight": 433, "cookies": false, "type": "", - "demo": "users\/get-prefs.md", + "demo": "vectordb\/list-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": "collections.read", "platforms": [ - "console", - "server" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user-prefs.md", + "methods": [ + { + "name": "listUsage", + "namespace": "vectorDB", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "range" + ], + "required": [], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/usageVectorDBs" + } + ], + "description": "", + "demo": "vectordb\/list-usage.md", + "public": true + } + ], "auth": { "Project": [] } }, "security": [ { - "Project": [], - "Key": [] + "Project": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", - "required": true, + "name": "range", + "description": "Date range.", + "required": false, "type": "string", - "x-example": "<USER_ID>", - "in": "path" + "x-example": "24h", + "enum": [ + "24h", + "30d", + "90d" + ], + "x-enum-name": "UsageRange", + "x-enum-keys": [ + "Twenty Four Hours", + "Thirty Days", + "Ninety Days" + ], + "default": "30d", + "in": "query" } ] - }, - "patch": { - "summary": "Update user preferences", - "operationId": "usersUpdatePrefs", - "consumes": [ - "application\/json" - ], + } + }, + "\/vectordb\/{databaseId}": { + "get": { + "summary": "Get database", + "operationId": "vectorDBGet", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "users" + "vectorDB" ], - "description": "Update the user preferences by its unique ID. 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.", + "description": false, "responses": { "200": { - "description": "Preferences", + "description": "Database", "schema": { - "$ref": "#\/definitions\/preferences" + "$ref": "#\/definitions\/database" } } }, "deprecated": false, "x-appwrite": { - "method": "updatePrefs", - "group": "users", - "weight": 146, + "method": "get", + "group": "vectordb", + "weight": 428, "cookies": false, "type": "", - "demo": "users\/update-prefs.md", + "demo": "vectordb\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "databases.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-prefs.md", "auth": { "Project": [] } @@ -60313,73 +66568,54 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<DATABASE_ID>", "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "prefs": { - "type": "object", - "description": "Prefs key-value JSON object.", - "default": {}, - "x-example": "{}" - } - }, - "required": [ - "prefs" - ] - } } ] - } - }, - "\/users\/{userId}\/sessions": { - "get": { - "summary": "List user sessions", - "operationId": "usersListSessions", - "consumes": [], + }, + "put": { + "summary": "Update database", + "operationId": "vectorDBUpdate", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "users" + "vectorDB" ], - "description": "Get the user sessions list by its unique ID.", + "description": false, "responses": { "200": { - "description": "Sessions List", + "description": "Database", "schema": { - "$ref": "#\/definitions\/sessionList" + "$ref": "#\/definitions\/database" } } }, "deprecated": false, "x-appwrite": { - "method": "listSessions", - "group": "sessions", - "weight": 133, + "method": "update", + "group": "vectordb", + "weight": 429, "cookies": false, "type": "", - "demo": "users\/list-sessions.md", + "demo": "vectordb\/update.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-user-sessions.md", "auth": { "Project": [] } @@ -60392,64 +66628,73 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Database name. Max length: 128 chars.", + "default": null, + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "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.", + "default": true, + "x-example": false + } + }, + "required": [ + "name" + ] + } } ] }, - "post": { - "summary": "Create session", - "operationId": "usersCreateSession", + "delete": { + "summary": "Delete database", + "operationId": "vectorDBDelete", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ - "users" + "vectorDB" ], - "description": "Creates a session for a user. Returns an immediately usable session object.\n\nIf you want to generate a token for a custom authentication flow, use the [POST \/users\/{userId}\/tokens](https:\/\/appwrite.io\/docs\/server\/users#createToken) endpoint.", + "description": false, "responses": { - "201": { - "description": "Session", - "schema": { - "$ref": "#\/definitions\/session" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "createSession", - "group": "sessions", - "weight": 154, + "method": "delete", + "group": "vectordb", + "weight": 430, "cookies": false, "type": "", - "demo": "users\/create-session.md", + "demo": "vectordb\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-session.md", "auth": { "Project": [] } @@ -60462,50 +66707,54 @@ ], "parameters": [ { - "name": "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.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<DATABASE_ID>", "in": "path" } ] - }, - "delete": { - "summary": "Delete user sessions", - "operationId": "usersDeleteSessions", - "consumes": [ + } + }, + "\/vectordb\/{databaseId}\/collections": { + "get": { + "summary": "List collections", + "operationId": "vectorDBListCollections", + "consumes": [], + "produces": [ "application\/json" ], - "produces": [], "tags": [ - "users" + "vectorDB" ], - "description": "Delete all user's sessions by using the user's unique ID.", + "description": false, "responses": { - "204": { - "description": "No content" + "200": { + "description": "VectorDB Collections List", + "schema": { + "$ref": "#\/definitions\/vectordbCollectionList" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteSessions", - "group": "sessions", - "weight": 157, + "method": "listCollections", + "group": "collections", + "weight": 438, "cookies": false, "type": "", - "demo": "users\/delete-sessions.md", + "demo": "vectordb\/list-collections.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "collections.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-user-sessions.md", "auth": { "Project": [] } @@ -60518,52 +66767,84 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<DATABASE_ID>", "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, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "type": "string", + "x-example": "<SEARCH>", + "default": "", + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" } ] - } - }, - "\/users\/{userId}\/sessions\/{sessionId}": { - "delete": { - "summary": "Delete user session", - "operationId": "usersDeleteSession", + }, + "post": { + "summary": "Create collection", + "operationId": "vectorDBCreateCollection", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ - "users" + "vectorDB" ], - "description": "Delete a user sessions by its unique ID.", + "description": false, "responses": { - "204": { - "description": "No content" + "201": { + "description": "VectorDB Collection", + "schema": { + "$ref": "#\/definitions\/vectordbCollection" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteSession", - "group": "sessions", - "weight": 156, + "method": "createCollection", + "group": "collections", + "weight": 434, "cookies": false, "type": "", - "demo": "users\/delete-session.md", + "demo": "vectordb\/create-collection.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "collections.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-user-session.md", "auth": { "Project": [] } @@ -60576,65 +66857,108 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "sessionId", - "description": "Session ID.", - "required": true, - "type": "string", - "x-example": "<SESSION_ID>", - "in": "path" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "collectionId": { + "type": "string", + "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.", + "default": null, + "x-example": "<COLLECTION_ID>" + }, + "name": { + "type": "string", + "description": "Collection name. Max length: 128 chars.", + "default": null, + "x-example": "<NAME>" + }, + "dimension": { + "type": "integer", + "description": "Embedding dimension.", + "default": null, + "x-example": 1, + "format": "int32" + }, + "permissions": { + "type": "array", + "description": "An array of permissions strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "default": null, + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } + }, + "documentSecurity": { + "type": "boolean", + "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).", + "default": false, + "x-example": false + }, + "enabled": { + "type": "boolean", + "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.", + "default": true, + "x-example": false + } + }, + "required": [ + "collectionId", + "name", + "dimension" + ] + } } ] } }, - "\/users\/{userId}\/status": { - "patch": { - "summary": "Update user status", - "operationId": "usersUpdateStatus", - "consumes": [ - "application\/json" - ], + "\/vectordb\/{databaseId}\/collections\/{collectionId}": { + "get": { + "summary": "Get collection", + "operationId": "vectorDBGetCollection", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "users" + "vectorDB" ], - "description": "Update the user status by its unique ID. Use this endpoint as an alternative to deleting a user if you want to keep user's ID reserved.", + "description": false, "responses": { "200": { - "description": "User", + "description": "VectorDB Collection", "schema": { - "$ref": "#\/definitions\/user" + "$ref": "#\/definitions\/vectordbCollection" } } }, "deprecated": false, "x-appwrite": { - "method": "updateStatus", - "group": "users", - "weight": 138, + "method": "getCollection", + "group": "collections", + "weight": 435, "cookies": false, "type": "", - "demo": "users\/update-status.md", + "demo": "vectordb\/get-collection.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "collections.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-status.md", "auth": { "Project": [] } @@ -60647,73 +66971,62 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "status": { - "type": "boolean", - "description": "User Status. To activate the user pass `true` and to block the user pass `false`.", - "default": null, - "x-example": false - } - }, - "required": [ - "status" - ] - } + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", + "in": "path" } ] - } - }, - "\/users\/{userId}\/targets": { - "get": { - "summary": "List user targets", - "operationId": "usersListTargets", - "consumes": [], + }, + "put": { + "summary": "Update collection", + "operationId": "vectorDBUpdateCollection", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "users" + "vectorDB" ], - "description": "List the messaging targets that are associated with a user.", + "description": false, "responses": { "200": { - "description": "Target list", + "description": "VectorDB Collection", "schema": { - "$ref": "#\/definitions\/targetList" + "$ref": "#\/definitions\/vectordbCollection" } } }, "deprecated": false, "x-appwrite": { - "method": "listTargets", - "group": "targets", - "weight": 136, + "method": "updateCollection", + "group": "collections", + "weight": 436, "cookies": false, "type": "", - "demo": "users\/list-targets.md", + "demo": "vectordb\/update-collection.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "targets.read", + "scope": "collections.write", "platforms": [ - "server", - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-user-targets.md", "auth": { "Project": [] } @@ -60726,76 +67039,103 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<DATABASE_ID>", "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: userId, providerId, identifier, providerType", - "required": false, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", + "in": "path" }, { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Collection name. Max length: 128 chars.", + "default": null, + "x-example": "<NAME>" + }, + "dimension": { + "type": "integer", + "description": "Embedding dimensions.", + "default": null, + "x-example": 1, + "format": "int32" + }, + "permissions": { + "type": "array", + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "default": null, + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } + }, + "documentSecurity": { + "type": "boolean", + "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).", + "default": false, + "x-example": false + }, + "enabled": { + "type": "boolean", + "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.", + "default": true, + "x-example": false + } + }, + "required": [ + "name" + ] + } } ] }, - "post": { - "summary": "Create user target", - "operationId": "usersCreateTarget", + "delete": { + "summary": "Delete collection", + "operationId": "vectorDBDeleteCollection", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ - "users" + "vectorDB" ], - "description": "Create a messaging target.", + "description": false, "responses": { - "201": { - "description": "Target", - "schema": { - "$ref": "#\/definitions\/target" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "createTarget", - "group": "targets", - "weight": 128, + "method": "deleteCollection", + "group": "collections", + "weight": 437, "cookies": false, "type": "", - "demo": "users\/create-target.md", + "demo": "vectordb\/delete-collection.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "targets.write", + "scope": "collections.write", "platforms": [ - "server", - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-target.md", "auth": { "Project": [] } @@ -60808,106 +67148,63 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "targetId": { - "type": "string", - "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.", - "default": null, - "x-example": "<TARGET_ID>" - }, - "providerType": { - "type": "string", - "description": "The target provider type. Can be one of the following: `email`, `sms` or `push`.", - "default": null, - "x-example": "email", - "enum": [ - "email", - "sms", - "push" - ], - "x-enum-name": "MessagingProviderType", - "x-enum-keys": [] - }, - "identifier": { - "type": "string", - "description": "The target identifier (token, email, phone etc.)", - "default": null, - "x-example": "<IDENTIFIER>" - }, - "providerId": { - "type": "string", - "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.", - "default": "", - "x-example": "<PROVIDER_ID>" - }, - "name": { - "type": "string", - "description": "Target name. Max length: 128 chars. For example: My Awesome App Galaxy S23.", - "default": "", - "x-example": "<NAME>" - } - }, - "required": [ - "targetId", - "providerType", - "identifier" - ] - } + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", + "in": "path" } ] } }, - "\/users\/{userId}\/targets\/{targetId}": { + "\/vectordb\/{databaseId}\/collections\/{collectionId}\/documents": { "get": { - "summary": "Get user target", - "operationId": "usersGetTarget", + "summary": "List documents", + "operationId": "vectorDBListDocuments", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "users" + "vectorDB" ], - "description": "Get a user's push notification target by ID.", + "description": false, "responses": { "200": { - "description": "Target", + "description": "Documents List", "schema": { - "$ref": "#\/definitions\/target" + "$ref": "#\/definitions\/documentList" } } }, "deprecated": false, "x-appwrite": { - "method": "getTarget", - "group": "targets", - "weight": 132, + "method": "listDocuments", + "group": "documents", + "weight": 449, "cookies": false, "type": "", - "demo": "users\/get-target.md", + "demo": "vectordb\/list-documents.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "targets.read", + "scope": "documents.read", "platforms": [ - "server", - "console" + "console", + "client", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user-target.md", "auth": { "Project": [] } @@ -60915,31 +67212,71 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "targetId", - "description": "Target ID.", + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", "required": true, "type": "string", - "x-example": "<TARGET_ID>", + "x-example": "<COLLECTION_ID>", "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, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", + "required": false, + "type": "string", + "x-example": "<TRANSACTION_ID>", + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "type": "boolean", + "x-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, + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0, + "in": "query" } ] }, - "patch": { - "summary": "Update user target", - "operationId": "usersUpdateTarget", + "post": { + "summary": "Create document", + "operationId": "vectorDBCreateDocument", "consumes": [ "application\/json" ], @@ -60947,36 +67284,95 @@ "application\/json" ], "tags": [ - "users" + "vectorDB" ], - "description": "Update a messaging target.", + "description": false, "responses": { - "200": { - "description": "Target", + "201": { + "description": "Document", "schema": { - "$ref": "#\/definitions\/target" + "$ref": "#\/definitions\/document" } } }, "deprecated": false, "x-appwrite": { - "method": "updateTarget", - "group": "targets", - "weight": 147, + "method": "createDocument", + "group": "documents", + "weight": 445, "cookies": false, "type": "", - "demo": "users\/update-target.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "targets.write", + "demo": "vectordb\/create-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", "platforms": [ - "server", - "console" + "console", + "client", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-target.md", + "methods": [ + { + "name": "createDocument", + "namespace": "vectorDB", + "desc": "Create document", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions" + ], + "required": [ + "databaseId", + "collectionId", + "documentId", + "data" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/document" + } + ], + "description": "", + "demo": "vectordb\/create-document.md", + "public": true + }, + { + "name": "createDocuments", + "namespace": "vectorDB", + "desc": "Create documents", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documents" + ], + "required": [ + "databaseId", + "collectionId", + "documents" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/documentList" + } + ], + "description": "", + "demo": "vectordb\/create-documents.md", + "public": true + } + ], "auth": { "Project": [] } @@ -60984,24 +67380,25 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "targetId", - "description": "Target ID.", + "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, "type": "string", - "x-example": "<TARGET_ID>", + "x-example": "<COLLECTION_ID>", "in": "path" }, { @@ -61010,64 +67407,116 @@ "schema": { "type": "object", "properties": { - "identifier": { + "documentId": { "type": "string", - "description": "The target identifier (token, email, phone etc.)", + "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", "default": "", - "x-example": "<IDENTIFIER>" + "x-example": "<DOCUMENT_ID>" }, - "providerId": { - "type": "string", - "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.", - "default": "", - "x-example": "<PROVIDER_ID>" + "data": { + "type": "object", + "description": "Document data as JSON object.", + "default": [], + "x-example": "{\"embeddings\": [0.12, -0.55, 0.88, 1.02], \"metadata\": {\"key\":\"value\"} }" }, - "name": { + "permissions": { + "type": "array", + "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).", + "default": null, + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } + }, + "documents": { + "type": "array", + "description": "Array of documents data as JSON objects.", + "default": [], + "x-example": null, + "items": { + "type": "object" + } + }, + "transactionId": { "type": "string", - "description": "Target name. Max length: 128 chars. For example: My Awesome App Galaxy S23.", - "default": "", - "x-example": "<NAME>" + "description": "Transaction ID for staging the operation.", + "default": null, + "x-example": "<TRANSACTION_ID>" } } } } ] }, - "delete": { - "summary": "Delete user target", - "operationId": "usersDeleteTarget", + "put": { + "summary": "Upsert documents", + "operationId": "vectorDBUpsertDocuments", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ - "users" + "vectorDB" ], - "description": "Delete a messaging target.", + "description": false, "responses": { - "204": { - "description": "No content" + "201": { + "description": "Documents List", + "schema": { + "$ref": "#\/definitions\/documentList" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteTarget", - "group": "targets", - "weight": 159, + "method": "upsertDocuments", + "group": "documents", + "weight": 452, "cookies": false, "type": "", - "demo": "users\/delete-target.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "targets.write", + "demo": "vectordb\/upsert-documents.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", "platforms": [ - "server", - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-target.md", + "methods": [ + { + "name": "upsertDocuments", + "namespace": "vectorDB", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documents", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documents" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/documentList" + } + ], + "description": "", + "demo": "vectordb\/upsert-documents.md", + "public": true + } + ], "auth": { "Project": [] } @@ -61080,28 +67529,53 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "targetId", - "description": "Target ID.", + "name": "collectionId", + "description": "Collection ID.", "required": true, "type": "string", - "x-example": "<TARGET_ID>", + "x-example": "<COLLECTION_ID>", "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "documents": { + "type": "array", + "description": "Array of document data as JSON objects. May contain partial documents.", + "default": null, + "x-example": null, + "items": { + "type": "object" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "default": null, + "x-example": "<TRANSACTION_ID>" + } + }, + "required": [ + "documents" + ] + } } ] - } - }, - "\/users\/{userId}\/tokens": { - "post": { - "summary": "Create token", - "operationId": "usersCreateToken", + }, + "patch": { + "summary": "Update documents", + "operationId": "vectorDBUpdateDocuments", "consumes": [ "application\/json" ], @@ -61109,36 +67583,35 @@ "application\/json" ], "tags": [ - "users" + "vectorDB" ], - "description": "Returns a token with a secret key for creating a session. Use the user ID and secret and submit a request to the [PUT \/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process.\n", + "description": false, "responses": { - "201": { - "description": "Token", + "200": { + "description": "Documents List", "schema": { - "$ref": "#\/definitions\/token" + "$ref": "#\/definitions\/documentList" } } }, "deprecated": false, "x-appwrite": { - "method": "createToken", - "group": "sessions", - "weight": 155, + "method": "updateDocuments", + "group": "documents", + "weight": 451, "cookies": false, "type": "", - "demo": "users\/create-token.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "demo": "vectordb\/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, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-token.md", "auth": { "Project": [] } @@ -61151,11 +67624,19 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", "in": "path" }, { @@ -61164,30 +67645,35 @@ "schema": { "type": "object", "properties": { - "length": { - "type": "integer", - "description": "Token length in characters. The default length is 6 characters", - "default": 6, - "x-example": 4, - "format": "int32" + "data": { + "type": "object", + "description": "Document data as JSON object. Include only attribute and value pairs to be updated.", + "default": [], + "x-example": "{}" + }, + "queries": { + "type": "array", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } }, - "expire": { - "type": "integer", - "description": "Token expiration period in seconds. The default expiration is 15 minutes.", - "default": 900, - "x-example": 60, - "format": "int32" + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "default": null, + "x-example": "<TRANSACTION_ID>" } } } } ] - } - }, - "\/users\/{userId}\/verification": { - "patch": { - "summary": "Update email verification", - "operationId": "usersUpdateEmailVerification", + }, + "delete": { + "summary": "Delete documents", + "operationId": "vectorDBDeleteDocuments", "consumes": [ "application\/json" ], @@ -61195,36 +67681,35 @@ "application\/json" ], "tags": [ - "users" + "vectorDB" ], - "description": "Update the user email verification status by its unique ID.", + "description": false, "responses": { "200": { - "description": "User", + "description": "Documents List", "schema": { - "$ref": "#\/definitions\/user" + "$ref": "#\/definitions\/documentList" } } }, "deprecated": false, "x-appwrite": { - "method": "updateEmailVerification", - "group": "users", - "weight": 145, + "method": "deleteDocuments", + "group": "documents", + "weight": 453, "cookies": false, "type": "", - "demo": "users\/update-email-verification.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "demo": "vectordb\/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, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-email-verification.md", "auth": { "Project": [] } @@ -61237,11 +67722,19 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", "in": "path" }, { @@ -61250,62 +67743,66 @@ "schema": { "type": "object", "properties": { - "emailVerification": { - "type": "boolean", - "description": "User email verification status.", + "queries": { + "type": "array", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", "default": null, - "x-example": false + "x-example": "<TRANSACTION_ID>" } - }, - "required": [ - "emailVerification" - ] + } } } ] } }, - "\/users\/{userId}\/verification\/phone": { - "patch": { - "summary": "Update phone verification", - "operationId": "usersUpdatePhoneVerification", - "consumes": [ - "application\/json" - ], + "\/vectordb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { + "get": { + "summary": "Get document", + "operationId": "vectorDBGetDocument", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "users" + "vectorDB" ], - "description": "Update the user phone verification status by its unique ID.", + "description": false, "responses": { "200": { - "description": "User", + "description": "Document", "schema": { - "$ref": "#\/definitions\/user" + "$ref": "#\/definitions\/document" } } }, "deprecated": false, "x-appwrite": { - "method": "updatePhoneVerification", - "group": "users", - "weight": 140, + "method": "getDocument", + "group": "documents", + "weight": 448, "cookies": false, "type": "", - "demo": "users\/update-phone-verification.md", + "demo": "vectordb\/get-document.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "documents.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-phone-verification.md", "auth": { "Project": [] } @@ -61313,43 +67810,60 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "phoneVerification": { - "type": "boolean", - "description": "User phone verification status.", - "default": null, - "x-example": false - } - }, - "required": [ - "phoneVerification" - ] - } + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "type": "string", + "x-example": "<DOCUMENT_ID>", + "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, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", + "required": false, + "type": "string", + "x-example": "<TRANSACTION_ID>", + "in": "query" } ] - } - }, - "\/vcs\/github\/installations\/{installationId}\/detections": { - "post": { - "summary": "Create repository detection", - "operationId": "vcsCreateRepositoryDetection", + }, + "put": { + "summary": "Upsert a document", + "operationId": "vectorDBUpsertDocument", "consumes": [ "application\/json" ], @@ -61357,51 +67871,102 @@ "application\/json" ], "tags": [ - "vcs" + "vectorDB" ], - "description": "Analyze a GitHub repository to automatically detect the programming language and runtime environment. This endpoint scans the repository's files and language statistics to determine the appropriate runtime settings for your function. The GitHub installation must be properly configured and the repository must be accessible through your installation for this endpoint to work.", + "description": false, "responses": { - "200": { - "description": "DetectionFramework", + "201": { + "description": "Document", "schema": { - "$ref": "#\/definitions\/detectionFramework" + "$ref": "#\/definitions\/document" } } }, "deprecated": false, "x-appwrite": { - "method": "createRepositoryDetection", - "group": "repositories", - "weight": 554, + "method": "upsertDocument", + "group": "documents", + "weight": 447, "cookies": false, "type": "", - "demo": "vcs\/create-repository-detection.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vcs.write", + "demo": "vectordb\/upsert-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", "platforms": [ - "console" + "console", + "client", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/create-repository-detection.md", + "methods": [ + { + "name": "upsertDocument", + "namespace": "vectorDB", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documentId" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/document" + } + ], + "description": "", + "demo": "vectordb\/upsert-document.md", + "public": true + } + ], "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "installationId", - "description": "Installation Id", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<INSTALLATION_ID>", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "type": "string", + "x-example": "<DOCUMENT_ID>", "in": "path" }, { @@ -61410,188 +67975,209 @@ "schema": { "type": "object", "properties": { - "providerRepositoryId": { - "type": "string", - "description": "Repository Id", - "default": null, - "x-example": "<PROVIDER_REPOSITORY_ID>" + "data": { + "type": "object", + "description": "Document data as JSON object. Include all required fields of the document to be created or updated.", + "default": [], + "x-example": "{}" }, - "type": { - "type": "string", - "description": "Detector type. Must be one of the following: runtime, framework", + "permissions": { + "type": "array", + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", "default": null, - "x-example": "runtime", - "enum": [ - "runtime", - "framework" - ], - "x-enum-name": "VCSDetectionType", - "x-enum-keys": [] + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } }, - "providerRootDirectory": { + "transactionId": { "type": "string", - "description": "Path to Root Directory", - "default": "", - "x-example": "<PROVIDER_ROOT_DIRECTORY>" + "description": "Transaction ID for staging the operation.", + "default": null, + "x-example": "<TRANSACTION_ID>" } - }, - "required": [ - "providerRepositoryId", - "type" - ] + } } } ] - } - }, - "\/vcs\/github\/installations\/{installationId}\/providerRepositories": { - "get": { - "summary": "List repositories", - "operationId": "vcsListRepositories", - "consumes": [], + }, + "patch": { + "summary": "Update document", + "operationId": "vectorDBUpdateDocument", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "vcs" + "vectorDB" ], - "description": "Get a list of GitHub repositories available through your installation. This endpoint returns repositories with their basic information, detected runtime environments, and latest push dates. You can optionally filter repositories using a search term. Each repository's runtime is automatically detected based on its contents and language statistics. The GitHub installation must be properly configured for this endpoint to work.", + "description": false, "responses": { "200": { - "description": "Framework Provider Repositories List", + "description": "Document", "schema": { - "$ref": "#\/definitions\/providerRepositoryFrameworkList" + "$ref": "#\/definitions\/document" } } }, "deprecated": false, "x-appwrite": { - "method": "listRepositories", - "group": "repositories", - "weight": 551, + "method": "updateDocument", + "group": "documents", + "weight": 446, "cookies": false, "type": "", - "demo": "vcs\/list-repositories.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vcs.read", + "demo": "vectordb\/update-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", "platforms": [ - "console" + "console", + "client", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/list-repositories.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "installationId", - "description": "Installation Id", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<INSTALLATION_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "type", - "description": "Detector type. Must be one of the following: runtime, framework", + "name": "collectionId", + "description": "Collection ID.", "required": true, "type": "string", - "x-example": "runtime", - "enum": [ - "runtime", - "framework" - ], - "x-enum-name": "VCSDetectionType", - "x-enum-keys": [], - "in": "query" + "x-example": "<COLLECTION_ID>", + "in": "path" }, { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, + "name": "documentId", + "description": "Document ID.", + "required": true, "type": "string", - "x-example": "<SEARCH>", - "default": "", - "in": "query" + "x-example": "<DOCUMENT_ID>", + "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). Only supported methods are limit and offset", - "required": false, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "data": { + "type": "object", + "description": "Document data as JSON object. Include only fields and value pairs to be updated.", + "default": [], + "x-example": "{}" + }, + "permissions": { + "type": "array", + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "default": null, + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "default": null, + "x-example": "<TRANSACTION_ID>" + } + } + } } ] }, - "post": { - "summary": "Create repository", - "operationId": "vcsCreateRepository", + "delete": { + "summary": "Delete document", + "operationId": "vectorDBDeleteDocument", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ - "vcs" + "vectorDB" ], - "description": "Create a new GitHub repository through your installation. This endpoint allows you to create either a public or private repository by specifying a name and visibility setting. The repository will be created under your GitHub user account or organization, depending on your installation type. The GitHub installation must be properly configured and have the necessary permissions for repository creation.", + "description": false, "responses": { - "200": { - "description": "ProviderRepository", - "schema": { - "$ref": "#\/definitions\/providerRepository" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "createRepository", - "group": "repositories", - "weight": 549, + "method": "deleteDocument", + "group": "documents", + "weight": 450, "cookies": false, "type": "", - "demo": "vcs\/create-repository.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "vcs.write", + "demo": "vectordb\/delete-document.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", "platforms": [ - "console" + "console", + "client", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/create-repository.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "installationId", - "description": "Installation Id", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<INSTALLATION_ID>", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "type": "string", + "x-example": "<DOCUMENT_ID>", "in": "path" }, { @@ -61600,261 +68186,329 @@ "schema": { "type": "object", "properties": { - "name": { + "transactionId": { "type": "string", - "description": "Repository name (slug)", - "default": null, - "x-example": "<NAME>" - }, - "private": { - "type": "boolean", - "description": "Mark repository public or private", + "description": "Transaction ID for staging the operation.", "default": null, - "x-example": false + "x-example": "<TRANSACTION_ID>" } - }, - "required": [ - "name", - "private" - ] + } } } ] } }, - "\/vcs\/github\/installations\/{installationId}\/providerRepositories\/{providerRepositoryId}": { + "\/vectordb\/{databaseId}\/collections\/{collectionId}\/indexes": { "get": { - "summary": "Get repository", - "operationId": "vcsGetRepository", + "summary": "List indexes", + "operationId": "vectorDBListIndexes", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "vcs" + "vectorDB" ], - "description": "Get detailed information about a specific GitHub repository from your installation. This endpoint returns repository details including its ID, name, visibility status, organization, and latest push date. The GitHub installation must be properly configured and have access to the requested repository for this endpoint to work.", + "description": false, "responses": { "200": { - "description": "ProviderRepository", + "description": "Indexes List", "schema": { - "$ref": "#\/definitions\/providerRepository" + "$ref": "#\/definitions\/indexList" } } }, "deprecated": false, "x-appwrite": { - "method": "getRepository", - "group": "repositories", - "weight": 550, + "method": "listIndexes", + "group": "indexes", + "weight": 444, "cookies": false, "type": "", - "demo": "vcs\/get-repository.md", + "demo": "vectordb\/list-indexes.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "vcs.read", + "scope": "collections.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/get-repository.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "installationId", - "description": "Installation Id", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<INSTALLATION_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "providerRepositoryId", - "description": "Repository Id", + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", "required": true, "type": "string", - "x-example": "<PROVIDER_REPOSITORY_ID>", + "x-example": "<COLLECTION_ID>", "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, + "type": "array", + "collectionFormat": "multi", + "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, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" } ] - } - }, - "\/vcs\/github\/installations\/{installationId}\/providerRepositories\/{providerRepositoryId}\/branches": { - "get": { - "summary": "List repository branches", - "operationId": "vcsListRepositoryBranches", - "consumes": [], + }, + "post": { + "summary": "Create index", + "operationId": "vectorDBCreateIndex", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "vcs" + "vectorDB" ], - "description": "Get a list of all branches from a GitHub repository in your installation. This endpoint returns the names of all branches in the repository and their total count. The GitHub installation must be properly configured and have access to the requested repository for this endpoint to work.\n", + "description": false, "responses": { - "200": { - "description": "Branches List", + "202": { + "description": "Index", "schema": { - "$ref": "#\/definitions\/branchList" + "$ref": "#\/definitions\/index" } } }, "deprecated": false, "x-appwrite": { - "method": "listRepositoryBranches", - "group": "repositories", - "weight": 552, + "method": "createIndex", + "group": "indexes", + "weight": 441, "cookies": false, "type": "", - "demo": "vcs\/list-repository-branches.md", + "demo": "vectordb\/create-index.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "vcs.read", + "scope": "collections.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/list-repository-branches.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "installationId", - "description": "Installation Id", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<INSTALLATION_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "providerRepositoryId", - "description": "Repository Id", + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", "required": true, "type": "string", - "x-example": "<PROVIDER_REPOSITORY_ID>", + "x-example": "<COLLECTION_ID>", "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Index Key.", + "default": null, + "x-example": null + }, + "type": { + "type": "string", + "description": "Index type.", + "default": null, + "x-example": "hnsw_euclidean", + "enum": [ + "hnsw_euclidean", + "hnsw_dot", + "hnsw_cosine", + "object", + "key", + "unique" + ], + "x-enum-name": "VectorIndexType", + "x-enum-keys": [] + }, + "attributes": { + "type": "array", + "description": "Array of attributes to index. Maximum of 100 attributes are allowed, each 32 characters long.", + "default": null, + "x-example": null, + "items": { + "type": "string" + } + }, + "orders": { + "type": "array", + "description": "Array of index orders. Maximum of 100 orders are allowed.", + "default": [], + "x-example": null, + "items": { + "type": "string", + "enum": [ + "asc", + "desc" + ], + "x-enum-name": "OrderBy", + "x-enum-keys": [] + } + }, + "lengths": { + "type": "array", + "description": "Length of index. Maximum of 100", + "default": [], + "x-example": null, + "items": { + "type": "integer" + } + } + }, + "required": [ + "key", + "type", + "attributes" + ] + } } ] } }, - "\/vcs\/github\/installations\/{installationId}\/providerRepositories\/{providerRepositoryId}\/contents": { + "\/vectordb\/{databaseId}\/collections\/{collectionId}\/indexes\/{key}": { "get": { - "summary": "Get files and directories of a VCS repository", - "operationId": "vcsGetRepositoryContents", + "summary": "Get index", + "operationId": "vectorDBGetIndex", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "vcs" + "vectorDB" ], - "description": "Get a list of files and directories from a GitHub repository connected to your project. This endpoint returns the contents of a specified repository path, including file names, sizes, and whether each item is a file or directory. The GitHub installation must be properly configured and the repository must be accessible through your installation for this endpoint to work.", + "description": false, "responses": { "200": { - "description": "VCS Content List", + "description": "Index", "schema": { - "$ref": "#\/definitions\/vcsContentList" + "$ref": "#\/definitions\/index" } } }, "deprecated": false, "x-appwrite": { - "method": "getRepositoryContents", - "group": "repositories", - "weight": 553, + "method": "getIndex", + "group": "indexes", + "weight": 442, "cookies": false, "type": "", - "demo": "vcs\/get-repository-contents.md", + "demo": "vectordb\/get-index.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "vcs.read", + "scope": "collections.read", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/get-repository-contents.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "installationId", - "description": "Installation Id", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<INSTALLATION_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "providerRepositoryId", - "description": "Repository Id", + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", "required": true, "type": "string", - "x-example": "<PROVIDER_REPOSITORY_ID>", + "x-example": "<COLLECTION_ID>", "in": "path" }, { - "name": "providerRootDirectory", - "description": "Path to get contents of nested directory", - "required": false, - "type": "string", - "x-example": "<PROVIDER_ROOT_DIRECTORY>", - "default": "", - "in": "query" - }, - { - "name": "providerReference", - "description": "Git reference (branch, tag, commit) to get contents from", - "required": false, + "name": "key", + "description": "Index Key.", + "required": true, "type": "string", - "x-example": "<PROVIDER_REFERENCE>", - "default": "", - "in": "query" + "in": "path" } ] - } - }, - "\/vcs\/github\/installations\/{installationId}\/repositories\/{repositoryId}": { - "patch": { - "summary": "Update external deployment (authorize)", - "operationId": "vcsUpdateExternalDeployments", + }, + "delete": { + "summary": "Delete index", + "operationId": "vectorDBDeleteIndex", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ - "vcs" + "vectorDB" ], - "description": "Authorize and create deployments for a GitHub pull request in your project. This endpoint allows external contributions by creating deployments from pull requests, enabling preview environments for code review. The pull request must be open and not previously authorized. The GitHub installation must be properly configured and have access to both the repository and pull request for this endpoint to work.", + "description": false, "responses": { "204": { "description": "No content" @@ -61862,107 +68516,96 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateExternalDeployments", - "group": "repositories", - "weight": 164, + "method": "deleteIndex", + "group": "indexes", + "weight": 443, "cookies": false, "type": "", - "demo": "vcs\/update-external-deployments.md", + "demo": "vectordb\/delete-index.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "vcs.write", + "scope": "collections.write", "platforms": [ - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/update-external-deployments.md", "auth": { "Project": [] } }, "security": [ { - "Project": [] + "Project": [], + "Key": [] } ], "parameters": [ { - "name": "installationId", - "description": "Installation Id", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<INSTALLATION_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "repositoryId", - "description": "VCS Repository Id", + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", "required": true, "type": "string", - "x-example": "<REPOSITORY_ID>", + "x-example": "<COLLECTION_ID>", "in": "path" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "providerPullRequestId": { - "type": "string", - "description": "GitHub Pull Request Id", - "default": null, - "x-example": "<PROVIDER_PULL_REQUEST_ID>" - } - }, - "required": [ - "providerPullRequestId" - ] - } + "name": "key", + "description": "Index Key.", + "required": true, + "type": "string", + "in": "path" } ] } }, - "\/vcs\/installations": { + "\/vectordb\/{databaseId}\/collections\/{collectionId}\/logs": { "get": { - "summary": "List installations", - "operationId": "vcsListInstallations", + "summary": "List collection logs", + "operationId": "vectorDBListCollectionLogs", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "vcs" + "vectorDB" ], - "description": "List all VCS installations configured for the current project. This endpoint returns a list of installations including their provider, organization, and other configuration details.\n", + "description": false, "responses": { "200": { - "description": "Installations List", + "description": "Logs List", "schema": { - "$ref": "#\/definitions\/installationList" + "$ref": "#\/definitions\/logList" } } }, "deprecated": false, "x-appwrite": { - "method": "listInstallations", - "group": "installations", - "weight": 547, + "method": "listCollectionLogs", + "group": "collections", + "weight": 439, "cookies": false, "type": "", - "demo": "vcs\/list-installations.md", + "demo": "vectordb\/list-collection-logs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "vcs.read", + "scope": "collections.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/list-installations.md", "auth": { "Project": [] } @@ -61973,9 +68616,25 @@ } ], "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", + "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: provider, organization", + "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, "type": "array", "collectionFormat": "multi", @@ -61984,66 +68643,47 @@ }, "default": [], "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "type": "string", - "x-example": "<SEARCH>", - "default": "", - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" } ] } }, - "\/vcs\/installations\/{installationId}": { + "\/vectordb\/{databaseId}\/collections\/{collectionId}\/usage": { "get": { - "summary": "Get installation", - "operationId": "vcsGetInstallation", + "summary": "Get collection usage stats", + "operationId": "vectorDBGetCollectionUsage", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "vcs" + "vectorDB" ], - "description": "Get a VCS installation by its unique ID. This endpoint returns the installation's details including its provider, organization, and configuration. ", + "description": false, "responses": { "200": { - "description": "Installation", + "description": "UsageCollection", "schema": { - "$ref": "#\/definitions\/installation" + "$ref": "#\/definitions\/usageCollection" } } }, "deprecated": false, "x-appwrite": { - "method": "getInstallation", - "group": "installations", - "weight": 546, + "method": "getCollectionUsage", + "group": null, + "weight": 440, "cookies": false, "type": "", - "demo": "vcs\/get-installation.md", + "demo": "vectordb\/get-collection-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "vcs.read", + "scope": "collections.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/get-installation.md", "auth": { "Project": [] } @@ -62055,49 +68695,107 @@ ], "parameters": [ { - "name": "installationId", - "description": "Installation Id", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<INSTALLATION_ID>", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "range", + "description": "Date range.", + "required": false, + "type": "string", + "x-example": "24h", + "enum": [ + "24h", + "30d", + "90d" + ], + "x-enum-name": "UsageRange", + "x-enum-keys": [ + "Twenty Four Hours", + "Thirty Days", + "Ninety Days" + ], + "default": "30d", + "in": "query" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", "in": "path" } ] - }, - "delete": { - "summary": "Delete installation", - "operationId": "vcsDeleteInstallation", - "consumes": [ + } + }, + "\/vectordb\/{databaseId}\/usage": { + "get": { + "summary": "Get VectorDB usage stats", + "operationId": "vectorDBGetUsage", + "consumes": [], + "produces": [ "application\/json" ], - "produces": [], "tags": [ - "vcs" + "vectorDB" ], - "description": "Delete a VCS installation by its unique ID. This endpoint removes the installation and all its associated repositories from the project.", + "description": false, "responses": { - "204": { - "description": "No content" + "200": { + "description": "UsageVectorDB", + "schema": { + "$ref": "#\/definitions\/usageVectorDB" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteInstallation", - "group": "installations", - "weight": 548, + "method": "getUsage", + "group": null, + "weight": 432, "cookies": false, "type": "", - "demo": "vcs\/delete-installation.md", + "demo": "vectordb\/get-usage.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "vcs.write", + "scope": "collections.read", "platforms": [ "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/vcs\/delete-installation.md", + "methods": [ + { + "name": "getUsage", + "namespace": "vectorDB", + "desc": "", + "auth": { + "Project": [] + }, + "parameters": [ + "databaseId", + "range" + ], + "required": [ + "databaseId" + ], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/usageVectorDB" + } + ], + "description": "", + "demo": "vectordb\/get-usage.md", + "public": true + } + ], "auth": { "Project": [] } @@ -62109,12 +68807,32 @@ ], "parameters": [ { - "name": "installationId", - "description": "Installation Id", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<INSTALLATION_ID>", + "x-example": "<DATABASE_ID>", "in": "path" + }, + { + "name": "range", + "description": "Date range.", + "required": false, + "type": "string", + "x-example": "24h", + "enum": [ + "24h", + "30d", + "90d" + ], + "x-enum-name": "UsageRange", + "x-enum-keys": [ + "Twenty Four Hours", + "Thirty Days", + "Ninety Days" + ], + "default": "30d", + "in": "query" } ] } @@ -63709,6 +70427,64 @@ "contents": "" } }, + "vectordbCollectionList": { + "description": "VectorDB Collections List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of collections that matched your query.", + "x-example": 5, + "format": "int32" + }, + "collections": { + "type": "array", + "description": "List of collections.", + "items": { + "type": "object", + "$ref": "#\/definitions\/vectordbCollection" + }, + "x-example": "" + } + }, + "required": [ + "total", + "collections" + ], + "example": { + "total": 5, + "collections": "" + } + }, + "embeddingList": { + "description": "Embedding list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of embeddings that matched your query.", + "x-example": 5, + "format": "int32" + }, + "embeddings": { + "type": "array", + "description": "List of embeddings.", + "items": { + "type": "object", + "$ref": "#\/definitions\/embedding" + }, + "x-example": "" + } + }, + "required": [ + "total", + "embeddings" + ], + "example": { + "total": 5, + "embeddings": "" + } + }, "database": { "description": "Database", "type": "object", @@ -63744,7 +70520,8 @@ "x-example": "legacy", "enum": [ "legacy", - "tablesdb" + "tablesdb", + "documentsdb" ] }, "policies": { @@ -63787,6 +70564,57 @@ "archives": {} } }, + "embedding": { + "description": "Embedding", + "type": "object", + "properties": { + "model": { + "type": "string", + "description": "Embedding model used to generate embeddings.", + "x-example": "embeddinggemma" + }, + "dimension": { + "type": "integer", + "description": "Number of dimensions for each embedding vector.", + "x-example": 768, + "format": "int32" + }, + "embedding": { + "type": "array", + "description": "Embedding vector values. If an error occurs, this will be an empty array.", + "items": { + "type": "number", + "format": "double" + }, + "x-example": [ + 0.01, + 0.02, + 0.03 + ] + }, + "error": { + "type": "string", + "description": "Error message if embedding generation fails. Empty string if no error.", + "x-example": "Error message" + } + }, + "required": [ + "model", + "dimension", + "embedding", + "error" + ], + "example": { + "model": "embeddinggemma", + "dimension": 768, + "embedding": [ + 0.01, + 0.02, + 0.03 + ], + "error": "Error message" + } + }, "collection": { "description": "Collection", "type": "object", @@ -65602,17 +72430,410 @@ "description": "Attribute update date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "default": { - "type": "string", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "x-example": "default", - "x-nullable": true - }, - "encrypt": { - "type": "boolean", - "description": "Defines whether this attribute is encrypted or not.", - "x-example": false, - "x-nullable": true + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "x-example": "default", + "x-nullable": true + }, + "encrypt": { + "type": "boolean", + "description": "Defines whether this attribute is encrypted or not.", + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": "default", + "encrypt": false + } + }, + "usageDocumentsDB": { + "description": "UsageDocumentsDB", + "type": "object", + "properties": { + "range": { + "type": "string", + "description": "Time range of the usage stats.", + "x-example": "30d" + }, + "collectionsTotal": { + "type": "integer", + "description": "Total aggregated number of collections.", + "x-example": 0, + "format": "int32" + }, + "documentsTotal": { + "type": "integer", + "description": "Total aggregated number of documents.", + "x-example": 0, + "format": "int32" + }, + "storageTotal": { + "type": "integer", + "description": "Total aggregated storage used in bytes.", + "x-example": 0, + "format": "int32" + }, + "databaseReadsTotal": { + "type": "integer", + "description": "Total number of database reads.", + "x-example": 0, + "format": "int32" + }, + "databaseWritesTotal": { + "type": "integer", + "description": "Total number of database writes.", + "x-example": 0, + "format": "int32" + }, + "collections": { + "type": "array", + "description": "Aggregated number of collections per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "documents": { + "type": "array", + "description": "Aggregated number of documents per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "storage": { + "type": "array", + "description": "Aggregated storage used in bytes per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "databaseReads": { + "type": "array", + "description": "An array of aggregated number of database reads.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "databaseWrites": { + "type": "array", + "description": "An array of aggregated number of database writes.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + } + }, + "required": [ + "range", + "collectionsTotal", + "documentsTotal", + "storageTotal", + "databaseReadsTotal", + "databaseWritesTotal", + "collections", + "documents", + "storage", + "databaseReads", + "databaseWrites" + ], + "example": { + "range": "30d", + "collectionsTotal": 0, + "documentsTotal": 0, + "storageTotal": 0, + "databaseReadsTotal": 0, + "databaseWritesTotal": 0, + "collections": [], + "documents": [], + "storage": [], + "databaseReads": [], + "databaseWrites": [] + } + }, + "vectordbCollection": { + "description": "VectorDB Collection", + "type": "object", + "properties": { + "$id": { + "type": "string", + "description": "Collection ID.", + "x-example": "5e5ea5c16897e" + }, + "$createdAt": { + "type": "string", + "description": "Collection creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Collection update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "$permissions": { + "type": "array", + "description": "Collection permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "items": { + "type": "string" + }, + "x-example": [ + "read(\"any\")" + ] + }, + "databaseId": { + "type": "string", + "description": "Database ID.", + "x-example": "5e5ea5c16897e" + }, + "name": { + "type": "string", + "description": "Collection name.", + "x-example": "My Collection" + }, + "enabled": { + "type": "boolean", + "description": "Collection enabled. Can be 'enabled' or 'disabled'. When disabled, the collection is inaccessible to users, but remains accessible to Server SDKs using API keys.", + "x-example": false + }, + "documentSecurity": { + "type": "boolean", + "description": "Whether document-level permissions are enabled. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": true + }, + "attributes": { + "type": "array", + "description": "Collection attributes.", + "items": { + "x-anyOf": [ + { + "$ref": "#\/definitions\/attributeObject" + }, + { + "$ref": "#\/definitions\/attributeVector" + } + ] + }, + "x-example": {} + }, + "indexes": { + "type": "array", + "description": "Collection indexes.", + "items": { + "type": "object", + "$ref": "#\/definitions\/index" + }, + "x-example": {} + }, + "bytesMax": { + "type": "integer", + "description": "Maximum document size in bytes. Returns 0 when no limit applies.", + "x-example": 65535, + "format": "int32" + }, + "bytesUsed": { + "type": "integer", + "description": "Currently used document size in bytes based on defined attributes.", + "x-example": 1500, + "format": "int32" + }, + "dimension": { + "type": "integer", + "description": "Embedding dimension.", + "x-example": 1536, + "format": "int32" + } + }, + "required": [ + "$id", + "$createdAt", + "$updatedAt", + "$permissions", + "databaseId", + "name", + "enabled", + "documentSecurity", + "attributes", + "indexes", + "bytesMax", + "bytesUsed", + "dimension" + ], + "example": { + "$id": "5e5ea5c16897e", + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "$permissions": [ + "read(\"any\")" + ], + "databaseId": "5e5ea5c16897e", + "name": "My Collection", + "enabled": false, + "documentSecurity": true, + "attributes": {}, + "indexes": {}, + "bytesMax": 65535, + "bytesUsed": 1500, + "dimension": 1536 + } + }, + "attributeObject": { + "description": "AttributeObject", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "x-example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "x-example": "string" + }, + "status": { + "type": "string", + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "x-example": "available", + "enum": [ + "available", + "processing", + "deleting", + "stuck", + "failed" + ], + "x-enum-name": "AttributeStatus" + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "x-example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "x-example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "x-example": false, + "x-nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00" + } + }, + "attributeVector": { + "description": "AttributeVector", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "x-example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "x-example": "string" + }, + "status": { + "type": "string", + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "x-example": "available", + "enum": [ + "available", + "processing", + "deleting", + "stuck", + "failed" + ], + "x-enum-name": "AttributeStatus" + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "x-example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "x-example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "x-example": false, + "x-nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "size": { + "type": "integer", + "description": "Vector dimensions.", + "x-example": 1536, + "format": "int32" } }, "required": [ @@ -65622,7 +72843,8 @@ "error", "required", "$createdAt", - "$updatedAt" + "$updatedAt", + "size" ], "example": { "key": "fullName", @@ -65633,8 +72855,250 @@ "array": false, "$createdAt": "2020-10-15T06:38:00.000+00:00", "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "default": "default", - "encrypt": false + "size": 1536 + } + }, + "usageVectorDBs": { + "description": "UsageVectorDBs", + "type": "object", + "properties": { + "range": { + "type": "string", + "description": "Time range of the usage stats.", + "x-example": "30d" + }, + "databasesTotal": { + "type": "integer", + "description": "Total aggregated number of VectorDB databases.", + "x-example": 0, + "format": "int32" + }, + "collectionsTotal": { + "type": "integer", + "description": "Total aggregated number of collections.", + "x-example": 0, + "format": "int32" + }, + "documentsTotal": { + "type": "integer", + "description": "Total aggregated number of documents.", + "x-example": 0, + "format": "int32" + }, + "storageTotal": { + "type": "integer", + "description": "Total aggregated storage in bytes.", + "x-example": 0, + "format": "int32" + }, + "databasesReadsTotal": { + "type": "integer", + "description": "Total number of database reads.", + "x-example": 0, + "format": "int32" + }, + "databasesWritesTotal": { + "type": "integer", + "description": "Total number of database writes.", + "x-example": 0, + "format": "int32" + }, + "databases": { + "type": "array", + "description": "Aggregated number of databases per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "collections": { + "type": "array", + "description": "Aggregated number of collections per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "documents": { + "type": "array", + "description": "Aggregated number of documents per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "storage": { + "type": "array", + "description": "Aggregated storage in bytes per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "databasesReads": { + "type": "array", + "description": "An array of aggregated number of database reads.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "databasesWrites": { + "type": "array", + "description": "An array of aggregated number of database writes.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + } + }, + "required": [ + "range", + "databasesTotal", + "collectionsTotal", + "documentsTotal", + "storageTotal", + "databasesReadsTotal", + "databasesWritesTotal", + "databases", + "collections", + "documents", + "storage", + "databasesReads", + "databasesWrites" + ], + "example": { + "range": "30d", + "databasesTotal": 0, + "collectionsTotal": 0, + "documentsTotal": 0, + "storageTotal": 0, + "databasesReadsTotal": 0, + "databasesWritesTotal": 0, + "databases": [], + "collections": [], + "documents": [], + "storage": [], + "databasesReads": [], + "databasesWrites": [] + } + }, + "usageVectorDB": { + "description": "UsageVectorDB", + "type": "object", + "properties": { + "range": { + "type": "string", + "description": "Time range of the usage stats.", + "x-example": "30d" + }, + "collectionsTotal": { + "type": "integer", + "description": "Total aggregated number of collections.", + "x-example": 0, + "format": "int32" + }, + "documentsTotal": { + "type": "integer", + "description": "Total aggregated number of documents.", + "x-example": 0, + "format": "int32" + }, + "storageTotal": { + "type": "integer", + "description": "Total aggregated storage used in bytes.", + "x-example": 0, + "format": "int32" + }, + "databaseReadsTotal": { + "type": "integer", + "description": "Total number of database reads.", + "x-example": 0, + "format": "int32" + }, + "databaseWritesTotal": { + "type": "integer", + "description": "Total number of database writes.", + "x-example": 0, + "format": "int32" + }, + "collections": { + "type": "array", + "description": "Aggregated number of collections per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "documents": { + "type": "array", + "description": "Aggregated number of documents per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "storage": { + "type": "array", + "description": "Aggregated storage used in bytes per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "databaseReads": { + "type": "array", + "description": "An array of aggregated number of database reads.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "databaseWrites": { + "type": "array", + "description": "An array of aggregated number of database writes.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + } + }, + "required": [ + "range", + "collectionsTotal", + "documentsTotal", + "storageTotal", + "databaseReadsTotal", + "databaseWritesTotal", + "collections", + "documents", + "storage", + "databaseReads", + "databaseWrites" + ], + "example": { + "range": "30d", + "collectionsTotal": 0, + "documentsTotal": 0, + "storageTotal": 0, + "databaseReadsTotal": 0, + "databaseWritesTotal": 0, + "collections": [], + "documents": [], + "storage": [], + "databaseReads": [], + "databaseWrites": [] } }, "table": { @@ -67685,8 +75149,8 @@ }, "$sequence": { "type": "integer", - "description": "Row automatically incrementing ID.", - "x-example": 1, + "description": "Row sequence ID.", + "x-example": "1", "format": "int32", "readOnly": true }, @@ -67735,7 +75199,7 @@ ], "example": { "$id": "5e5ea5c16897e", - "$sequence": 1, + "$sequence": "1", "$tableId": "5e5ea5c15117e", "$databaseId": "5e5ea5c15117e", "$createdAt": "2020-10-15T06:38:00.000+00:00", @@ -67756,8 +75220,8 @@ }, "$sequence": { "type": "integer", - "description": "Document automatically incrementing ID.", - "x-example": 1, + "description": "Document sequence ID.", + "x-example": "1", "format": "int32", "readOnly": true }, @@ -67806,7 +75270,7 @@ ], "example": { "$id": "5e5ea5c16897e", - "$sequence": 1, + "$sequence": "1", "$collectionId": "5e5ea5c15117e", "$databaseId": "5e5ea5c15117e", "$createdAt": "2020-10-15T06:38:00.000+00:00", @@ -70248,6 +77712,16 @@ "description": "VCS (Version Control System) repository's default branch name.", "x-example": "main" }, + "providerInstallationId": { + "type": "string", + "description": "VCS (Version Control System) installation ID.", + "x-example": "108104697" + }, + "authorized": { + "type": "boolean", + "description": "Is VCS (Version Control System) repository authorized for the installation?", + "x-example": true + }, "pushedAt": { "type": "string", "description": "Last commit date in ISO 8601 format.", @@ -70272,6 +77746,8 @@ "provider", "private", "defaultBranch", + "providerInstallationId", + "authorized", "pushedAt", "variables" ], @@ -70282,6 +77758,8 @@ "provider": "github", "private": true, "defaultBranch": "main", + "providerInstallationId": "108104697", + "authorized": true, "pushedAt": "datetime", "variables": [ "PORT", @@ -70323,6 +77801,16 @@ "description": "VCS (Version Control System) repository's default branch name.", "x-example": "main" }, + "providerInstallationId": { + "type": "string", + "description": "VCS (Version Control System) installation ID.", + "x-example": "108104697" + }, + "authorized": { + "type": "boolean", + "description": "Is VCS (Version Control System) repository authorized for the installation?", + "x-example": true + }, "pushedAt": { "type": "string", "description": "Last commit date in ISO 8601 format.", @@ -70352,6 +77840,8 @@ "provider", "private", "defaultBranch", + "providerInstallationId", + "authorized", "pushedAt", "variables", "framework" @@ -70363,6 +77853,8 @@ "provider": "github", "private": true, "defaultBranch": "main", + "providerInstallationId": "108104697", + "authorized": true, "pushedAt": "datetime", "variables": [ "PORT", @@ -70405,6 +77897,16 @@ "description": "VCS (Version Control System) repository's default branch name.", "x-example": "main" }, + "providerInstallationId": { + "type": "string", + "description": "VCS (Version Control System) installation ID.", + "x-example": "108104697" + }, + "authorized": { + "type": "boolean", + "description": "Is VCS (Version Control System) repository authorized for the installation?", + "x-example": true + }, "pushedAt": { "type": "string", "description": "Last commit date in ISO 8601 format.", @@ -70434,6 +77936,8 @@ "provider", "private", "defaultBranch", + "providerInstallationId", + "authorized", "pushedAt", "variables", "runtime" @@ -70445,6 +77949,8 @@ "provider": "github", "private": true, "defaultBranch": "main", + "providerInstallationId": "108104697", + "authorized": true, "pushedAt": "datetime", "variables": [ "PORT", @@ -71582,6 +79088,11 @@ "$ref": "#\/definitions\/block" }, "x-example": "" + }, + "consoleAccessedAt": { + "type": "string", + "description": "Last time the project was accessed via console. Used with plan's projectInactivityDays to determine if project is paused.", + "x-example": "2020-10-15T06:38:00.000+00:00" } }, "required": [ @@ -71651,7 +79162,8 @@ "serviceStatusForMessaging", "region", "billingLimits", - "blocks" + "blocks", + "consoleAccessedAt" ], "example": { "$id": "5e5ea5c16897e", @@ -71726,7 +79238,8 @@ "serviceStatusForMessaging": true, "region": "fra", "billingLimits": "", - "blocks": "" + "blocks": "", + "consoleAccessedAt": "2020-10-15T06:38:00.000+00:00" } }, "webhook": { @@ -74304,7 +81817,13 @@ }, "documentsTotal": { "type": "integer", - "description": "Total aggregated number of documents.", + "description": "Total aggregated number of documents in legacy\/tablesdb.", + "x-example": 0, + "format": "int32" + }, + "documentsdbDocumentsTotal": { + "type": "integer", + "description": "Total aggregated number of documents in documentsdb.", "x-example": 0, "format": "int32" }, @@ -74320,12 +81839,24 @@ "x-example": 0, "format": "int32" }, + "documentsdbTotal": { + "type": "integer", + "description": "Total aggregated number of documentsdb.", + "x-example": 0, + "format": "int32" + }, "databasesStorageTotal": { "type": "integer", "description": "Total aggregated sum of databases storage size (in bytes).", "x-example": 0, "format": "int32" }, + "documentsdbDatabasesStorageTotal": { + "type": "integer", + "description": "Total aggregated sum of documentsdb databases storage size (in bytes).", + "x-example": 0, + "format": "int32" + }, "usersTotal": { "type": "integer", "description": "Total aggregated number of users.", @@ -74386,6 +81917,18 @@ "x-example": 0, "format": "int32" }, + "documentsdbDatabasesReadsTotal": { + "type": "integer", + "description": "Total number of documentsdb databases reads.", + "x-example": 0, + "format": "int32" + }, + "documentsdbDatabasesWritesTotal": { + "type": "integer", + "description": "Total number of documentsdb databases writes.", + "x-example": 0, + "format": "int32" + }, "requests": { "type": "array", "description": "Aggregated number of requests per period.", @@ -74515,6 +82058,33 @@ }, "x-example": [] }, + "documentsdbDatabasesReads": { + "type": "array", + "description": "An array of aggregated number of documentsdb database reads.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "documentsdbDatabasesWrites": { + "type": "array", + "description": "An array of aggregated number of documentsdb database writes.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "documentsdbDatabasesStorage": { + "type": "array", + "description": "An array of aggregated sum of documentsdb databases storage size (in bytes) per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, "imageTransformations": { "type": "array", "description": "An array of aggregated number of image transformations.", @@ -74530,6 +82100,168 @@ "x-example": 0, "format": "int32" }, + "vectordbDatabasesTotal": { + "type": "integer", + "description": "Total aggregated number of VectorDB databases.", + "x-example": 0, + "format": "int32" + }, + "vectordbCollectionsTotal": { + "type": "integer", + "description": "Total aggregated number of VectorDB collections.", + "x-example": 0, + "format": "int32" + }, + "vectordbDocumentsTotal": { + "type": "integer", + "description": "Total aggregated number of VectorDB documents.", + "x-example": 0, + "format": "int32" + }, + "vectordbDatabasesStorageTotal": { + "type": "integer", + "description": "Total aggregated VectorDB storage (bytes).", + "x-example": 0, + "format": "int32" + }, + "vectordbDatabasesReadsTotal": { + "type": "integer", + "description": "Total aggregated number of VectorDB reads.", + "x-example": 0, + "format": "int32" + }, + "vectordbDatabasesWritesTotal": { + "type": "integer", + "description": "Total aggregated number of VectorDB writes.", + "x-example": 0, + "format": "int32" + }, + "vectordbDatabases": { + "type": "array", + "description": "Aggregated VectorDB databases per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "vectordbCollections": { + "type": "array", + "description": "Aggregated VectorDB collections per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "vectordbDocuments": { + "type": "array", + "description": "Aggregated VectorDB documents per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "vectordbDatabasesStorage": { + "type": "array", + "description": "Aggregated VectorDB storage per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "vectordbDatabasesReads": { + "type": "array", + "description": "Aggregated VectorDB reads per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "vectordbDatabasesWrites": { + "type": "array", + "description": "Aggregated VectorDB writes per period.", + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + }, + "x-example": [] + }, + "embeddingsText": { + "type": "object", + "description": "Aggregated number of text embedding calls per period.", + "x-example": [], + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + } + }, + "embeddingsTextTokens": { + "type": "object", + "description": "Aggregated number of tokens processed by text embeddings per period.", + "x-example": [], + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + } + }, + "embeddingsTextDuration": { + "type": "object", + "description": "Aggregated duration spent generating text embeddings per period.", + "x-example": [], + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + } + }, + "embeddingsTextErrors": { + "type": "object", + "description": "Aggregated number of errors while generating text embeddings per period.", + "x-example": [], + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + } + }, + "embeddingsTextTotal": { + "type": "object", + "description": "Total aggregated number of text embedding calls.", + "x-example": 0, + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + } + }, + "embeddingsTextTokensTotal": { + "type": "object", + "description": "Total aggregated number of tokens processed by text.", + "x-example": 0, + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + } + }, + "embeddingsTextDurationTotal": { + "type": "object", + "description": "Total aggregated duration spent generating text embeddings.", + "x-example": 0, + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + } + }, + "embeddingsTextErrorsTotal": { + "type": "object", + "description": "Total aggregated number of errors while generating text embeddings.", + "x-example": 0, + "items": { + "type": "object", + "$ref": "#\/definitions\/metric" + } + }, "networkTotal": { "type": "integer", "description": "Aggregated stats for total network bandwidth.", @@ -74576,9 +82308,12 @@ "required": [ "executionsTotal", "documentsTotal", + "documentsdbDocumentsTotal", "rowsTotal", "databasesTotal", + "documentsdbTotal", "databasesStorageTotal", + "documentsdbDatabasesStorageTotal", "usersTotal", "filesStorageTotal", "functionsStorageTotal", @@ -74589,6 +82324,8 @@ "buildsMbSecondsTotal", "databasesReadsTotal", "databasesWritesTotal", + "documentsdbDatabasesReadsTotal", + "documentsdbDatabasesWritesTotal", "requests", "network", "users", @@ -74604,8 +82341,31 @@ "authPhoneCountryBreakdown", "databasesReads", "databasesWrites", + "documentsdbDatabasesReads", + "documentsdbDatabasesWrites", + "documentsdbDatabasesStorage", "imageTransformations", "imageTransformationsTotal", + "vectordbDatabasesTotal", + "vectordbCollectionsTotal", + "vectordbDocumentsTotal", + "vectordbDatabasesStorageTotal", + "vectordbDatabasesReadsTotal", + "vectordbDatabasesWritesTotal", + "vectordbDatabases", + "vectordbCollections", + "vectordbDocuments", + "vectordbDatabasesStorage", + "vectordbDatabasesReads", + "vectordbDatabasesWrites", + "embeddingsText", + "embeddingsTextTokens", + "embeddingsTextDuration", + "embeddingsTextErrors", + "embeddingsTextTotal", + "embeddingsTextTokensTotal", + "embeddingsTextDurationTotal", + "embeddingsTextErrorsTotal", "networkTotal", "backupsStorageTotal", "screenshotsGenerated", @@ -74616,9 +82376,12 @@ "example": { "executionsTotal": 0, "documentsTotal": 0, + "documentsdbDocumentsTotal": 0, "rowsTotal": 0, "databasesTotal": 0, + "documentsdbTotal": 0, "databasesStorageTotal": 0, + "documentsdbDatabasesStorageTotal": 0, "usersTotal": 0, "filesStorageTotal": 0, "functionsStorageTotal": 0, @@ -74629,6 +82392,8 @@ "buildsMbSecondsTotal": 0, "databasesReadsTotal": 0, "databasesWritesTotal": 0, + "documentsdbDatabasesReadsTotal": 0, + "documentsdbDatabasesWritesTotal": 0, "requests": [], "network": [], "users": [], @@ -74644,8 +82409,31 @@ "authPhoneCountryBreakdown": [], "databasesReads": [], "databasesWrites": [], + "documentsdbDatabasesReads": [], + "documentsdbDatabasesWrites": [], + "documentsdbDatabasesStorage": [], "imageTransformations": [], "imageTransformationsTotal": 0, + "vectordbDatabasesTotal": 0, + "vectordbCollectionsTotal": 0, + "vectordbDocumentsTotal": 0, + "vectordbDatabasesStorageTotal": 0, + "vectordbDatabasesReadsTotal": 0, + "vectordbDatabasesWritesTotal": 0, + "vectordbDatabases": [], + "vectordbCollections": [], + "vectordbDocuments": [], + "vectordbDatabasesStorage": [], + "vectordbDatabasesReads": [], + "vectordbDatabasesWrites": [], + "embeddingsText": [], + "embeddingsTextTokens": [], + "embeddingsTextDuration": [], + "embeddingsTextErrors": [], + "embeddingsTextTotal": 0, + "embeddingsTextTokensTotal": 0, + "embeddingsTextDurationTotal": 0, + "embeddingsTextErrorsTotal": 0, "networkTotal": 0, "backupsStorageTotal": 0, "screenshotsGenerated": [], @@ -75103,6 +82891,62 @@ "type": "string", "description": "Comma-separated list of nameservers.", "x-example": "ns1.example.com,ns2.example.com" + }, + "_APP_DB_ADAPTER": { + "type": "string", + "description": "Database adapter in use.", + "x-example": "mysql" + }, + "supportForRelationships": { + "type": "boolean", + "description": "Whether the database adapter supports relationships.", + "x-example": true + }, + "supportForOperators": { + "type": "boolean", + "description": "Whether the database adapter supports operators.", + "x-example": true + }, + "supportForSpatials": { + "type": "boolean", + "description": "Whether the database adapter supports spatial attributes.", + "x-example": true + }, + "supportForSpatialIndexNull": { + "type": "boolean", + "description": "Whether the database adapter supports spatial indexes on nullable columns.", + "x-example": false + }, + "supportForFulltextWildcard": { + "type": "boolean", + "description": "Whether the database adapter supports fulltext wildcard search.", + "x-example": true + }, + "supportForMultipleFulltextIndexes": { + "type": "boolean", + "description": "Whether the database adapter supports multiple fulltext indexes per collection.", + "x-example": true + }, + "supportForAttributeResizing": { + "type": "boolean", + "description": "Whether the database adapter supports resizing attributes.", + "x-example": true + }, + "supportForSchemas": { + "type": "boolean", + "description": "Whether the database adapter supports fixed schemas with row width limits.", + "x-example": true + }, + "maxIndexLength": { + "type": "integer", + "description": "Maximum index length supported by the database adapter.", + "x-example": 768, + "format": "int32" + }, + "supportForIntegerIds": { + "type": "boolean", + "description": "Whether the database adapter uses integer sequence IDs.", + "x-example": true } }, "required": [ @@ -75120,7 +82964,18 @@ "_APP_DOMAIN_SITES", "_APP_DOMAIN_FUNCTIONS", "_APP_OPTIONS_FORCE_HTTPS", - "_APP_DOMAINS_NAMESERVERS" + "_APP_DOMAINS_NAMESERVERS", + "_APP_DB_ADAPTER", + "supportForRelationships", + "supportForOperators", + "supportForSpatials", + "supportForSpatialIndexNull", + "supportForFulltextWildcard", + "supportForMultipleFulltextIndexes", + "supportForAttributeResizing", + "supportForSchemas", + "maxIndexLength", + "supportForIntegerIds" ], "example": { "_APP_DOMAIN_TARGET_CNAME": "appwrite.io", @@ -75137,7 +82992,18 @@ "_APP_DOMAIN_SITES": "sites.localhost,sites.example.com", "_APP_DOMAIN_FUNCTIONS": "functions.localhost", "_APP_OPTIONS_FORCE_HTTPS": "enabled", - "_APP_DOMAINS_NAMESERVERS": "ns1.example.com,ns2.example.com" + "_APP_DOMAINS_NAMESERVERS": "ns1.example.com,ns2.example.com", + "_APP_DB_ADAPTER": "mysql", + "supportForRelationships": true, + "supportForOperators": true, + "supportForSpatials": true, + "supportForSpatialIndexNull": false, + "supportForFulltextWildcard": true, + "supportForMultipleFulltextIndexes": true, + "supportForAttributeResizing": true, + "supportForSchemas": true, + "maxIndexLength": 768, + "supportForIntegerIds": true } }, "mfaChallenge": { @@ -75945,6 +83811,12 @@ "x-example": 20, "format": "int32" }, + "site": { + "type": "integer", + "description": "Number of sites to be migrated.", + "x-example": 5, + "format": "int32" + }, "size": { "type": "integer", "description": "Size of files to be migrated in mb.", @@ -75965,6 +83837,7 @@ "file", "bucket", "function", + "site", "size", "version" ], @@ -75976,6 +83849,7 @@ "file": 20, "bucket": 20, "function": 20, + "site": 5, "size": 30000, "version": "1.4.0" } @@ -76916,6 +84790,12 @@ "x-example": 25, "format": "int32" }, + "projectInactivityDays": { + "type": "integer", + "description": "Number of days of console inactivity before a project is paused. 0 means pausing is disabled.", + "x-example": 7, + "format": "int32" + }, "alertLimit": { "type": "integer", "description": "Alert threshold percentage", @@ -77098,6 +84978,7 @@ "authPhone", "domains", "logs", + "projectInactivityDays", "alertLimit", "usage", "addons", @@ -77155,6 +85036,7 @@ "authPhone": 10, "domains": 5, "logs": 25, + "projectInactivityDays": 7, "alertLimit": 80, "usage": null, "addons": null, @@ -79360,6 +87242,11 @@ "$ref": "#\/definitions\/dnsRecord" }, "x-example": [] + }, + "transferStatus": { + "type": "string", + "description": "Domain transfer status (e.g., \"pending\", \"completed\", \"failed\").", + "x-example": "pending" } }, "required": [ @@ -79375,7 +87262,8 @@ "autoRenewal", "renewalPrice", "teamId", - "dnsRecords" + "dnsRecords", + "transferStatus" ], "example": { "$id": "5e5ea5c16897e", @@ -79390,7 +87278,8 @@ "autoRenewal": true, "renewalPrice": 2599, "teamId": "5e5ea5c16897e", - "dnsRecords": [] + "dnsRecords": [], + "transferStatus": "pending" } }, "dnsRecord": { @@ -79897,6 +87786,11 @@ "description": "Price period in years.", "x-example": 1, "format": "int32" + }, + "premium": { + "type": "boolean", + "description": "Whether the domain is a premium domain.", + "x-example": false } }, "required": [ @@ -79904,14 +87798,16 @@ "tld", "available", "price", - "periodYears" + "periodYears", + "premium" ], "example": { "domain": "example.com", "tld": "com", "available": true, "price": 25.99, - "periodYears": 1 + "periodYears": 1, + "premium": false } }, "domainSuggestion": { @@ -79953,6 +87849,64 @@ "available": true } }, + "domainTransferOut": { + "description": "domainTransferOut", + "type": "object", + "properties": { + "authCode": { + "type": "string", + "description": "Domain transfer authorization code.", + "x-example": "mock_1a2b3c4d" + } + }, + "required": [ + "authCode" + ], + "example": { + "authCode": "mock_1a2b3c4d" + } + }, + "domainTransferStatus": { + "description": "domainTransferStatus", + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "Transfer status.", + "x-example": "pending_registry", + "enum": [ + "transferrable", + "not_transferrable", + "pending_owner", + "pending_admin", + "pending_registry", + "completed", + "cancelled", + "service_unavailable" + ] + }, + "reason": { + "type": "string", + "description": "Additional transfer status information.", + "x-example": "Transfer in progress" + }, + "timestamp": { + "type": "string", + "description": "Transfer status timestamp in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + } + }, + "required": [ + "status", + "reason", + "timestamp" + ], + "example": { + "status": "pending_registry", + "reason": "Transfer in progress", + "timestamp": "2020-10-15T06:38:00.000+00:00" + } + }, "activityEventList": { "description": "Activity event list", "type": "object", diff --git a/specs/latest/swagger2-latest-server.json b/specs/latest/swagger2-latest-server.json index 37fd8539..709ae1d5 100644 --- a/specs/latest/swagger2-latest-server.json +++ b/specs/latest/swagger2-latest-server.json @@ -628,7 +628,7 @@ "x-appwrite": { "method": "updateMFA", "group": "mfa", - "weight": 239, + "weight": 223, "cookies": false, "type": "", "demo": "account\/update-mfa.md", @@ -704,7 +704,7 @@ "x-appwrite": { "method": "createMfaAuthenticator", "group": "mfa", - "weight": 241, + "weight": 225, "cookies": false, "type": "", "demo": "account\/create-mfa-authenticator.md", @@ -831,7 +831,7 @@ "x-appwrite": { "method": "updateMfaAuthenticator", "group": "mfa", - "weight": 242, + "weight": 226, "cookies": false, "type": "", "demo": "account\/update-mfa-authenticator.md", @@ -975,7 +975,7 @@ "x-appwrite": { "method": "deleteMfaAuthenticator", "group": "mfa", - "weight": 243, + "weight": 227, "cookies": false, "type": "", "demo": "account\/delete-mfa-authenticator.md", @@ -1102,7 +1102,7 @@ "x-appwrite": { "method": "createMfaChallenge", "group": "mfa", - "weight": 247, + "weight": 231, "cookies": false, "type": "", "demo": "account\/create-mfa-challenge.md", @@ -1242,7 +1242,7 @@ "x-appwrite": { "method": "updateMfaChallenge", "group": "mfa", - "weight": 248, + "weight": 232, "cookies": false, "type": "", "demo": "account\/update-mfa-challenge.md", @@ -1385,7 +1385,7 @@ "x-appwrite": { "method": "listMfaFactors", "group": "mfa", - "weight": 240, + "weight": 224, "cookies": false, "type": "", "demo": "account\/list-mfa-factors.md", @@ -1489,7 +1489,7 @@ "x-appwrite": { "method": "getMfaRecoveryCodes", "group": "mfa", - "weight": 246, + "weight": 230, "cookies": false, "type": "", "demo": "account\/get-mfa-recovery-codes.md", @@ -1593,7 +1593,7 @@ "x-appwrite": { "method": "createMfaRecoveryCodes", "group": "mfa", - "weight": 244, + "weight": 228, "cookies": false, "type": "", "demo": "account\/create-mfa-recovery-codes.md", @@ -1697,7 +1697,7 @@ "x-appwrite": { "method": "updateMfaRecoveryCodes", "group": "mfa", - "weight": 245, + "weight": 229, "cookies": false, "type": "", "demo": "account\/update-mfa-recovery-codes.md", @@ -3919,7 +3919,7 @@ "x-appwrite": { "method": "listEvents", "group": null, - "weight": 779, + "weight": 800, "cookies": false, "type": "", "demo": "activities\/list-events.md", @@ -3981,7 +3981,7 @@ "x-appwrite": { "method": "getEvent", "group": "events", - "weight": 780, + "weight": 801, "cookies": false, "type": "", "demo": "activities\/get-event.md", @@ -4043,7 +4043,7 @@ "x-appwrite": { "method": "getBrowser", "group": null, - "weight": 250, + "weight": 234, "cookies": false, "type": "location", "demo": "avatars\/get-browser.md", @@ -4171,7 +4171,7 @@ "x-appwrite": { "method": "getCreditCard", "group": null, - "weight": 249, + "weight": 233, "cookies": false, "type": "location", "demo": "avatars\/get-credit-card.md", @@ -4305,7 +4305,7 @@ "x-appwrite": { "method": "getFavicon", "group": null, - "weight": 253, + "weight": 237, "cookies": false, "type": "location", "demo": "avatars\/get-favicon.md", @@ -4371,7 +4371,7 @@ "x-appwrite": { "method": "getFlag", "group": null, - "weight": 251, + "weight": 235, "cookies": false, "type": "location", "demo": "avatars\/get-flag.md", @@ -4861,7 +4861,7 @@ "x-appwrite": { "method": "getImage", "group": null, - "weight": 252, + "weight": 236, "cookies": false, "type": "location", "demo": "avatars\/get-image.md", @@ -4947,7 +4947,7 @@ "x-appwrite": { "method": "getInitials", "group": null, - "weight": 255, + "weight": 239, "cookies": false, "type": "location", "demo": "avatars\/get-initials.md", @@ -5041,7 +5041,7 @@ "x-appwrite": { "method": "getQR", "group": null, - "weight": 254, + "weight": 238, "cookies": false, "type": "location", "demo": "avatars\/get-qr.md", @@ -5135,7 +5135,7 @@ "x-appwrite": { "method": "getScreenshot", "group": null, - "weight": 256, + "weight": 240, "cookies": false, "type": "location", "demo": "avatars\/get-screenshot.md", @@ -5850,7 +5850,7 @@ "x-appwrite": { "method": "listArchives", "group": null, - "weight": 749, + "weight": 768, "cookies": false, "type": "", "demo": "backups\/list-archives.md", @@ -5916,7 +5916,7 @@ "x-appwrite": { "method": "createArchive", "group": null, - "weight": 750, + "weight": 769, "cookies": false, "type": "", "demo": "backups\/create-archive.md", @@ -5958,6 +5958,9 @@ "type": "string", "enum": [ "databases", + "tablesdb", + "documentsdb", + "vectordb", "functions", "storage" ], @@ -6005,7 +6008,7 @@ "x-appwrite": { "method": "getArchive", "group": null, - "weight": 748, + "weight": 767, "cookies": false, "type": "", "demo": "backups\/get-archive.md", @@ -6064,7 +6067,7 @@ "x-appwrite": { "method": "deleteArchive", "group": null, - "weight": 751, + "weight": 770, "cookies": false, "type": "", "demo": "backups\/delete-archive.md", @@ -6126,7 +6129,7 @@ "x-appwrite": { "method": "listPolicies", "group": null, - "weight": 744, + "weight": 763, "cookies": false, "type": "", "demo": "backups\/list-policies.md", @@ -6192,7 +6195,7 @@ "x-appwrite": { "method": "createPolicy", "group": null, - "weight": 745, + "weight": 764, "cookies": false, "type": "", "demo": "backups\/create-policy.md", @@ -6246,6 +6249,9 @@ "type": "string", "enum": [ "databases", + "tablesdb", + "documentsdb", + "vectordb", "functions", "storage" ], @@ -6315,7 +6321,7 @@ "x-appwrite": { "method": "getPolicy", "group": null, - "weight": 743, + "weight": 762, "cookies": false, "type": "", "demo": "backups\/get-policy.md", @@ -6377,7 +6383,7 @@ "x-appwrite": { "method": "updatePolicy", "group": null, - "weight": 746, + "weight": 765, "cookies": false, "type": "", "demo": "backups\/update-policy.md", @@ -6473,7 +6479,7 @@ "x-appwrite": { "method": "deletePolicy", "group": null, - "weight": 747, + "weight": 766, "cookies": false, "type": "", "demo": "backups\/delete-policy.md", @@ -6537,7 +6543,7 @@ "x-appwrite": { "method": "createRestoration", "group": null, - "weight": 754, + "weight": 773, "cookies": false, "type": "", "demo": "backups\/create-restoration.md", @@ -6585,6 +6591,9 @@ "type": "string", "enum": [ "databases", + "tablesdb", + "documentsdb", + "vectordb", "functions", "storage" ], @@ -6638,7 +6647,7 @@ "x-appwrite": { "method": "listRestorations", "group": null, - "weight": 753, + "weight": 772, "cookies": false, "type": "", "demo": "backups\/list-restorations.md", @@ -6704,7 +6713,7 @@ "x-appwrite": { "method": "getRestoration", "group": null, - "weight": 752, + "weight": 771, "cookies": false, "type": "", "demo": "backups\/get-restoration.md", @@ -6766,7 +6775,7 @@ "x-appwrite": { "method": "list", "group": "databases", - "weight": 264, + "weight": 248, "cookies": false, "type": "", "demo": "databases\/list.md", @@ -6884,7 +6893,7 @@ "x-appwrite": { "method": "create", "group": "databases", - "weight": 260, + "weight": 244, "cookies": false, "type": "", "demo": "databases\/create.md", @@ -7006,7 +7015,7 @@ "x-appwrite": { "method": "listTransactions", "group": "transactions", - "weight": 332, + "weight": 316, "cookies": false, "type": "", "demo": "databases\/list-transactions.md", @@ -7075,7 +7084,7 @@ "x-appwrite": { "method": "createTransaction", "group": "transactions", - "weight": 328, + "weight": 312, "cookies": false, "type": "", "demo": "databases\/create-transaction.md", @@ -7148,7 +7157,7 @@ "x-appwrite": { "method": "getTransaction", "group": "transactions", - "weight": 329, + "weight": 313, "cookies": false, "type": "", "demo": "databases\/get-transaction.md", @@ -7213,7 +7222,7 @@ "x-appwrite": { "method": "updateTransaction", "group": "transactions", - "weight": 330, + "weight": 314, "cookies": false, "type": "", "demo": "databases\/update-transaction.md", @@ -7294,7 +7303,7 @@ "x-appwrite": { "method": "deleteTransaction", "group": "transactions", - "weight": 331, + "weight": 315, "cookies": false, "type": "", "demo": "databases\/delete-transaction.md", @@ -7361,7 +7370,7 @@ "x-appwrite": { "method": "createOperations", "group": "transactions", - "weight": 333, + "weight": 317, "cookies": false, "type": "", "demo": "databases\/create-operations.md", @@ -7444,7 +7453,7 @@ "x-appwrite": { "method": "get", "group": "databases", - "weight": 261, + "weight": 245, "cookies": false, "type": "", "demo": "databases\/get.md", @@ -7540,7 +7549,7 @@ "x-appwrite": { "method": "update", "group": "databases", - "weight": 262, + "weight": 246, "cookies": false, "type": "", "demo": "databases\/update.md", @@ -7654,7 +7663,7 @@ "x-appwrite": { "method": "delete", "group": "databases", - "weight": 263, + "weight": 247, "cookies": false, "type": "", "demo": "databases\/delete.md", @@ -7749,7 +7758,7 @@ "x-appwrite": { "method": "listCollections", "group": "collections", - "weight": 272, + "weight": 256, "cookies": false, "type": "", "demo": "databases\/list-collections.md", @@ -7845,7 +7854,7 @@ "x-appwrite": { "method": "createCollection", "group": "collections", - "weight": 268, + "weight": 252, "cookies": false, "type": "", "demo": "databases\/create-collection.md", @@ -7976,7 +7985,7 @@ "x-appwrite": { "method": "getCollection", "group": "collections", - "weight": 269, + "weight": 253, "cookies": false, "type": "", "demo": "databases\/get-collection.md", @@ -8050,7 +8059,7 @@ "x-appwrite": { "method": "updateCollection", "group": "collections", - "weight": 270, + "weight": 254, "cookies": false, "type": "", "demo": "databases\/update-collection.md", @@ -8156,7 +8165,7 @@ "x-appwrite": { "method": "deleteCollection", "group": "collections", - "weight": 271, + "weight": 255, "cookies": false, "type": "", "demo": "databases\/delete-collection.md", @@ -8230,7 +8239,7 @@ "x-appwrite": { "method": "listAttributes", "group": "attributes", - "weight": 289, + "weight": 273, "cookies": false, "type": "", "demo": "databases\/list-attributes.md", @@ -8327,7 +8336,7 @@ "x-appwrite": { "method": "createBooleanAttribute", "group": "attributes", - "weight": 290, + "weight": 274, "cookies": false, "type": "", "demo": "databases\/create-boolean-attribute.md", @@ -8368,7 +8377,7 @@ }, { "name": "collectionId", - "description": "Collection ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", "required": true, "type": "string", "x-example": "<COLLECTION_ID>", @@ -8441,7 +8450,7 @@ "x-appwrite": { "method": "updateBooleanAttribute", "group": "attributes", - "weight": 291, + "weight": 275, "cookies": false, "type": "", "demo": "databases\/update-boolean-attribute.md", @@ -8557,7 +8566,7 @@ "x-appwrite": { "method": "createDatetimeAttribute", "group": "attributes", - "weight": 292, + "weight": 276, "cookies": false, "type": "", "demo": "databases\/create-datetime-attribute.md", @@ -8671,7 +8680,7 @@ "x-appwrite": { "method": "updateDatetimeAttribute", "group": "attributes", - "weight": 293, + "weight": 277, "cookies": false, "type": "", "demo": "databases\/update-datetime-attribute.md", @@ -8787,7 +8796,7 @@ "x-appwrite": { "method": "createEmailAttribute", "group": "attributes", - "weight": 294, + "weight": 278, "cookies": false, "type": "", "demo": "databases\/create-email-attribute.md", @@ -8902,7 +8911,7 @@ "x-appwrite": { "method": "updateEmailAttribute", "group": "attributes", - "weight": 295, + "weight": 279, "cookies": false, "type": "", "demo": "databases\/update-email-attribute.md", @@ -9019,7 +9028,7 @@ "x-appwrite": { "method": "createEnumAttribute", "group": "attributes", - "weight": 296, + "weight": 280, "cookies": false, "type": "", "demo": "databases\/create-enum-attribute.md", @@ -9143,7 +9152,7 @@ "x-appwrite": { "method": "updateEnumAttribute", "group": "attributes", - "weight": 297, + "weight": 281, "cookies": false, "type": "", "demo": "databases\/update-enum-attribute.md", @@ -9269,7 +9278,7 @@ "x-appwrite": { "method": "createFloatAttribute", "group": "attributes", - "weight": 298, + "weight": 282, "cookies": false, "type": "", "demo": "databases\/create-float-attribute.md", @@ -9400,7 +9409,7 @@ "x-appwrite": { "method": "updateFloatAttribute", "group": "attributes", - "weight": 299, + "weight": 283, "cookies": false, "type": "", "demo": "databases\/update-float-attribute.md", @@ -9533,7 +9542,7 @@ "x-appwrite": { "method": "createIntegerAttribute", "group": "attributes", - "weight": 300, + "weight": 284, "cookies": false, "type": "", "demo": "databases\/create-integer-attribute.md", @@ -9664,7 +9673,7 @@ "x-appwrite": { "method": "updateIntegerAttribute", "group": "attributes", - "weight": 301, + "weight": 285, "cookies": false, "type": "", "demo": "databases\/update-integer-attribute.md", @@ -9797,7 +9806,7 @@ "x-appwrite": { "method": "createIpAttribute", "group": "attributes", - "weight": 302, + "weight": 286, "cookies": false, "type": "", "demo": "databases\/create-ip-attribute.md", @@ -9911,7 +9920,7 @@ "x-appwrite": { "method": "updateIpAttribute", "group": "attributes", - "weight": 303, + "weight": 287, "cookies": false, "type": "", "demo": "databases\/update-ip-attribute.md", @@ -10027,7 +10036,7 @@ "x-appwrite": { "method": "createLineAttribute", "group": "attributes", - "weight": 304, + "weight": 288, "cookies": false, "type": "", "demo": "databases\/create-line-attribute.md", @@ -10135,7 +10144,7 @@ "x-appwrite": { "method": "updateLineAttribute", "group": "attributes", - "weight": 305, + "weight": 289, "cookies": false, "type": "", "demo": "databases\/update-line-attribute.md", @@ -10250,7 +10259,7 @@ "x-appwrite": { "method": "createLongtextAttribute", "group": "attributes", - "weight": 322, + "weight": 306, "cookies": false, "type": "", "demo": "databases\/create-longtext-attribute.md", @@ -10366,7 +10375,7 @@ "x-appwrite": { "method": "updateLongtextAttribute", "group": "attributes", - "weight": 323, + "weight": 307, "cookies": false, "type": "", "demo": "databases\/update-longtext-attribute.md", @@ -10478,7 +10487,7 @@ "x-appwrite": { "method": "createMediumtextAttribute", "group": "attributes", - "weight": 320, + "weight": 304, "cookies": false, "type": "", "demo": "databases\/create-mediumtext-attribute.md", @@ -10594,7 +10603,7 @@ "x-appwrite": { "method": "updateMediumtextAttribute", "group": "attributes", - "weight": 321, + "weight": 305, "cookies": false, "type": "", "demo": "databases\/update-mediumtext-attribute.md", @@ -10706,7 +10715,7 @@ "x-appwrite": { "method": "createPointAttribute", "group": "attributes", - "weight": 306, + "weight": 290, "cookies": false, "type": "", "demo": "databases\/create-point-attribute.md", @@ -10814,7 +10823,7 @@ "x-appwrite": { "method": "updatePointAttribute", "group": "attributes", - "weight": 307, + "weight": 291, "cookies": false, "type": "", "demo": "databases\/update-point-attribute.md", @@ -10929,7 +10938,7 @@ "x-appwrite": { "method": "createPolygonAttribute", "group": "attributes", - "weight": 308, + "weight": 292, "cookies": false, "type": "", "demo": "databases\/create-polygon-attribute.md", @@ -11037,7 +11046,7 @@ "x-appwrite": { "method": "updatePolygonAttribute", "group": "attributes", - "weight": 309, + "weight": 293, "cookies": false, "type": "", "demo": "databases\/update-polygon-attribute.md", @@ -11152,7 +11161,7 @@ "x-appwrite": { "method": "createRelationshipAttribute", "group": "attributes", - "weight": 310, + "weight": 294, "cookies": false, "type": "", "demo": "databases\/create-relationship-attribute.md", @@ -11268,138 +11277,10 @@ ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/string": { - "post": { - "summary": "Create string attribute", - "operationId": "databasesCreateStringAttribute", - "consumes": [ - "application\/json" - ], - "produces": [ - "application\/json" - ], - "tags": [ - "databases" - ], - "description": "Create a string attribute.\n", - "responses": { - "202": { - "description": "AttributeString", - "schema": { - "$ref": "#\/definitions\/attributeString" - } - } - }, - "deprecated": true, - "x-appwrite": { - "method": "createStringAttribute", - "group": "attributes", - "weight": 312, - "cookies": false, - "type": "", - "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, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-string-attribute.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createStringColumn" - }, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "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, - "type": "string", - "x-example": "<COLLECTION_ID>", - "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Attribute Key.", - "default": null, - "x-example": null - }, - "size": { - "type": "integer", - "description": "Attribute size for text attributes, in number of characters.", - "default": null, - "x-example": 1, - "format": "int32" - }, - "required": { - "type": "boolean", - "description": "Is attribute required?", - "default": null, - "x-example": false - }, - "default": { - "type": "string", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "default": null, - "x-example": "<DEFAULT>", - "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is attribute an array?", - "default": false, - "x-example": false - }, - "encrypt": { - "type": "boolean", - "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.", - "default": false, - "x-example": false - } - }, - "required": [ - "key", - "size", - "required" - ] - } - } - ] - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/string\/{key}": { + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/relationship\/{key}": { "patch": { - "summary": "Update string attribute", - "operationId": "databasesUpdateStringAttribute", + "summary": "Update relationship attribute", + "operationId": "databasesUpdateRelationshipAttribute", "consumes": [ "application\/json" ], @@ -11409,23 +11290,23 @@ "tags": [ "databases" ], - "description": "Update a string attribute. Changing the `default` value will not update already existing documents.\n", + "description": "Update relationship attribute. [Learn more about relationship attributes](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-attributes).\n", "responses": { "200": { - "description": "AttributeString", + "description": "AttributeRelationship", "schema": { - "$ref": "#\/definitions\/attributeString" + "$ref": "#\/definitions\/attributeRelationship" } } }, "deprecated": true, "x-appwrite": { - "method": "updateStringAttribute", + "method": "updateRelationshipAttribute", "group": "attributes", - "weight": 313, + "weight": 295, "cookies": false, "type": "", - "demo": "databases\/update-string-attribute.md", + "demo": "databases\/update-relationship-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -11436,10 +11317,10 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-string-attribute.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-relationship-attribute.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.updateStringColumn" + "replaceWith": "tablesDB.updateRelationshipColumn" }, "auth": { "Project": [], @@ -11463,7 +11344,7 @@ }, { "name": "collectionId", - "description": "Collection ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "description": "Collection ID.", "required": true, "type": "string", "x-example": "<COLLECTION_ID>", @@ -11482,26 +11363,18 @@ "schema": { "type": "object", "properties": { - "required": { - "type": "boolean", - "description": "Is attribute required?", - "default": null, - "x-example": false - }, - "default": { + "onDelete": { "type": "string", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "default": null, - "x-example": "<DEFAULT>", - "x-nullable": true - }, - "size": { - "type": "integer", - "description": "Maximum size of the string attribute.", + "description": "Constraints option", "default": null, - "x-example": 1, - "format": "int32", - "x-nullable": true + "x-example": "cascade", + "enum": [ + "cascade", + "restrict", + "setNull" + ], + "x-enum-name": "RelationMutate", + "x-enum-keys": [] }, "newKey": { "type": "string", @@ -11510,20 +11383,16 @@ "x-example": null, "x-nullable": true } - }, - "required": [ - "required", - "default" - ] + } } } ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/text": { + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/string": { "post": { - "summary": "Create text attribute", - "operationId": "databasesCreateTextAttribute", + "summary": "Create string attribute", + "operationId": "databasesCreateStringAttribute", "consumes": [ "application\/json" ], @@ -11533,23 +11402,23 @@ "tags": [ "databases" ], - "description": "Create a text attribute.\n", + "description": "Create a string attribute.\n", "responses": { "202": { - "description": "AttributeText", + "description": "AttributeString", "schema": { - "$ref": "#\/definitions\/attributeText" + "$ref": "#\/definitions\/attributeString" } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "createTextAttribute", + "method": "createStringAttribute", "group": "attributes", - "weight": 318, + "weight": 296, "cookies": false, "type": "", - "demo": "databases\/create-text-attribute.md", + "demo": "databases\/create-string-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -11560,7 +11429,11 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-text-attribute.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-string-attribute.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createStringColumn" + }, "auth": { "Project": [], "Key": [] @@ -11583,7 +11456,7 @@ }, { "name": "collectionId", - "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "description": "Collection ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", "required": true, "type": "string", "x-example": "<COLLECTION_ID>", @@ -11601,6 +11474,13 @@ "default": null, "x-example": null }, + "size": { + "type": "integer", + "description": "Attribute size for text attributes, in number of characters.", + "default": null, + "x-example": 1, + "format": "int32" + }, "required": { "type": "boolean", "description": "Is attribute required?", @@ -11629,6 +11509,7 @@ }, "required": [ "key", + "size", "required" ] } @@ -11636,10 +11517,10 @@ ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/text\/{key}": { + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/string\/{key}": { "patch": { - "summary": "Update text attribute", - "operationId": "databasesUpdateTextAttribute", + "summary": "Update string attribute", + "operationId": "databasesUpdateStringAttribute", "consumes": [ "application\/json" ], @@ -11649,23 +11530,23 @@ "tags": [ "databases" ], - "description": "Update a text attribute. Changing the `default` value will not update already existing documents.\n", + "description": "Update a string attribute. Changing the `default` value will not update already existing documents.\n", "responses": { "200": { - "description": "AttributeText", + "description": "AttributeString", "schema": { - "$ref": "#\/definitions\/attributeText" + "$ref": "#\/definitions\/attributeString" } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "updateTextAttribute", + "method": "updateStringAttribute", "group": "attributes", - "weight": 319, + "weight": 297, "cookies": false, "type": "", - "demo": "databases\/update-text-attribute.md", + "demo": "databases\/update-string-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -11676,7 +11557,11 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-text-attribute.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-string-attribute.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateStringColumn" + }, "auth": { "Project": [], "Key": [] @@ -11699,7 +11584,7 @@ }, { "name": "collectionId", - "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "description": "Collection ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", "required": true, "type": "string", "x-example": "<COLLECTION_ID>", @@ -11731,6 +11616,14 @@ "x-example": "<DEFAULT>", "x-nullable": true }, + "size": { + "type": "integer", + "description": "Maximum size of the string attribute.", + "default": null, + "x-example": 1, + "format": "int32", + "x-nullable": true + }, "newKey": { "type": "string", "description": "New Attribute Key.", @@ -11748,10 +11641,10 @@ ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/url": { + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/text": { "post": { - "summary": "Create URL attribute", - "operationId": "databasesCreateUrlAttribute", + "summary": "Create text attribute", + "operationId": "databasesCreateTextAttribute", "consumes": [ "application\/json" ], @@ -11761,23 +11654,23 @@ "tags": [ "databases" ], - "description": "Create a URL attribute.\n", + "description": "Create a text attribute.\n", "responses": { "202": { - "description": "AttributeURL", + "description": "AttributeText", "schema": { - "$ref": "#\/definitions\/attributeUrl" + "$ref": "#\/definitions\/attributeText" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createUrlAttribute", + "method": "createTextAttribute", "group": "attributes", - "weight": 314, + "weight": 302, "cookies": false, "type": "", - "demo": "databases\/create-url-attribute.md", + "demo": "databases\/create-text-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -11788,11 +11681,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-url-attribute.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.createUrlColumn" - }, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-text-attribute.md", "auth": { "Project": [], "Key": [] @@ -11815,7 +11704,7 @@ }, { "name": "collectionId", - "description": "Collection ID.", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", "required": true, "type": "string", "x-example": "<COLLECTION_ID>", @@ -11843,8 +11732,7 @@ "type": "string", "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", "default": null, - "x-example": "https:\/\/example.com", - "format": "url", + "x-example": "<DEFAULT>", "x-nullable": true }, "array": { @@ -11852,6 +11740,12 @@ "description": "Is attribute an array?", "default": false, "x-example": false + }, + "encrypt": { + "type": "boolean", + "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.", + "default": false, + "x-example": false } }, "required": [ @@ -11863,10 +11757,10 @@ ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/url\/{key}": { + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/text\/{key}": { "patch": { - "summary": "Update URL attribute", - "operationId": "databasesUpdateUrlAttribute", + "summary": "Update text attribute", + "operationId": "databasesUpdateTextAttribute", "consumes": [ "application\/json" ], @@ -11876,23 +11770,23 @@ "tags": [ "databases" ], - "description": "Update an url attribute. Changing the `default` value will not update already existing documents.\n", + "description": "Update a text attribute. Changing the `default` value will not update already existing documents.\n", "responses": { "200": { - "description": "AttributeURL", + "description": "AttributeText", "schema": { - "$ref": "#\/definitions\/attributeUrl" + "$ref": "#\/definitions\/attributeText" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateUrlAttribute", + "method": "updateTextAttribute", "group": "attributes", - "weight": 315, + "weight": 303, "cookies": false, "type": "", - "demo": "databases\/update-url-attribute.md", + "demo": "databases\/update-text-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -11903,11 +11797,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-url-attribute.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateUrlColumn" - }, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-text-attribute.md", "auth": { "Project": [], "Key": [] @@ -11930,7 +11820,7 @@ }, { "name": "collectionId", - "description": "Collection ID.", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", "required": true, "type": "string", "x-example": "<COLLECTION_ID>", @@ -11959,8 +11849,7 @@ "type": "string", "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", "default": null, - "x-example": "https:\/\/example.com", - "format": "url", + "x-example": "<DEFAULT>", "x-nullable": true }, "newKey": { @@ -11980,10 +11869,10 @@ ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/varchar": { + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/url": { "post": { - "summary": "Create varchar attribute", - "operationId": "databasesCreateVarcharAttribute", + "summary": "Create URL attribute", + "operationId": "databasesCreateUrlAttribute", "consumes": [ "application\/json" ], @@ -11993,23 +11882,23 @@ "tags": [ "databases" ], - "description": "Create a varchar attribute.\n", + "description": "Create a URL attribute.\n", "responses": { "202": { - "description": "AttributeVarchar", + "description": "AttributeURL", "schema": { - "$ref": "#\/definitions\/attributeVarchar" + "$ref": "#\/definitions\/attributeUrl" } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "createVarcharAttribute", + "method": "createUrlAttribute", "group": "attributes", - "weight": 316, + "weight": 298, "cookies": false, "type": "", - "demo": "databases\/create-varchar-attribute.md", + "demo": "databases\/create-url-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -12020,7 +11909,11 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-varchar-attribute.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-url-attribute.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.createUrlColumn" + }, "auth": { "Project": [], "Key": [] @@ -12043,7 +11936,7 @@ }, { "name": "collectionId", - "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "description": "Collection ID.", "required": true, "type": "string", "x-example": "<COLLECTION_ID>", @@ -12061,13 +11954,6 @@ "default": null, "x-example": null }, - "size": { - "type": "integer", - "description": "Attribute size for varchar attributes, in number of characters. Maximum size is 16381.", - "default": null, - "x-example": 1, - "format": "int32" - }, "required": { "type": "boolean", "description": "Is attribute required?", @@ -12078,7 +11964,8 @@ "type": "string", "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", "default": null, - "x-example": "<DEFAULT>", + "x-example": "https:\/\/example.com", + "format": "url", "x-nullable": true }, "array": { @@ -12086,17 +11973,10 @@ "description": "Is attribute an array?", "default": false, "x-example": false - }, - "encrypt": { - "type": "boolean", - "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.", - "default": false, - "x-example": false } }, "required": [ "key", - "size", "required" ] } @@ -12104,10 +11984,10 @@ ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/varchar\/{key}": { + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/url\/{key}": { "patch": { - "summary": "Update varchar attribute", - "operationId": "databasesUpdateVarcharAttribute", + "summary": "Update URL attribute", + "operationId": "databasesUpdateUrlAttribute", "consumes": [ "application\/json" ], @@ -12117,23 +11997,23 @@ "tags": [ "databases" ], - "description": "Update a varchar attribute. Changing the `default` value will not update already existing documents.\n", + "description": "Update an url attribute. Changing the `default` value will not update already existing documents.\n", "responses": { "200": { - "description": "AttributeVarchar", + "description": "AttributeURL", "schema": { - "$ref": "#\/definitions\/attributeVarchar" + "$ref": "#\/definitions\/attributeUrl" } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "updateVarcharAttribute", + "method": "updateUrlAttribute", "group": "attributes", - "weight": 317, + "weight": 299, "cookies": false, "type": "", - "demo": "databases\/update-varchar-attribute.md", + "demo": "databases\/update-url-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -12144,7 +12024,11 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-varchar-attribute.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-url-attribute.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateUrlColumn" + }, "auth": { "Project": [], "Key": [] @@ -12167,7 +12051,7 @@ }, { "name": "collectionId", - "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "description": "Collection ID.", "required": true, "type": "string", "x-example": "<COLLECTION_ID>", @@ -12196,15 +12080,8 @@ "type": "string", "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", "default": null, - "x-example": "<DEFAULT>", - "x-nullable": true - }, - "size": { - "type": "integer", - "description": "Maximum size of the varchar attribute.", - "default": null, - "x-example": 1, - "format": "int32", + "x-example": "https:\/\/example.com", + "format": "url", "x-nullable": true }, "newKey": { @@ -12224,80 +12101,47 @@ ] } }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/{key}": { - "get": { - "summary": "Get attribute", - "operationId": "databasesGetAttribute", - "consumes": [], + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/varchar": { + "post": { + "summary": "Create varchar attribute", + "operationId": "databasesCreateVarcharAttribute", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ "databases" ], - "description": "Get attribute by ID.", + "description": "Create a varchar attribute.\n", "responses": { - "200": { - "description": "AttributeBoolean, or AttributeInteger, or AttributeFloat, or AttributeEmail, or AttributeEnum, or AttributeURL, or AttributeIP, or AttributeDatetime, or AttributeRelationship, or AttributeString", + "202": { + "description": "AttributeVarchar", "schema": { - "x-oneOf": [ - { - "$ref": "#\/definitions\/attributeBoolean" - }, - { - "$ref": "#\/definitions\/attributeInteger" - }, - { - "$ref": "#\/definitions\/attributeFloat" - }, - { - "$ref": "#\/definitions\/attributeEmail" - }, - { - "$ref": "#\/definitions\/attributeEnum" - }, - { - "$ref": "#\/definitions\/attributeUrl" - }, - { - "$ref": "#\/definitions\/attributeIp" - }, - { - "$ref": "#\/definitions\/attributeDatetime" - }, - { - "$ref": "#\/definitions\/attributeRelationship" - }, - { - "$ref": "#\/definitions\/attributeString" - } - ] + "$ref": "#\/definitions\/attributeVarchar" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "getAttribute", + "method": "createVarcharAttribute", "group": "attributes", - "weight": 287, + "weight": 300, "cookies": false, "type": "", - "demo": "databases\/get-attribute.md", + "demo": "databases\/create-varchar-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.read", + "scope": "collections.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get-attribute.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.getColumn" - }, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/create-varchar-attribute.md", "auth": { "Project": [], "Key": [] @@ -12320,7 +12164,131 @@ }, { "name": "collectionId", - "description": "Collection ID.", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "default": null, + "x-example": null + }, + "size": { + "type": "integer", + "description": "Attribute size for varchar attributes, in number of characters. Maximum size is 16381.", + "default": null, + "x-example": 1, + "format": "int32" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "default": null, + "x-example": false + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "default": null, + "x-example": "<DEFAULT>", + "x-nullable": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "default": false, + "x-example": false + }, + "encrypt": { + "type": "boolean", + "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.", + "default": false, + "x-example": false + } + }, + "required": [ + "key", + "size", + "required" + ] + } + } + ] + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/varchar\/{key}": { + "patch": { + "summary": "Update varchar attribute", + "operationId": "databasesUpdateVarcharAttribute", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "databases" + ], + "description": "Update a varchar attribute. Changing the `default` value will not update already existing documents.\n", + "responses": { + "200": { + "description": "AttributeVarchar", + "schema": { + "$ref": "#\/definitions\/attributeVarchar" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateVarcharAttribute", + "group": "attributes", + "weight": 301, + "cookies": false, + "type": "", + "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-varchar-attribute.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", "required": true, "type": "string", "x-example": "<COLLECTION_ID>", @@ -12332,47 +12300,124 @@ "required": true, "type": "string", "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "required": { + "type": "boolean", + "description": "Is attribute required?", + "default": null, + "x-example": false + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "default": null, + "x-example": "<DEFAULT>", + "x-nullable": true + }, + "size": { + "type": "integer", + "description": "Maximum size of the varchar attribute.", + "default": null, + "x-example": 1, + "format": "int32", + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Attribute Key.", + "default": null, + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required", + "default" + ] + } } ] - }, - "delete": { - "summary": "Delete attribute", - "operationId": "databasesDeleteAttribute", - "consumes": [ + } + }, + "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/{key}": { + "get": { + "summary": "Get attribute", + "operationId": "databasesGetAttribute", + "consumes": [], + "produces": [ "application\/json" ], - "produces": [], "tags": [ "databases" ], - "description": "Deletes an attribute.", + "description": "Get attribute by ID.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "AttributeBoolean, or AttributeInteger, or AttributeFloat, or AttributeEmail, or AttributeEnum, or AttributeURL, or AttributeIP, or AttributeDatetime, or AttributeRelationship, or AttributeString", + "schema": { + "x-oneOf": [ + { + "$ref": "#\/definitions\/attributeBoolean" + }, + { + "$ref": "#\/definitions\/attributeInteger" + }, + { + "$ref": "#\/definitions\/attributeFloat" + }, + { + "$ref": "#\/definitions\/attributeEmail" + }, + { + "$ref": "#\/definitions\/attributeEnum" + }, + { + "$ref": "#\/definitions\/attributeUrl" + }, + { + "$ref": "#\/definitions\/attributeIp" + }, + { + "$ref": "#\/definitions\/attributeDatetime" + }, + { + "$ref": "#\/definitions\/attributeRelationship" + }, + { + "$ref": "#\/definitions\/attributeString" + } + ] + } } }, "deprecated": true, "x-appwrite": { - "method": "deleteAttribute", + "method": "getAttribute", "group": "attributes", - "weight": 288, + "weight": 271, "cookies": false, "type": "", - "demo": "databases\/delete-attribute.md", + "demo": "databases\/get-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "collections.write", + "scope": "collections.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/delete-attribute.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/get-attribute.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.deleteColumn" + "replaceWith": "tablesDB.getColumn" }, "auth": { "Project": [], @@ -12410,38 +12455,31 @@ "in": "path" } ] - } - }, - "\/databases\/{databaseId}\/collections\/{collectionId}\/attributes\/{key}\/relationship": { - "patch": { - "summary": "Update relationship attribute", - "operationId": "databasesUpdateRelationshipAttribute", + }, + "delete": { + "summary": "Delete attribute", + "operationId": "databasesDeleteAttribute", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ "databases" ], - "description": "Update relationship attribute. [Learn more about relationship attributes](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-attributes).\n", + "description": "Deletes an attribute.", "responses": { - "200": { - "description": "AttributeRelationship", - "schema": { - "$ref": "#\/definitions\/attributeRelationship" - } + "204": { + "description": "No content" } }, "deprecated": true, "x-appwrite": { - "method": "updateRelationshipAttribute", + "method": "deleteAttribute", "group": "attributes", - "weight": 311, + "weight": 272, "cookies": false, "type": "", - "demo": "databases\/update-relationship-attribute.md", + "demo": "databases\/delete-attribute.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -12452,10 +12490,10 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/update-relationship-attribute.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/databases\/delete-attribute.md", "deprecated": { "since": "1.8.0", - "replaceWith": "tablesDB.updateRelationshipColumn" + "replaceWith": "tablesDB.deleteColumn" }, "auth": { "Project": [], @@ -12491,36 +12529,6 @@ "required": true, "type": "string", "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "onDelete": { - "type": "string", - "description": "Constraints option", - "default": null, - "x-example": "cascade", - "enum": [ - "cascade", - "restrict", - "setNull" - ], - "x-enum-name": "RelationMutate", - "x-enum-keys": [], - "x-nullable": true - }, - "newKey": { - "type": "string", - "description": "New Attribute Key.", - "default": null, - "x-example": null, - "x-nullable": true - } - } - } } ] } @@ -12549,7 +12557,7 @@ "x-appwrite": { "method": "listDocuments", "group": "documents", - "weight": 283, + "weight": 267, "cookies": false, "type": "", "demo": "databases\/list-documents.md", @@ -12627,6 +12635,16 @@ "x-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, + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0, + "in": "query" } ] }, @@ -12655,7 +12673,7 @@ "x-appwrite": { "method": "createDocument", "group": "documents", - "weight": 275, + "weight": 259, "cookies": false, "type": "", "demo": "databases\/create-document.md", @@ -12724,6 +12742,7 @@ "databaseId", "collectionId", "documents", + "transactionId", "transactionId" ], "required": [ @@ -12850,7 +12869,7 @@ "x-appwrite": { "method": "upsertDocuments", "group": "documents", - "weight": 280, + "weight": 264, "cookies": false, "type": "", "demo": "databases\/upsert-documents.md", @@ -12860,6 +12879,7 @@ "scope": "documents.write", "platforms": [ "console", + "client", "server" ], "packaging": false, @@ -12876,7 +12896,7 @@ "desc": "", "auth": { "Project": [], - "Key": [] + "Session": [] }, "parameters": [ "databaseId", @@ -12906,13 +12926,15 @@ ], "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ @@ -12987,7 +13009,7 @@ "x-appwrite": { "method": "updateDocuments", "group": "documents", - "weight": 278, + "weight": 262, "cookies": false, "type": "", "demo": "databases\/update-documents.md", @@ -13092,7 +13114,7 @@ "x-appwrite": { "method": "deleteDocuments", "group": "documents", - "weight": 282, + "weight": 266, "cookies": false, "type": "", "demo": "databases\/delete-documents.md", @@ -13191,7 +13213,7 @@ "x-appwrite": { "method": "getDocument", "group": "documents", - "weight": 276, + "weight": 260, "cookies": false, "type": "", "demo": "databases\/get-document.md", @@ -13296,7 +13318,7 @@ "x-appwrite": { "method": "upsertDocument", "group": "documents", - "weight": 279, + "weight": 263, "cookies": false, "type": "", "demo": "databases\/upsert-document.md", @@ -13450,7 +13472,7 @@ "x-appwrite": { "method": "updateDocument", "group": "documents", - "weight": 277, + "weight": 261, "cookies": false, "type": "", "demo": "databases\/update-document.md", @@ -13562,7 +13584,7 @@ "x-appwrite": { "method": "deleteDocument", "group": "documents", - "weight": 281, + "weight": 265, "cookies": false, "type": "", "demo": "databases\/delete-document.md", @@ -13665,7 +13687,7 @@ "x-appwrite": { "method": "decrementDocumentAttribute", "group": "documents", - "weight": 286, + "weight": 270, "cookies": false, "type": "", "demo": "databases\/decrement-document-attribute.md", @@ -13790,7 +13812,7 @@ "x-appwrite": { "method": "incrementDocumentAttribute", "group": "documents", - "weight": 285, + "weight": 269, "cookies": false, "type": "", "demo": "databases\/increment-document-attribute.md", @@ -13913,7 +13935,7 @@ "x-appwrite": { "method": "listIndexes", "group": "indexes", - "weight": 327, + "weight": 311, "cookies": false, "type": "", "demo": "databases\/list-indexes.md", @@ -14008,7 +14030,7 @@ "x-appwrite": { "method": "createIndex", "group": "indexes", - "weight": 324, + "weight": 308, "cookies": false, "type": "", "demo": "databases\/create-index.md", @@ -14149,7 +14171,7 @@ "x-appwrite": { "method": "getIndex", "group": "indexes", - "weight": 325, + "weight": 309, "cookies": false, "type": "", "demo": "databases\/get-index.md", @@ -14225,7 +14247,7 @@ "x-appwrite": { "method": "deleteIndex", "group": "indexes", - "weight": 326, + "weight": 310, "cookies": false, "type": "", "demo": "databases\/delete-index.md", @@ -14282,44 +14304,45 @@ ] } }, - "\/functions": { + "\/documentsdb": { "get": { - "summary": "List functions", - "operationId": "functionsList", + "summary": "List databases", + "operationId": "documentsDBList", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "functions" + "documentsDB" ], - "description": "Get a list of all the project's functions. You can use the query params to filter your results.", + "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": "Functions List", + "description": "Databases List", "schema": { - "$ref": "#\/definitions\/functionList" + "$ref": "#\/definitions\/databaseList" } } }, "deprecated": false, "x-appwrite": { "method": "list", - "group": "functions", - "weight": 561, + "group": "documentsdb", + "weight": 395, "cookies": false, "type": "", - "demo": "functions\/list.md", + "demo": "documentsdb\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", + "scope": "databases.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/list.md", "auth": { "Project": [], "Key": [] @@ -14334,7 +14357,7 @@ "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", + "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, "type": "array", "collectionFormat": "multi", @@ -14365,8 +14388,8 @@ ] }, "post": { - "summary": "Create function", - "operationId": "functionsCreate", + "summary": "Create database", + "operationId": "documentsDBCreate", "consumes": [ "application\/json" ], @@ -14374,35 +14397,36 @@ "application\/json" ], "tags": [ - "functions" + "documentsDB" ], - "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.", + "description": "Create a new Database.\n", "responses": { "201": { - "description": "Function", + "description": "Database", "schema": { - "$ref": "#\/definitions\/function" + "$ref": "#\/definitions\/database" } } }, "deprecated": false, "x-appwrite": { "method": "create", - "group": "functions", - "weight": 558, + "group": "documentsdb", + "weight": 391, "cookies": false, "type": "", - "demo": "functions\/create.md", + "demo": "documentsdb\/create.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/create.md", "auth": { "Project": [], "Key": [] @@ -14421,333 +14445,70 @@ "schema": { "type": "object", "properties": { - "functionId": { + "databaseId": { "type": "string", - "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.", + "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.", "default": null, - "x-example": "<FUNCTION_ID>" + "x-example": "<DATABASE_ID>" }, "name": { "type": "string", - "description": "Function name. Max length: 128 chars.", + "description": "Database name. Max length: 128 chars.", "default": null, "x-example": "<NAME>" }, - "runtime": { - "type": "string", - "description": "Execution runtime.", - "default": null, - "x-example": "node-14.5", - "enum": [ - "node-14.5", - "node-16.0", - "node-18.0", - "node-19.0", - "node-20.0", - "node-21.0", - "node-22", - "node-23", - "node-24", - "node-25", - "php-8.0", - "php-8.1", - "php-8.2", - "php-8.3", - "php-8.4", - "ruby-3.0", - "ruby-3.1", - "ruby-3.2", - "ruby-3.3", - "ruby-3.4", - "ruby-4.0", - "python-3.8", - "python-3.9", - "python-3.10", - "python-3.11", - "python-3.12", - "python-3.13", - "python-3.14", - "python-ml-3.11", - "python-ml-3.12", - "python-ml-3.13", - "deno-1.21", - "deno-1.24", - "deno-1.35", - "deno-1.40", - "deno-1.46", - "deno-2.0", - "deno-2.5", - "deno-2.6", - "dart-2.15", - "dart-2.16", - "dart-2.17", - "dart-2.18", - "dart-2.19", - "dart-3.0", - "dart-3.1", - "dart-3.3", - "dart-3.5", - "dart-3.8", - "dart-3.9", - "dart-3.10", - "dotnet-6.0", - "dotnet-7.0", - "dotnet-8.0", - "dotnet-10", - "java-8.0", - "java-11.0", - "java-17.0", - "java-18.0", - "java-21.0", - "java-22", - "java-25", - "swift-5.5", - "swift-5.8", - "swift-5.9", - "swift-5.10", - "swift-6.2", - "kotlin-1.6", - "kotlin-1.8", - "kotlin-1.9", - "kotlin-2.0", - "kotlin-2.3", - "cpp-17", - "cpp-20", - "bun-1.0", - "bun-1.1", - "bun-1.2", - "bun-1.3", - "go-1.23", - "go-1.24", - "go-1.25", - "go-1.26", - "static-1", - "flutter-3.24", - "flutter-3.27", - "flutter-3.29", - "flutter-3.32", - "flutter-3.35", - "flutter-3.38" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "execute": { - "type": "array", - "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.", - "default": [], - "x-example": "[\"any\"]", - "items": { - "type": "string" - } - }, - "events": { - "type": "array", - "description": "Events list. Maximum of 100 events are allowed.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "schedule": { - "type": "string", - "description": "Schedule CRON syntax.", - "default": "", - "x-example": null - }, - "timeout": { - "type": "integer", - "description": "Function maximum execution time in seconds.", - "default": 15, - "x-example": 1, - "format": "int32" - }, "enabled": { "type": "boolean", - "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.", - "default": true, - "x-example": false - }, - "logging": { - "type": "boolean", - "description": "When disabled, executions will exclude logs and errors, and will be slightly faster.", + "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.", "default": true, "x-example": false - }, - "entrypoint": { - "type": "string", - "description": "Entrypoint File. This path is relative to the \"providerRootDirectory\".", - "default": "", - "x-example": "<ENTRYPOINT>" - }, - "commands": { - "type": "string", - "description": "Build Commands.", - "default": "", - "x-example": "<COMMANDS>" - }, - "scopes": { - "type": "array", - "description": "List of scopes allowed for API key auto-generated for every execution. Maximum of 100 scopes are allowed.", - "default": [], - "x-example": null, - "items": { - "type": "string", - "enum": [ - "sessions.write", - "users.read", - "users.write", - "teams.read", - "teams.write", - "databases.read", - "databases.write", - "collections.read", - "collections.write", - "tables.read", - "tables.write", - "attributes.read", - "attributes.write", - "columns.read", - "columns.write", - "indexes.read", - "indexes.write", - "documents.read", - "documents.write", - "rows.read", - "rows.write", - "files.read", - "files.write", - "buckets.read", - "buckets.write", - "functions.read", - "functions.write", - "sites.read", - "sites.write", - "log.read", - "log.write", - "execution.read", - "execution.write", - "locale.read", - "avatars.read", - "health.read", - "providers.read", - "providers.write", - "messages.read", - "messages.write", - "topics.read", - "topics.write", - "subscribers.read", - "subscribers.write", - "targets.read", - "targets.write", - "rules.read", - "rules.write", - "schedules.read", - "schedules.write", - "migrations.read", - "migrations.write", - "vcs.read", - "vcs.write", - "assistant.read", - "tokens.read", - "tokens.write", - "policies.write", - "policies.read", - "archives.read", - "archives.write", - "restorations.read", - "restorations.write", - "domains.read", - "domains.write", - "events.read" - ], - "x-enum-name": null, - "x-enum-keys": [] - } - }, - "installationId": { - "type": "string", - "description": "Appwrite Installation ID for VCS (Version Control System) deployment.", - "default": "", - "x-example": "<INSTALLATION_ID>" - }, - "providerRepositoryId": { - "type": "string", - "description": "Repository ID of the repo linked to the function.", - "default": "", - "x-example": "<PROVIDER_REPOSITORY_ID>" - }, - "providerBranch": { - "type": "string", - "description": "Production branch for the repo linked to the function.", - "default": "", - "x-example": "<PROVIDER_BRANCH>" - }, - "providerSilentMode": { - "type": "boolean", - "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.", - "default": false, - "x-example": false - }, - "providerRootDirectory": { - "type": "string", - "description": "Path to function code in the linked repo.", - "default": "", - "x-example": "<PROVIDER_ROOT_DIRECTORY>" - }, - "specification": { - "type": "string", - "description": "Runtime specification for the function and builds.", - "default": {}, - "x-example": null } }, "required": [ - "functionId", - "name", - "runtime" + "databaseId", + "name" ] } } ] } }, - "\/functions\/runtimes": { + "\/documentsdb\/transactions": { "get": { - "summary": "List runtimes", - "operationId": "functionsListRuntimes", + "summary": "List transactions", + "operationId": "documentsDBListTransactions", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "functions" + "documentsDB" ], - "description": "Get a list of all runtimes that are currently active on your instance.", + "description": false, "responses": { "200": { - "description": "Runtimes List", + "description": "Transaction List", "schema": { - "$ref": "#\/definitions\/runtimeList" + "$ref": "#\/definitions\/transactionList" } } }, "deprecated": false, "x-appwrite": { - "method": "listRuntimes", - "group": "runtimes", - "weight": 563, + "method": "listTransactions", + "group": "transactions", + "weight": 425, "cookies": false, "type": "", - "demo": "functions\/list-runtimes.md", + "demo": "documentsdb\/list-transactions.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "documents.read", "platforms": [ "console", - "server" + "server", + "client" ], "packaging": false, "public": true, @@ -14759,46 +14520,63 @@ "security": [ { "Project": [], - "Key": [] + "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, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" } ] - } - }, - "\/functions\/specifications": { - "get": { - "summary": "List specifications", - "operationId": "functionsListSpecifications", - "consumes": [], + }, + "post": { + "summary": "Create transaction", + "operationId": "documentsDBCreateTransaction", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "functions" + "documentsDB" ], - "description": "List allowed function specifications for this instance.", + "description": false, "responses": { - "200": { - "description": "Specifications List", + "201": { + "description": "Transaction", "schema": { - "$ref": "#\/definitions\/specificationList" + "$ref": "#\/definitions\/transaction" } } }, "deprecated": false, "x-appwrite": { - "method": "listSpecifications", - "group": "runtimes", - "weight": 564, + "method": "createTransaction", + "group": "transactions", + "weight": 421, "cookies": false, "type": "", - "demo": "functions\/list-specifications.md", + "demo": "documentsdb\/create-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", + "scope": "documents.write", "platforms": [ + "console", "server", - "console" + "client" ], "packaging": false, "public": true, @@ -14810,46 +14588,67 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "ttl": { + "type": "integer", + "description": "Seconds before the transaction expires.", + "default": 300, + "x-example": 60, + "format": "int32" + } + } + } } ] } }, - "\/functions\/{functionId}": { + "\/documentsdb\/transactions\/{transactionId}": { "get": { - "summary": "Get function", - "operationId": "functionsGet", + "summary": "Get transaction", + "operationId": "documentsDBGetTransaction", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "functions" + "documentsDB" ], - "description": "Get a function by its unique ID.", + "description": false, "responses": { "200": { - "description": "Function", + "description": "Transaction", "schema": { - "$ref": "#\/definitions\/function" + "$ref": "#\/definitions\/transaction" } } }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": "functions", - "weight": 559, + "method": "getTransaction", + "group": "transactions", + "weight": 422, "cookies": false, "type": "", - "demo": "functions\/get.md", + "demo": "documentsdb\/get-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", + "scope": "documents.read", "platforms": [ "console", - "server" + "server", + "client" ], "packaging": false, "public": true, @@ -14861,23 +14660,25 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "type": "string", - "x-example": "<FUNCTION_ID>", + "x-example": "<TRANSACTION_ID>", "in": "path" } ] }, - "put": { - "summary": "Update function", - "operationId": "functionsUpdate", + "patch": { + "summary": "Update transaction", + "operationId": "documentsDBUpdateTransaction", "consumes": [ "application\/json" ], @@ -14885,32 +14686,33 @@ "application\/json" ], "tags": [ - "functions" + "documentsDB" ], - "description": "Update function by its unique ID.", + "description": false, "responses": { "200": { - "description": "Function", + "description": "Transaction", "schema": { - "$ref": "#\/definitions\/function" + "$ref": "#\/definitions\/transaction" } } }, "deprecated": false, "x-appwrite": { - "method": "update", - "group": "functions", - "weight": 560, + "method": "updateTransaction", + "group": "transactions", + "weight": 423, "cookies": false, "type": "", - "demo": "functions\/update.md", + "demo": "documentsdb\/update-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", + "scope": "documents.write", "platforms": [ "console", - "server" + "server", + "client" ], "packaging": false, "public": true, @@ -14922,16 +14724,18 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "type": "string", - "x-example": "<FUNCTION_ID>", + "x-example": "<TRANSACTION_ID>", "in": "path" }, { @@ -14940,301 +14744,34 @@ "schema": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "Function name. Max length: 128 chars.", - "default": null, - "x-example": "<NAME>" + "commit": { + "type": "boolean", + "description": "Commit transaction?", + "default": false, + "x-example": false }, - "runtime": { - "type": "string", - "description": "Execution runtime.", - "default": "", - "x-example": "node-14.5", - "enum": [ - "node-14.5", - "node-16.0", - "node-18.0", - "node-19.0", - "node-20.0", - "node-21.0", - "node-22", - "node-23", - "node-24", - "node-25", - "php-8.0", - "php-8.1", - "php-8.2", - "php-8.3", - "php-8.4", - "ruby-3.0", - "ruby-3.1", - "ruby-3.2", - "ruby-3.3", - "ruby-3.4", - "ruby-4.0", - "python-3.8", - "python-3.9", - "python-3.10", - "python-3.11", - "python-3.12", - "python-3.13", - "python-3.14", - "python-ml-3.11", - "python-ml-3.12", - "python-ml-3.13", - "deno-1.21", - "deno-1.24", - "deno-1.35", - "deno-1.40", - "deno-1.46", - "deno-2.0", - "deno-2.5", - "deno-2.6", - "dart-2.15", - "dart-2.16", - "dart-2.17", - "dart-2.18", - "dart-2.19", - "dart-3.0", - "dart-3.1", - "dart-3.3", - "dart-3.5", - "dart-3.8", - "dart-3.9", - "dart-3.10", - "dotnet-6.0", - "dotnet-7.0", - "dotnet-8.0", - "dotnet-10", - "java-8.0", - "java-11.0", - "java-17.0", - "java-18.0", - "java-21.0", - "java-22", - "java-25", - "swift-5.5", - "swift-5.8", - "swift-5.9", - "swift-5.10", - "swift-6.2", - "kotlin-1.6", - "kotlin-1.8", - "kotlin-1.9", - "kotlin-2.0", - "kotlin-2.3", - "cpp-17", - "cpp-20", - "bun-1.0", - "bun-1.1", - "bun-1.2", - "bun-1.3", - "go-1.23", - "go-1.24", - "go-1.25", - "go-1.26", - "static-1", - "flutter-3.24", - "flutter-3.27", - "flutter-3.29", - "flutter-3.32", - "flutter-3.35", - "flutter-3.38" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "execute": { - "type": "array", - "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.", - "default": [], - "x-example": "[\"any\"]", - "items": { - "type": "string" - } - }, - "events": { - "type": "array", - "description": "Events list. Maximum of 100 events are allowed.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "schedule": { - "type": "string", - "description": "Schedule CRON syntax.", - "default": "", - "x-example": null - }, - "timeout": { - "type": "integer", - "description": "Maximum execution time in seconds.", - "default": 15, - "x-example": 1, - "format": "int32" - }, - "enabled": { - "type": "boolean", - "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.", - "default": true, - "x-example": false - }, - "logging": { - "type": "boolean", - "description": "When disabled, executions will exclude logs and errors, and will be slightly faster.", - "default": true, - "x-example": false - }, - "entrypoint": { - "type": "string", - "description": "Entrypoint File. This path is relative to the \"providerRootDirectory\".", - "default": "", - "x-example": "<ENTRYPOINT>" - }, - "commands": { - "type": "string", - "description": "Build Commands.", - "default": "", - "x-example": "<COMMANDS>" - }, - "scopes": { - "type": "array", - "description": "List of scopes allowed for API Key auto-generated for every execution. Maximum of 100 scopes are allowed.", - "default": [], - "x-example": null, - "items": { - "type": "string", - "enum": [ - "sessions.write", - "users.read", - "users.write", - "teams.read", - "teams.write", - "databases.read", - "databases.write", - "collections.read", - "collections.write", - "tables.read", - "tables.write", - "attributes.read", - "attributes.write", - "columns.read", - "columns.write", - "indexes.read", - "indexes.write", - "documents.read", - "documents.write", - "rows.read", - "rows.write", - "files.read", - "files.write", - "buckets.read", - "buckets.write", - "functions.read", - "functions.write", - "sites.read", - "sites.write", - "log.read", - "log.write", - "execution.read", - "execution.write", - "locale.read", - "avatars.read", - "health.read", - "providers.read", - "providers.write", - "messages.read", - "messages.write", - "topics.read", - "topics.write", - "subscribers.read", - "subscribers.write", - "targets.read", - "targets.write", - "rules.read", - "rules.write", - "schedules.read", - "schedules.write", - "migrations.read", - "migrations.write", - "vcs.read", - "vcs.write", - "assistant.read", - "tokens.read", - "tokens.write", - "policies.write", - "policies.read", - "archives.read", - "archives.write", - "restorations.read", - "restorations.write", - "domains.read", - "domains.write", - "events.read" - ], - "x-enum-name": null, - "x-enum-keys": [] - } - }, - "installationId": { - "type": "string", - "description": "Appwrite Installation ID for VCS (Version Controle System) deployment.", - "default": "", - "x-example": "<INSTALLATION_ID>" - }, - "providerRepositoryId": { - "type": "string", - "description": "Repository ID of the repo linked to the function", - "default": null, - "x-example": "<PROVIDER_REPOSITORY_ID>", - "x-nullable": true - }, - "providerBranch": { - "type": "string", - "description": "Production branch for the repo linked to the function", - "default": "", - "x-example": "<PROVIDER_BRANCH>" - }, - "providerSilentMode": { + "rollback": { "type": "boolean", - "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.", + "description": "Rollback transaction?", "default": false, "x-example": false - }, - "providerRootDirectory": { - "type": "string", - "description": "Path to function code in the linked repo.", - "default": "", - "x-example": "<PROVIDER_ROOT_DIRECTORY>" - }, - "specification": { - "type": "string", - "description": "Runtime specification for the function and builds.", - "default": {}, - "x-example": null } - }, - "required": [ - "name" - ] + } } } ] }, "delete": { - "summary": "Delete function", - "operationId": "functionsDelete", + "summary": "Delete transaction", + "operationId": "documentsDBDeleteTransaction", "consumes": [ "application\/json" ], "produces": [], "tags": [ - "functions" + "documentsDB" ], - "description": "Delete a function by its unique ID.", + "description": false, "responses": { "204": { "description": "No content" @@ -15242,19 +14779,20 @@ }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": "functions", - "weight": 562, + "method": "deleteTransaction", + "group": "transactions", + "weight": 424, "cookies": false, "type": "", - "demo": "functions\/delete.md", + "demo": "documentsdb\/delete-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", + "scope": "documents.write", "platforms": [ "console", - "server" + "server", + "client" ], "packaging": false, "public": true, @@ -15266,25 +14804,27 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "type": "string", - "x-example": "<FUNCTION_ID>", + "x-example": "<TRANSACTION_ID>", "in": "path" } ] } }, - "\/functions\/{functionId}\/deployment": { - "patch": { - "summary": "Update function's deployment", - "operationId": "functionsUpdateFunctionDeployment", + "\/documentsdb\/transactions\/{transactionId}\/operations": { + "post": { + "summary": "Create operations", + "operationId": "documentsDBCreateOperations", "consumes": [ "application\/json" ], @@ -15292,32 +14832,32 @@ "application\/json" ], "tags": [ - "functions" + "documentsDB" ], - "description": "Update the function active deployment. Use this endpoint to switch the code deployment that should be used when visitor opens your function.", + "description": false, "responses": { - "200": { - "description": "Function", + "201": { + "description": "Transaction", "schema": { - "$ref": "#\/definitions\/function" + "$ref": "#\/definitions\/transaction" } } }, "deprecated": false, "x-appwrite": { - "method": "updateFunctionDeployment", - "group": "functions", - "weight": 567, + "method": "createOperations", + "group": "transactions", + "weight": 426, "cookies": false, "type": "", - "demo": "functions\/update-function-deployment.md", + "demo": "documentsdb\/create-operations.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", + "scope": "documents.write", "platforms": [ - "console", - "server" + "server", + "client" ], "packaging": false, "public": true, @@ -15329,16 +14869,18 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "type": "string", - "x-example": "<FUNCTION_ID>", + "x-example": "<TRANSACTION_ID>", "in": "path" }, { @@ -15347,59 +14889,60 @@ "schema": { "type": "object", "properties": { - "deploymentId": { - "type": "string", - "description": "Deployment ID.", - "default": null, - "x-example": "<DEPLOYMENT_ID>" + "operations": { + "type": "array", + "description": "Array of staged operations.", + "default": [], + "x-example": "[\n\t {\n\t \"action\": \"create\",\n\t \"databaseId\": \"<DATABASE_ID>\",\n\t \"collectionId\": \"<COLLECTION_ID>\",\n\t \"documentId\": \"<DOCUMENT_ID>\",\n\t \"data\": {\n\t \"name\": \"Walter O'Brien\"\n\t }\n\t }\n\t]", + "items": { + "type": "object" + } } - }, - "required": [ - "deploymentId" - ] + } } } ] } }, - "\/functions\/{functionId}\/deployments": { + "\/documentsdb\/{databaseId}": { "get": { - "summary": "List deployments", - "operationId": "functionsListDeployments", + "summary": "Get database", + "operationId": "documentsDBGet", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "functions" + "documentsDB" ], - "description": "Get a list of all the function's code deployments. You can use the query params to filter your results.", + "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", "responses": { "200": { - "description": "Deployments List", + "description": "Database", "schema": { - "$ref": "#\/definitions\/deploymentList" + "$ref": "#\/definitions\/database" } } }, "deprecated": false, "x-appwrite": { - "method": "listDeployments", - "group": "deployments", - "weight": 568, + "method": "get", + "group": "documentsdb", + "weight": 392, "cookies": false, "type": "", - "demo": "functions\/list-deployments.md", + "demo": "documentsdb\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", + "scope": "databases.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/get.md", "auth": { "Project": [], "Key": [] @@ -15413,84 +14956,55 @@ ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<FUNCTION_ID>", + "x-example": "<DATABASE_ID>", "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, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "type": "string", - "x-example": "<SEARCH>", - "default": "", - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" } ] }, - "post": { - "summary": "Create deployment", - "operationId": "functionsCreateDeployment", + "put": { + "summary": "Update database", + "operationId": "documentsDBUpdate", "consumes": [ - "multipart\/form-data" + "application\/json" ], "produces": [ "application\/json" ], "tags": [ - "functions" + "documentsDB" ], - "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.", + "description": "Update a database by its unique ID.", "responses": { - "202": { - "description": "Deployment", + "200": { + "description": "Database", "schema": { - "$ref": "#\/definitions\/deployment" + "$ref": "#\/definitions\/database" } } }, "deprecated": false, "x-appwrite": { - "method": "createDeployment", - "group": "deployments", - "weight": 565, + "method": "update", + "group": "documentsdb", + "weight": 393, "cookies": false, - "type": "upload", - "demo": "functions\/create-deployment.md", + "type": "", + "demo": "documentsdb\/update.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", + "scope": "databases.write", "platforms": [ "console", "server" ], - "packaging": true, + "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/update.md", "auth": { "Project": [], "Key": [] @@ -15504,87 +15018,74 @@ ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<FUNCTION_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "entrypoint", - "description": "Entrypoint File.", - "required": false, - "type": "string", - "x-example": "<ENTRYPOINT>", - "in": "formData" - }, - { - "name": "commands", - "description": "Build Commands.", - "required": false, - "type": "string", - "x-example": "<COMMANDS>", - "in": "formData" - }, - { - "name": "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.", - "required": true, - "type": "file", - "in": "formData" - }, - { - "name": "activate", - "description": "Automatically activate the deployment when it is finished building.", - "required": true, - "type": "boolean", - "x-example": false, - "in": "formData" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Database name. Max length: 128 chars.", + "default": null, + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "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.", + "default": true, + "x-example": false + } + }, + "required": [ + "name" + ] + } } ] - } - }, - "\/functions\/{functionId}\/deployments\/duplicate": { - "post": { - "summary": "Create duplicate deployment", - "operationId": "functionsCreateDuplicateDeployment", + }, + "delete": { + "summary": "Delete database", + "operationId": "documentsDBDelete", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ - "functions" + "documentsDB" ], - "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.", + "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", "responses": { - "202": { - "description": "Deployment", - "schema": { - "$ref": "#\/definitions\/deployment" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "createDuplicateDeployment", - "group": "deployments", - "weight": 573, + "method": "delete", + "group": "documentsdb", + "weight": 394, "cookies": false, "type": "", - "demo": "functions\/create-duplicate-deployment.md", + "demo": "documentsdb\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/delete.md", "auth": { "Project": [], "Key": [] @@ -15598,80 +15099,55 @@ ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<FUNCTION_ID>", + "x-example": "<DATABASE_ID>", "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "deploymentId": { - "type": "string", - "description": "Deployment ID.", - "default": null, - "x-example": "<DEPLOYMENT_ID>" - }, - "buildId": { - "type": "string", - "description": "Build unique ID.", - "default": "", - "x-example": "<BUILD_ID>" - } - }, - "required": [ - "deploymentId" - ] - } } ] } }, - "\/functions\/{functionId}\/deployments\/template": { - "post": { - "summary": "Create template deployment", - "operationId": "functionsCreateTemplateDeployment", - "consumes": [ - "application\/json" - ], + "\/documentsdb\/{databaseId}\/collections": { + "get": { + "summary": "List collections", + "operationId": "documentsDBListCollections", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "functions" + "documentsDB" ], - "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.", + "description": "Get a list of all collections that belong to the provided databaseId. You can use the search parameter to filter your results.", "responses": { - "202": { - "description": "Deployment", + "200": { + "description": "Collections List", "schema": { - "$ref": "#\/definitions\/deployment" + "$ref": "#\/definitions\/collectionList" } } }, "deprecated": false, "x-appwrite": { - "method": "createTemplateDeployment", - "group": "deployments", - "weight": 570, + "method": "listCollections", + "group": "collections", + "weight": 402, "cookies": false, "type": "", - "demo": "functions\/create-template-deployment.md", + "demo": "documentsdb\/list-collections.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", + "scope": "collections.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/list-collections.md", "auth": { "Project": [], "Key": [] @@ -15685,79 +15161,48 @@ ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<FUNCTION_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "repository": { - "type": "string", - "description": "Repository name of the template.", - "default": null, - "x-example": "<REPOSITORY>" - }, - "owner": { - "type": "string", - "description": "The name of the owner of the template.", - "default": null, - "x-example": "<OWNER>" - }, - "rootDirectory": { - "type": "string", - "description": "Path to function code in the template repo.", - "default": null, - "x-example": "<ROOT_DIRECTORY>" - }, - "type": { - "type": "string", - "description": "Type for the reference provided. Can be commit, branch, or tag", - "default": null, - "x-example": "commit", - "enum": [ - "commit", - "branch", - "tag" - ], - "x-enum-name": "TemplateReferenceType", - "x-enum-keys": [] - }, - "reference": { - "type": "string", - "description": "Reference value, can be a commit hash, branch name, or release tag", - "default": null, - "x-example": "<REFERENCE>" - }, - "activate": { - "type": "boolean", - "description": "Automatically activate the deployment when it is finished building.", - "default": false, - "x-example": false - } - }, - "required": [ - "repository", - "owner", - "rootDirectory", - "type", - "reference" - ] - } + "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, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "type": "string", + "x-example": "<SEARCH>", + "default": "", + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" } ] - } - }, - "\/functions\/{functionId}\/deployments\/vcs": { + }, "post": { - "summary": "Create VCS deployment", - "operationId": "functionsCreateVcsDeployment", + "summary": "Create collection", + "operationId": "documentsDBCreateCollection", "consumes": [ "application\/json" ], @@ -15765,35 +15210,36 @@ "application\/json" ], "tags": [ - "functions" + "documentsDB" ], - "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.", + "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": { - "202": { - "description": "Deployment", + "201": { + "description": "Collection", "schema": { - "$ref": "#\/definitions\/deployment" + "$ref": "#\/definitions\/collection" } } }, "deprecated": false, "x-appwrite": { - "method": "createVcsDeployment", - "group": "deployments", - "weight": 571, + "method": "createCollection", + "group": "collections", + "weight": 398, "cookies": false, "type": "", - "demo": "functions\/create-vcs-deployment.md", + "demo": "documentsdb\/create-collection.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", + "scope": "collections.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/create-collection.md", "auth": { "Project": [], "Key": [] @@ -15807,11 +15253,11 @@ ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<FUNCTION_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { @@ -15820,78 +15266,107 @@ "schema": { "type": "object", "properties": { - "type": { + "collectionId": { "type": "string", - "description": "Type of reference passed. Allowed values are: branch, commit", + "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.", "default": null, - "x-example": "branch", - "enum": [ - "branch", - "commit" - ], - "x-enum-name": "VCSReferenceType", - "x-enum-keys": [] + "x-example": "<COLLECTION_ID>" }, - "reference": { + "name": { "type": "string", - "description": "VCS reference to create deployment from. Depending on type this can be: branch name, commit hash", + "description": "Collection name. Max length: 128 chars.", "default": null, - "x-example": "<REFERENCE>" + "x-example": "<NAME>" }, - "activate": { + "permissions": { + "type": "array", + "description": "An array of permissions strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "default": null, + "x-example": "[\"read(\"any\")\"]", + "x-nullable": true, + "items": { + "type": "string" + } + }, + "documentSecurity": { "type": "boolean", - "description": "Automatically activate the deployment when it is finished building.", + "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).", "default": false, "x-example": false + }, + "enabled": { + "type": "boolean", + "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.", + "default": true, + "x-example": false + }, + "attributes": { + "type": "array", + "description": "Array of attribute definitions to create. Each attribute should contain: key (string), type (string: string, integer, float, boolean, datetime, relationship), size (integer, required for string type), required (boolean, optional), default (mixed, optional), array (boolean, optional), and type-specific options.", + "default": [], + "x-example": null, + "items": { + "type": "object" + } + }, + "indexes": { + "type": "array", + "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).", + "default": [], + "x-example": null, + "items": { + "type": "object" + } } }, "required": [ - "type", - "reference" + "collectionId", + "name" ] } } ] } }, - "\/functions\/{functionId}\/deployments\/{deploymentId}": { + "\/documentsdb\/{databaseId}\/collections\/{collectionId}": { "get": { - "summary": "Get deployment", - "operationId": "functionsGetDeployment", + "summary": "Get collection", + "operationId": "documentsDBGetCollection", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "functions" + "documentsDB" ], - "description": "Get a function deployment by its unique ID.", + "description": "Get a collection by its unique ID. This endpoint response returns a JSON object with the collection metadata.", "responses": { "200": { - "description": "Deployment", + "description": "Collection", "schema": { - "$ref": "#\/definitions\/deployment" + "$ref": "#\/definitions\/collection" } } }, "deprecated": false, "x-appwrite": { - "method": "getDeployment", - "group": "deployments", - "weight": 566, + "method": "getCollection", + "group": "collections", + "weight": 399, "cookies": false, "type": "", - "demo": "functions\/get-deployment.md", + "demo": "documentsdb\/get-collection.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", + "scope": "collections.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/get-collection.md", "auth": { "Project": [], "Key": [] @@ -15905,126 +15380,63 @@ ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<FUNCTION_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "deploymentId", - "description": "Deployment ID.", + "name": "collectionId", + "description": "Collection ID.", "required": true, "type": "string", - "x-example": "<DEPLOYMENT_ID>", + "x-example": "<COLLECTION_ID>", "in": "path" } ] }, - "delete": { - "summary": "Delete deployment", - "operationId": "functionsDeleteDeployment", + "put": { + "summary": "Update collection", + "operationId": "documentsDBUpdateCollection", "consumes": [ "application\/json" ], - "produces": [], - "tags": [ - "functions" - ], - "description": "Delete a code deployment by its unique ID.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "method": "deleteDeployment", - "group": "deployments", - "weight": 569, - "cookies": false, - "type": "", - "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": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function ID.", - "required": true, - "type": "string", - "x-example": "<FUNCTION_ID>", - "in": "path" - }, - { - "name": "deploymentId", - "description": "Deployment ID.", - "required": true, - "type": "string", - "x-example": "<DEPLOYMENT_ID>", - "in": "path" - } - ] - } - }, - "\/functions\/{functionId}\/deployments\/{deploymentId}\/download": { - "get": { - "summary": "Get deployment download", - "operationId": "functionsGetDeploymentDownload", - "consumes": [], "produces": [ - "*\/*" + "application\/json" ], "tags": [ - "functions" + "documentsDB" ], - "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.", + "description": "Update a collection by its unique ID.", "responses": { "200": { - "description": "File", + "description": "Collection", "schema": { - "type": "file" + "$ref": "#\/definitions\/collection" } } }, "deprecated": false, "x-appwrite": { - "method": "getDeploymentDownload", - "group": "deployments", - "weight": 572, + "method": "updateCollection", + "group": "collections", + "weight": 400, "cookies": false, - "type": "location", - "demo": "functions\/get-deployment-download.md", + "type": "", + "demo": "documentsdb\/update-collection.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", + "scope": "collections.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/update-collection.md", "auth": { "Project": [], "Key": [] @@ -16033,85 +15445,102 @@ "security": [ { "Project": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<FUNCTION_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "deploymentId", - "description": "Deployment ID.", + "name": "collectionId", + "description": "Collection ID.", "required": true, "type": "string", - "x-example": "<DEPLOYMENT_ID>", + "x-example": "<COLLECTION_ID>", "in": "path" }, { - "name": "type", - "description": "Deployment file to download. Can be: \"source\", \"output\".", - "required": false, - "type": "string", - "x-example": "source", - "enum": [ - "source", - "output" - ], - "x-enum-name": "DeploymentDownloadType", - "x-enum-keys": [], - "default": "source", - "in": "query" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Collection name. Max length: 128 chars.", + "default": null, + "x-example": "<NAME>" + }, + "permissions": { + "type": "array", + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "default": null, + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } + }, + "documentSecurity": { + "type": "boolean", + "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).", + "default": false, + "x-example": false + }, + "enabled": { + "type": "boolean", + "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.", + "default": true, + "x-example": false + } + }, + "required": [ + "name" + ] + } } ] - } - }, - "\/functions\/{functionId}\/deployments\/{deploymentId}\/status": { - "patch": { - "summary": "Update deployment status", - "operationId": "functionsUpdateDeploymentStatus", + }, + "delete": { + "summary": "Delete collection", + "operationId": "documentsDBDeleteCollection", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ - "functions" + "documentsDB" ], - "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.", + "description": "Delete a collection by its unique ID. Only users with write permissions have access to delete this resource.", "responses": { - "200": { - "description": "Deployment", - "schema": { - "$ref": "#\/definitions\/deployment" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateDeploymentStatus", - "group": "deployments", - "weight": 574, + "method": "deleteCollection", + "group": "collections", + "weight": 401, "cookies": false, "type": "", - "demo": "functions\/update-deployment-status.md", + "demo": "documentsdb\/delete-collection.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", + "scope": "collections.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/delete-collection.md", "auth": { "Project": [], "Key": [] @@ -16125,56 +15554,56 @@ ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<FUNCTION_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "deploymentId", - "description": "Deployment ID.", + "name": "collectionId", + "description": "Collection ID.", "required": true, "type": "string", - "x-example": "<DEPLOYMENT_ID>", + "x-example": "<COLLECTION_ID>", "in": "path" } ] } }, - "\/functions\/{functionId}\/executions": { + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents": { "get": { - "summary": "List executions", - "operationId": "functionsListExecutions", + "summary": "List documents", + "operationId": "documentsDBListDocuments", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "functions" + "documentsDB" ], - "description": "Get a list of all the current user function execution logs. You can use the query params to filter your results.", + "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": "Executions List", + "description": "Documents List", "schema": { - "$ref": "#\/definitions\/executionList" + "$ref": "#\/definitions\/documentList" } } }, "deprecated": false, "x-appwrite": { - "method": "listExecutions", - "group": "executions", - "weight": 577, + "method": "listDocuments", + "group": "documents", + "weight": 417, "cookies": false, "type": "", - "demo": "functions\/list-executions.md", + "demo": "documentsdb\/list-documents.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "execution.read", + "scope": "documents.read", "platforms": [ "console", "client", @@ -16182,6 +15611,7 @@ ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/list-documents.md", "auth": { "Project": [], "Session": [] @@ -16197,16 +15627,24 @@ ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<FUNCTION_ID>", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", "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", + "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, "type": "array", "collectionFormat": "multi", @@ -16216,6 +15654,14 @@ "default": [], "in": "query" }, + { + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", + "required": false, + "type": "string", + "x-example": "<TRANSACTION_ID>", + "in": "query" + }, { "name": "total", "description": "When set to false, the total count returned will be 0 and will not be calculated.", @@ -16224,42 +15670,52 @@ "x-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, + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0, + "in": "query" } ] }, "post": { - "summary": "Create execution", - "operationId": "functionsCreateExecution", + "summary": "Create document", + "operationId": "documentsDBCreateDocument", "consumes": [ "application\/json" ], "produces": [ - "multipart\/form-data" + "application\/json" ], "tags": [ - "functions" + "documentsDB" ], - "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.", + "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": "Execution", + "description": "Document", "schema": { - "$ref": "#\/definitions\/execution" + "$ref": "#\/definitions\/document" } } }, "deprecated": false, "x-appwrite": { - "method": "createExecution", - "group": "executions", - "weight": 575, + "method": "createDocument", + "group": "documents", + "weight": 409, "cookies": false, "type": "", - "demo": "functions\/create-execution.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "execution.write", + "demo": "documentsdb\/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", @@ -16267,6 +15723,68 @@ ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/create-document.md", + "methods": [ + { + "name": "createDocument", + "namespace": "documentsDB", + "desc": "Create document", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions" + ], + "required": [ + "databaseId", + "collectionId", + "documentId", + "data" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/document" + } + ], + "description": "Create a new Document. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "demo": "documentsdb\/create-document.md", + "public": true + }, + { + "name": "createDocuments", + "namespace": "documentsDB", + "desc": "Create documents", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documents" + ], + "required": [ + "databaseId", + "collectionId", + "documents" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/documentList" + } + ], + "description": "Create new Documents. Before using this route, you should create a new collection resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/databases#documentsDBCreateCollection) API or directly from your database console.", + "demo": "documentsdb\/create-documents.md", + "public": true + } + ], "auth": { "Project": [], "Session": [] @@ -16282,11 +15800,19 @@ ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<FUNCTION_ID>", + "x-example": "<DATABASE_ID>", + "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, + "type": "string", + "x-example": "<COLLECTION_ID>", "in": "path" }, { @@ -16295,165 +15821,215 @@ "schema": { "type": "object", "properties": { - "body": { + "documentId": { "type": "string", - "description": "HTTP body of execution. Default value is empty string.", + "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", "default": "", - "x-example": "<BODY>" - }, - "async": { - "type": "boolean", - "description": "Execute code in the background. Default value is false.", - "default": false, - "x-example": false + "x-example": "<DOCUMENT_ID>" }, - "path": { - "type": "string", - "description": "HTTP path of execution. Path can include query params. Default value is \/", - "default": "\/", - "x-example": "<PATH>" + "data": { + "type": "object", + "description": "Document data as JSON object.", + "default": [], + "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":30,\"isAdmin\":false}" }, - "method": { - "type": "string", - "description": "HTTP method of execution. Default value is POST.", - "default": "POST", - "x-example": "GET", - "enum": [ - "GET", - "POST", - "PUT", - "PATCH", - "DELETE", - "OPTIONS", - "HEAD" - ], - "x-enum-name": "ExecutionMethod", - "x-enum-keys": [] + "permissions": { + "type": "array", + "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).", + "default": null, + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } }, - "headers": { - "type": "object", - "description": "HTTP headers of execution. Defaults to empty.", + "documents": { + "type": "array", + "description": "Array of documents data as JSON objects.", "default": [], - "x-example": "{}" + "x-example": null, + "items": { + "type": "object" + } }, - "scheduledAt": { + "transactionId": { "type": "string", - "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.", + "description": "Transaction ID for staging the operation.", "default": null, - "x-example": "<SCHEDULED_AT>", - "x-nullable": true + "x-example": "<TRANSACTION_ID>" } } } } ] - } - }, - "\/functions\/{functionId}\/executions\/{executionId}": { - "get": { - "summary": "Get execution", - "operationId": "functionsGetExecution", - "consumes": [], + }, + "put": { + "summary": "Upsert documents", + "operationId": "documentsDBUpsertDocuments", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "functions" + "documentsDB" ], - "description": "Get a function execution log by its unique ID.", + "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": { - "200": { - "description": "Execution", + "201": { + "description": "Documents List", "schema": { - "$ref": "#\/definitions\/execution" + "$ref": "#\/definitions\/documentList" } } }, "deprecated": false, "x-appwrite": { - "method": "getExecution", - "group": "executions", - "weight": 576, + "method": "upsertDocuments", + "group": "documents", + "weight": 414, "cookies": false, "type": "", - "demo": "functions\/get-execution.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "execution.read", + "demo": "documentsdb\/upsert-documents.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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/upsert-documents.md", + "methods": [ + { + "name": "upsertDocuments", + "namespace": "documentsDB", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documents", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documents" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/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": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<FUNCTION_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "executionId", - "description": "Execution ID.", + "name": "collectionId", + "description": "Collection ID.", "required": true, "type": "string", - "x-example": "<EXECUTION_ID>", + "x-example": "<COLLECTION_ID>", "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "documents": { + "type": "array", + "description": "Array of document data as JSON objects. May contain partial documents.", + "default": null, + "x-example": null, + "items": { + "type": "object" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "default": null, + "x-example": "<TRANSACTION_ID>" + } + }, + "required": [ + "documents" + ] + } } ] }, - "delete": { - "summary": "Delete execution", - "operationId": "functionsDeleteExecution", + "patch": { + "summary": "Update documents", + "operationId": "documentsDBUpdateDocuments", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ - "functions" + "documentsDB" ], - "description": "Delete a function execution by its unique ID.", + "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": { - "204": { - "description": "No content" + "200": { + "description": "Documents List", + "schema": { + "$ref": "#\/definitions\/documentList" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteExecution", - "group": "executions", - "weight": 578, + "method": "updateDocuments", + "group": "documents", + "weight": 412, "cookies": false, "type": "", - "demo": "functions\/delete-execution.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "execution.write", + "demo": "documentsdb\/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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/update-documents.md", "auth": { "Project": [], "Key": [] @@ -16467,87 +16043,56 @@ ], "parameters": [ { - "name": "functionId", - "description": "Function ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<FUNCTION_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "executionId", - "description": "Execution ID.", + "name": "collectionId", + "description": "Collection ID.", "required": true, "type": "string", - "x-example": "<EXECUTION_ID>", + "x-example": "<COLLECTION_ID>", "in": "path" - } - ] - } - }, - "\/functions\/{functionId}\/variables": { - "get": { - "summary": "List variables", - "operationId": "functionsListVariables", - "consumes": [], - "produces": [ - "application\/json" - ], - "tags": [ - "functions" - ], - "description": "Get a list of all variables of a specific function.", - "responses": { - "200": { - "description": "Variables List", + }, + { + "name": "payload", + "in": "body", "schema": { - "$ref": "#\/definitions\/variableList" + "type": "object", + "properties": { + "data": { + "type": "object", + "description": "Document data as JSON object. Include only attribute and value pairs to be updated.", + "default": [], + "x-example": "{}" + }, + "queries": { + "type": "array", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "default": null, + "x-example": "<TRANSACTION_ID>" + } + } } } - }, - "deprecated": false, - "x-appwrite": { - "method": "listVariables", - "group": "variables", - "weight": 583, - "cookies": false, - "type": "", - "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": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "functionId", - "description": "Function unique ID.", - "required": true, - "type": "string", - "x-example": "<FUNCTION_ID>", - "in": "path" - } ] }, - "post": { - "summary": "Create variable", - "operationId": "functionsCreateVariable", + "delete": { + "summary": "Delete documents", + "operationId": "documentsDBDeleteDocuments", "consumes": [ "application\/json" ], @@ -16555,35 +16100,36 @@ "application\/json" ], "tags": [ - "functions" + "documentsDB" ], - "description": "Create a new function environment variable. These variables can be accessed in the function at runtime as environment variables.", + "description": "Bulk delete documents using queries, if no queries are passed then all documents are deleted.", "responses": { - "201": { - "description": "Variable", + "200": { + "description": "Documents List", "schema": { - "$ref": "#\/definitions\/variable" + "$ref": "#\/definitions\/documentList" } } }, "deprecated": false, "x-appwrite": { - "method": "createVariable", - "group": "variables", - "weight": 581, + "method": "deleteDocuments", + "group": "documents", + "weight": 416, "cookies": false, "type": "", - "demo": "functions\/create-variable.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", + "demo": "documentsdb\/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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/delete-documents.md", "auth": { "Project": [], "Key": [] @@ -16597,11 +16143,19 @@ ], "parameters": [ { - "name": "functionId", - "description": "Function unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<FUNCTION_ID>", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", "in": "path" }, { @@ -16610,167 +16164,237 @@ "schema": { "type": "object", "properties": { - "key": { - "type": "string", - "description": "Variable key. Max length: 255 chars.", - "default": null, - "x-example": "<KEY>" + "queries": { + "type": "array", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } }, - "value": { + "transactionId": { "type": "string", - "description": "Variable value. Max length: 8192 chars.", + "description": "Transaction ID for staging the operation.", "default": null, - "x-example": "<VALUE>" - }, - "secret": { - "type": "boolean", - "description": "Secret variables can be updated or deleted, but only functions can read them during build and runtime.", - "default": true, - "x-example": false + "x-example": "<TRANSACTION_ID>" } - }, - "required": [ - "key", - "value" - ] + } } } ] } }, - "\/functions\/{functionId}\/variables\/{variableId}": { + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { "get": { - "summary": "Get variable", - "operationId": "functionsGetVariable", + "summary": "Get document", + "operationId": "documentsDBGetDocument", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "functions" + "documentsDB" ], - "description": "Get a variable by its unique ID.", + "description": "Get a document by its unique ID. This endpoint response returns a JSON object with the document data.", "responses": { "200": { - "description": "Variable", + "description": "Document", "schema": { - "$ref": "#\/definitions\/variable" + "$ref": "#\/definitions\/document" } } }, "deprecated": false, "x-appwrite": { - "method": "getVariable", - "group": "variables", - "weight": 582, + "method": "getDocument", + "group": "documents", + "weight": 410, "cookies": false, "type": "", - "demo": "functions\/get-variable.md", + "demo": "documentsdb\/get-document.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "functions.read", + "scope": "documents.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/get-document.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<FUNCTION_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "variableId", - "description": "Variable unique ID.", + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", "required": true, "type": "string", - "x-example": "<VARIABLE_ID>", + "x-example": "<COLLECTION_ID>", "in": "path" - } - ] - }, - "put": { - "summary": "Update variable", - "operationId": "functionsUpdateVariable", - "consumes": [ - "application\/json" - ], - "produces": [ - "application\/json" - ], - "tags": [ - "functions" - ], - "description": "Update variable by its unique ID.", - "responses": { - "200": { - "description": "Variable", - "schema": { - "$ref": "#\/definitions\/variable" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "type": "string", + "x-example": "<DOCUMENT_ID>", + "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, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", + "required": false, + "type": "string", + "x-example": "<TRANSACTION_ID>", + "in": "query" + } + ] + }, + "put": { + "summary": "Upsert a document", + "operationId": "documentsDBUpsertDocument", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "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", + "schema": { + "$ref": "#\/definitions\/document" } } }, "deprecated": false, "x-appwrite": { - "method": "updateVariable", - "group": "variables", - "weight": 584, + "method": "upsertDocument", + "group": "documents", + "weight": 413, "cookies": false, "type": "", - "demo": "functions\/update-variable.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", + "demo": "documentsdb\/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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/upsert-document.md", + "methods": [ + { + "name": "upsertDocument", + "namespace": "documentsDB", + "desc": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documentId" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/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": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<FUNCTION_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "variableId", - "description": "Variable unique ID.", + "name": "collectionId", + "description": "Collection ID.", "required": true, "type": "string", - "x-example": "<VARIABLE_ID>", + "x-example": "<COLLECTION_ID>", + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "type": "string", + "x-example": "<DOCUMENT_ID>", "in": "path" }, { @@ -16779,180 +16403,239 @@ "schema": { "type": "object", "properties": { - "key": { - "type": "string", - "description": "Variable key. Max length: 255 chars.", - "default": null, - "x-example": "<KEY>" + "data": { + "type": "object", + "description": "Document data as JSON object. Include all required fields of the document to be created or updated.", + "default": [], + "x-example": "{}" }, - "value": { - "type": "string", - "description": "Variable value. Max length: 8192 chars.", + "permissions": { + "type": "array", + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", "default": null, - "x-example": "<VALUE>", - "x-nullable": true + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } }, - "secret": { - "type": "boolean", - "description": "Secret variables can be updated or deleted, but only functions can read them during build and runtime.", + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", "default": null, - "x-example": false, - "x-nullable": true + "x-example": "<TRANSACTION_ID>" } - }, - "required": [ - "key" - ] + } } } ] }, - "delete": { - "summary": "Delete variable", - "operationId": "functionsDeleteVariable", + "patch": { + "summary": "Update document", + "operationId": "documentsDBUpdateDocument", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ - "functions" + "documentsDB" ], - "description": "Delete a variable by its unique ID.", + "description": "Update a document by its unique ID. Using the patch method you can pass only specific fields that will get updated.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Document", + "schema": { + "$ref": "#\/definitions\/document" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteVariable", - "group": "variables", - "weight": 585, + "method": "updateDocument", + "group": "documents", + "weight": 411, "cookies": false, "type": "", - "demo": "functions\/delete-variable.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "functions.write", + "demo": "documentsdb\/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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/update-document.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "functionId", - "description": "Function unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<FUNCTION_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "variableId", - "description": "Variable unique ID.", + "name": "collectionId", + "description": "Collection ID.", "required": true, "type": "string", - "x-example": "<VARIABLE_ID>", + "x-example": "<COLLECTION_ID>", + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "type": "string", + "x-example": "<DOCUMENT_ID>", "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "data": { + "type": "object", + "description": "Document data as JSON object. Include only fields and value pairs to be updated.", + "default": [], + "x-example": "{}" + }, + "permissions": { + "type": "array", + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "default": null, + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "default": null, + "x-example": "<TRANSACTION_ID>" + } + } + } } ] - } - }, - "\/graphql": { - "post": { - "summary": "GraphQL endpoint", - "operationId": "graphqlQuery", + }, + "delete": { + "summary": "Delete document", + "operationId": "documentsDBDeleteDocument", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ - "graphql" + "documentsDB" ], - "description": "Execute a GraphQL mutation.", + "description": "Delete a document by its unique ID.", "responses": { - "200": { - "description": "Any", - "schema": { - "$ref": "#\/definitions\/any" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "query", - "group": "graphql", - "weight": 176, + "method": "deleteDocument", + "group": "documents", + "weight": 415, "cookies": false, - "type": "graphql", - "demo": "graphql\/query.md", + "type": "", + "demo": "documentsdb\/delete-document.md", "rate-limit": 60, "rate-time": 60, - "rate-key": "url:{url},ip:{ip}", - "scope": "graphql", + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", "platforms": [ "console", - "server", - "client" + "client", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/graphql\/post.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/delete-document.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [], "Session": [], + "Key": [], "JWT": [] } ], "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "type": "string", + "x-example": "<DOCUMENT_ID>", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "query": { - "type": "object", - "description": "The query or queries to execute.", - "default": {}, - "x-example": "{}" + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "default": null, + "x-example": "<TRANSACTION_ID>" } - }, - "required": [ - "query" - ] + } } } ] } }, - "\/graphql\/mutation": { - "post": { - "summary": "GraphQL endpoint", - "operationId": "graphqlMutation", + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/decrement": { + "patch": { + "summary": "Decrement document attribute", + "operationId": "documentsDBDecrementDocumentAttribute", "consumes": [ "application\/json" ], @@ -16960,267 +16643,272 @@ "application\/json" ], "tags": [ - "graphql" + "documentsDB" ], - "description": "Execute a GraphQL mutation.", + "description": "Decrement a specific column of a row by a given value.", "responses": { "200": { - "description": "Any", + "description": "Document", "schema": { - "$ref": "#\/definitions\/any" + "$ref": "#\/definitions\/document" } } }, "deprecated": false, "x-appwrite": { - "method": "mutation", - "group": "graphql", - "weight": 175, + "method": "decrementDocumentAttribute", + "group": "documents", + "weight": 420, "cookies": false, - "type": "graphql", - "demo": "graphql\/mutation.md", - "rate-limit": 60, + "type": "", + "demo": "documentsdb\/decrement-document-attribute.md", + "rate-limit": 120, "rate-time": 60, - "rate-key": "url:{url},ip:{ip}", - "scope": "graphql", + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", "platforms": [ - "console", + "client", "server", - "client" + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/graphql\/post.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/decrement-document-attribute.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [], "Session": [], - "JWT": [] + "JWT": [], + "Key": [] } ], "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "type": "string", + "x-example": "<DOCUMENT_ID>", + "in": "path" + }, + { + "name": "attribute", + "description": "Attribute key.", + "required": true, + "type": "string", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "query": { - "type": "object", - "description": "The query or queries to execute.", - "default": {}, - "x-example": "{}" + "value": { + "type": "number", + "description": "Value to decrement the attribute by. The value must be a number.", + "default": 1, + "x-example": null, + "format": "float" + }, + "min": { + "type": "number", + "description": "Minimum value for the attribute. If the current value is lesser than this value, an exception will be thrown.", + "default": null, + "x-example": null, + "format": "float" + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "default": null, + "x-example": "<TRANSACTION_ID>" } - }, - "required": [ - "query" - ] + } } } ] } }, - "\/health": { - "get": { - "summary": "Get HTTP", - "operationId": "healthGet", - "consumes": [], - "produces": [ + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}\/{attribute}\/increment": { + "patch": { + "summary": "Increment document attribute", + "operationId": "documentsDBIncrementDocumentAttribute", + "consumes": [ "application\/json" ], - "tags": [ - "health" - ], - "description": "Check the Appwrite HTTP server is up and responsive.", - "responses": { - "200": { - "description": "Health Status", - "schema": { - "$ref": "#\/definitions\/healthStatus" - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "get", - "group": "health", - "weight": 450, - "cookies": false, - "type": "", - "demo": "health\/get.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get.md", - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ] - } - }, - "\/health\/anti-virus": { - "get": { - "summary": "Get antivirus", - "operationId": "healthGetAntivirus", - "consumes": [], "produces": [ "application\/json" ], "tags": [ - "health" + "documentsDB" ], - "description": "Check the Appwrite Antivirus server is up and connection is successful.", + "description": "Increment a specific column of a row by a given value.", "responses": { "200": { - "description": "Health Antivirus", + "description": "Document", "schema": { - "$ref": "#\/definitions\/healthAntivirus" + "$ref": "#\/definitions\/document" } } }, "deprecated": false, "x-appwrite": { - "method": "getAntivirus", - "group": "health", - "weight": 459, + "method": "incrementDocumentAttribute", + "group": "documents", + "weight": 419, "cookies": false, "type": "", - "demo": "health\/get-antivirus.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "demo": "documentsdb\/increment-document-attribute.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", "platforms": [ - "console", - "server" + "client", + "server", + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-storage-anti-virus.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/increment-document-attribute.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], + "Session": [], + "JWT": [], "Key": [] } - ] - } - }, - "\/health\/cache": { - "get": { - "summary": "Get cache", - "operationId": "healthGetCache", - "consumes": [], - "produces": [ - "application\/json" ], - "tags": [ - "health" - ], - "description": "Check the Appwrite in-memory cache servers are up and connection is successful.", - "responses": { - "200": { - "description": "Status List", + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "type": "string", + "x-example": "<DOCUMENT_ID>", + "in": "path" + }, + { + "name": "attribute", + "description": "Attribute key.", + "required": true, + "type": "string", + "in": "path" + }, + { + "name": "payload", + "in": "body", "schema": { - "$ref": "#\/definitions\/healthStatusList" + "type": "object", + "properties": { + "value": { + "type": "number", + "description": "Value to increment the attribute by. The value must be a number.", + "default": 1, + "x-example": null, + "format": "float" + }, + "max": { + "type": "number", + "description": "Maximum value for the attribute. If the current value is greater than this value, an error will be thrown.", + "default": null, + "x-example": null, + "format": "float" + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "default": null, + "x-example": "<TRANSACTION_ID>" + } + } } } - }, - "deprecated": false, - "x-appwrite": { - "method": "getCache", - "group": "health", - "weight": 453, - "cookies": false, - "type": "", - "demo": "health\/get-cache.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-cache.md", - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } ] } }, - "\/health\/certificate": { + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/indexes": { "get": { - "summary": "Get the SSL certificate for a domain", - "operationId": "healthGetCertificate", + "summary": "List indexes", + "operationId": "documentsDBListIndexes", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "health" + "documentsDB" ], - "description": "Get the SSL certificate for a domain", + "description": "List indexes in the collection.", "responses": { "200": { - "description": "Health Certificate", + "description": "Indexes List", "schema": { - "$ref": "#\/definitions\/healthCertificate" + "$ref": "#\/definitions\/indexList" } } }, "deprecated": false, "x-appwrite": { - "method": "getCertificate", - "group": "health", - "weight": 456, + "method": "listIndexes", + "group": "indexes", + "weight": 408, "cookies": false, "type": "", - "demo": "health\/get-certificate.md", + "demo": "documentsdb\/list-indexes.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "collections.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-certificate.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/list-indexes.md", "auth": { "Project": [], "Key": [] @@ -17234,54 +16922,84 @@ ], "parameters": [ { - "name": "domain", - "description": "string", - "required": false, + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, "type": "string", + "x-example": "<COLLECTION_ID>", + "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, + "type": "array", + "collectionFormat": "multi", + "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, + "type": "boolean", + "x-example": false, + "default": true, "in": "query" } ] - } - }, - "\/health\/db": { - "get": { - "summary": "Get DB", - "operationId": "healthGetDB", - "consumes": [], + }, + "post": { + "summary": "Create index", + "operationId": "documentsDBCreateIndex", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "health" + "documentsDB" ], - "description": "Check the Appwrite database servers are up and connection is successful.", + "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": { - "200": { - "description": "Status List", + "202": { + "description": "Index", "schema": { - "$ref": "#\/definitions\/healthStatusList" + "$ref": "#\/definitions\/index" } } }, "deprecated": false, "x-appwrite": { - "method": "getDB", - "group": "health", - "weight": 452, + "method": "createIndex", + "group": "indexes", + "weight": 405, "cookies": false, "type": "", - "demo": "health\/get-db.md", + "demo": "documentsdb\/create-index.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "collections.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-db.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/create-index.md", "auth": { "Project": [], "Key": [] @@ -17292,100 +17010,133 @@ "Project": [], "Key": [] } - ] - } - }, - "\/health\/pubsub": { - "get": { - "summary": "Get pubsub", - "operationId": "healthGetPubSub", - "consumes": [], - "produces": [ - "application\/json" - ], - "tags": [ - "health" ], - "description": "Check the Appwrite pub-sub servers are up and connection is successful.", - "responses": { - "200": { - "description": "Status List", + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", "schema": { - "$ref": "#\/definitions\/healthStatusList" + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Index Key.", + "default": null, + "x-example": null + }, + "type": { + "type": "string", + "description": "Index type.", + "default": null, + "x-example": "key", + "enum": [ + "key", + "fulltext", + "unique", + "spatial" + ], + "x-enum-name": "IndexType", + "x-enum-keys": [] + }, + "attributes": { + "type": "array", + "description": "Array of attributes to index. Maximum of 100 attributes are allowed, each 32 characters long.", + "default": null, + "x-example": null, + "items": { + "type": "string" + } + }, + "orders": { + "type": "array", + "description": "Array of index orders. Maximum of 100 orders are allowed.", + "default": [], + "x-example": null, + "items": { + "type": "string", + "enum": [ + "asc", + "desc" + ], + "x-enum-name": "OrderBy", + "x-enum-keys": [] + } + }, + "lengths": { + "type": "array", + "description": "Length of index. Maximum of 100", + "default": [], + "x-example": null, + "items": { + "type": "integer" + } + } + }, + "required": [ + "key", + "type", + "attributes" + ] } } - }, - "deprecated": false, - "x-appwrite": { - "method": "getPubSub", - "group": "health", - "weight": 454, - "cookies": false, - "type": "", - "demo": "health\/get-pub-sub.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-pubsub.md", - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } ] } }, - "\/health\/queue\/audits": { + "\/documentsdb\/{databaseId}\/collections\/{collectionId}\/indexes\/{key}": { "get": { - "summary": "Get audits queue", - "operationId": "healthGetQueueAudits", + "summary": "Get index", + "operationId": "documentsDBGetIndex", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "health" + "documentsDB" ], - "description": "Get the number of audit logs that are waiting to be processed in the Appwrite internal queue server.", + "description": "Get index by ID.", "responses": { "200": { - "description": "Health Queue", + "description": "Index", "schema": { - "$ref": "#\/definitions\/healthQueue" + "$ref": "#\/definitions\/index" } } }, "deprecated": false, "x-appwrite": { - "method": "getQueueAudits", - "group": "queue", - "weight": 460, + "method": "getIndex", + "group": "indexes", + "weight": 406, "cookies": false, "type": "", - "demo": "health\/get-queue-audits.md", + "demo": "documentsdb\/get-index.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "collections.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-audits.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/get-index.md", "auth": { "Project": [], "Key": [] @@ -17399,56 +17150,65 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, - "type": "integer", - "format": "int32", - "default": 5000, - "in": "query" + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", + "in": "path" + }, + { + "name": "key", + "description": "Index Key.", + "required": true, + "type": "string", + "in": "path" } ] - } - }, - "\/health\/queue\/billing-project-aggregation": { - "get": { - "summary": "Get billing project aggregation queue", - "operationId": "healthGetQueueBillingProjectAggregation", - "consumes": [], - "produces": [ + }, + "delete": { + "summary": "Delete index", + "operationId": "documentsDBDeleteIndex", + "consumes": [ "application\/json" ], + "produces": [], "tags": [ - "health" + "documentsDB" ], - "description": "Get billing project aggregation queue.", + "description": "Delete an index.", "responses": { - "200": { - "description": "Health Queue", - "schema": { - "$ref": "#\/definitions\/healthQueue" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "getQueueBillingProjectAggregation", - "group": null, - "weight": 734, + "method": "deleteIndex", + "group": "indexes", + "weight": 407, "cookies": false, "type": "", - "demo": "health\/get-queue-billing-project-aggregation.md", + "demo": "documentsdb\/delete-index.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "collections.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-billing-project-aggregation.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/documentsdb\/delete-index.md", "auth": { "Project": [], "Key": [] @@ -17462,56 +17222,69 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, - "type": "integer", - "format": "int32", - "default": 10000, - "in": "query" + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", + "in": "path" + }, + { + "name": "key", + "description": "Index Key.", + "required": true, + "type": "string", + "in": "path" } ] } }, - "\/health\/queue\/billing-team-aggregation": { + "\/functions": { "get": { - "summary": "Get billing team aggregation queue", - "operationId": "healthGetQueueBillingTeamAggregation", + "summary": "List functions", + "operationId": "functionsList", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "health" + "functions" ], - "description": "Get billing team aggregation queue.", + "description": "Get a list of all the project's functions. You can use the query params to filter your results.", "responses": { "200": { - "description": "Health Queue", + "description": "Functions List", "schema": { - "$ref": "#\/definitions\/healthQueue" + "$ref": "#\/definitions\/functionList" } } }, "deprecated": false, "x-appwrite": { - "method": "getQueueBillingTeamAggregation", - "group": null, - "weight": 733, + "method": "list", + "group": "functions", + "weight": 477, "cookies": false, "type": "", - "demo": "health\/get-queue-billing-team-aggregation.md", + "demo": "functions\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-billing-team-aggregation.md", "auth": { "Project": [], "Key": [] @@ -17525,56 +17298,76 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "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, - "type": "integer", - "format": "int32", - "default": 10000, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "type": "string", + "x-example": "<SEARCH>", + "default": "", + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "type": "boolean", + "x-example": false, + "default": true, "in": "query" } ] - } - }, - "\/health\/queue\/builds": { - "get": { - "summary": "Get builds queue", - "operationId": "healthGetQueueBuilds", - "consumes": [], + }, + "post": { + "summary": "Create function", + "operationId": "functionsCreate", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "health" + "functions" ], - "description": "Get the number of builds that are waiting to be processed in the Appwrite internal queue server.", + "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": { - "200": { - "description": "Health Queue", + "201": { + "description": "Function", "schema": { - "$ref": "#\/definitions\/healthQueue" + "$ref": "#\/definitions\/function" } } }, "deprecated": false, "x-appwrite": { - "method": "getQueueBuilds", - "group": "queue", - "weight": 464, + "method": "create", + "group": "functions", + "weight": 626, "cookies": false, "type": "", - "demo": "health\/get-queue-builds.md", + "demo": "functions\/create.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-builds.md", "auth": { "Project": [], "Key": [] @@ -17588,56 +17381,341 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, - "type": "integer", - "format": "int32", - "default": 5000, - "in": "query" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "functionId": { + "type": "string", + "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.", + "default": null, + "x-example": "<FUNCTION_ID>" + }, + "name": { + "type": "string", + "description": "Function name. Max length: 128 chars.", + "default": null, + "x-example": "<NAME>" + }, + "runtime": { + "type": "string", + "description": "Execution runtime.", + "default": null, + "x-example": "node-14.5", + "enum": [ + "node-14.5", + "node-16.0", + "node-18.0", + "node-19.0", + "node-20.0", + "node-21.0", + "node-22", + "node-23", + "node-24", + "node-25", + "php-8.0", + "php-8.1", + "php-8.2", + "php-8.3", + "php-8.4", + "ruby-3.0", + "ruby-3.1", + "ruby-3.2", + "ruby-3.3", + "ruby-3.4", + "ruby-4.0", + "python-3.8", + "python-3.9", + "python-3.10", + "python-3.11", + "python-3.12", + "python-3.13", + "python-3.14", + "python-ml-3.11", + "python-ml-3.12", + "python-ml-3.13", + "deno-1.21", + "deno-1.24", + "deno-1.35", + "deno-1.40", + "deno-1.46", + "deno-2.0", + "deno-2.5", + "deno-2.6", + "dart-2.15", + "dart-2.16", + "dart-2.17", + "dart-2.18", + "dart-2.19", + "dart-3.0", + "dart-3.1", + "dart-3.3", + "dart-3.5", + "dart-3.8", + "dart-3.9", + "dart-3.10", + "dotnet-6.0", + "dotnet-7.0", + "dotnet-8.0", + "dotnet-10", + "java-8.0", + "java-11.0", + "java-17.0", + "java-18.0", + "java-21.0", + "java-22", + "java-25", + "swift-5.5", + "swift-5.8", + "swift-5.9", + "swift-5.10", + "swift-6.2", + "kotlin-1.6", + "kotlin-1.8", + "kotlin-1.9", + "kotlin-2.0", + "kotlin-2.3", + "cpp-17", + "cpp-20", + "bun-1.0", + "bun-1.1", + "bun-1.2", + "bun-1.3", + "go-1.23", + "go-1.24", + "go-1.25", + "go-1.26", + "static-1", + "flutter-3.24", + "flutter-3.27", + "flutter-3.29", + "flutter-3.32", + "flutter-3.35", + "flutter-3.38" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "execute": { + "type": "array", + "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.", + "default": [], + "x-example": "[\"any\"]", + "items": { + "type": "string" + } + }, + "events": { + "type": "array", + "description": "Events list. Maximum of 100 events are allowed.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "schedule": { + "type": "string", + "description": "Schedule CRON syntax.", + "default": "", + "x-example": null + }, + "timeout": { + "type": "integer", + "description": "Function maximum execution time in seconds.", + "default": 15, + "x-example": 1, + "format": "int32" + }, + "enabled": { + "type": "boolean", + "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.", + "default": true, + "x-example": false + }, + "logging": { + "type": "boolean", + "description": "When disabled, executions will exclude logs and errors, and will be slightly faster.", + "default": true, + "x-example": false + }, + "entrypoint": { + "type": "string", + "description": "Entrypoint File. This path is relative to the \"providerRootDirectory\".", + "default": "", + "x-example": "<ENTRYPOINT>" + }, + "commands": { + "type": "string", + "description": "Build Commands.", + "default": "", + "x-example": "<COMMANDS>" + }, + "scopes": { + "type": "array", + "description": "List of scopes allowed for API key auto-generated for every execution. Maximum of 100 scopes are allowed.", + "default": [], + "x-example": null, + "items": { + "type": "string", + "enum": [ + "sessions.write", + "users.read", + "users.write", + "teams.read", + "teams.write", + "databases.read", + "databases.write", + "collections.read", + "collections.write", + "tables.read", + "tables.write", + "attributes.read", + "attributes.write", + "columns.read", + "columns.write", + "indexes.read", + "indexes.write", + "documents.read", + "documents.write", + "rows.read", + "rows.write", + "files.read", + "files.write", + "buckets.read", + "buckets.write", + "functions.read", + "functions.write", + "sites.read", + "sites.write", + "log.read", + "log.write", + "execution.read", + "execution.write", + "locale.read", + "avatars.read", + "health.read", + "providers.read", + "providers.write", + "messages.read", + "messages.write", + "topics.read", + "topics.write", + "subscribers.read", + "subscribers.write", + "targets.read", + "targets.write", + "rules.read", + "rules.write", + "schedules.read", + "schedules.write", + "migrations.read", + "migrations.write", + "vcs.read", + "vcs.write", + "assistant.read", + "tokens.read", + "tokens.write", + "policies.write", + "policies.read", + "archives.read", + "archives.write", + "restorations.read", + "restorations.write", + "domains.read", + "domains.write", + "events.read" + ], + "x-enum-name": null, + "x-enum-keys": [] + } + }, + "installationId": { + "type": "string", + "description": "Appwrite Installation ID for VCS (Version Control System) deployment.", + "default": "", + "x-example": "<INSTALLATION_ID>" + }, + "providerRepositoryId": { + "type": "string", + "description": "Repository ID of the repo linked to the function.", + "default": "", + "x-example": "<PROVIDER_REPOSITORY_ID>" + }, + "providerBranch": { + "type": "string", + "description": "Production branch for the repo linked to the function.", + "default": "", + "x-example": "<PROVIDER_BRANCH>" + }, + "providerSilentMode": { + "type": "boolean", + "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.", + "default": false, + "x-example": false + }, + "providerRootDirectory": { + "type": "string", + "description": "Path to function code in the linked repo.", + "default": "", + "x-example": "<PROVIDER_ROOT_DIRECTORY>" + }, + "specification": { + "type": "string", + "description": "Runtime specification for the function and builds.", + "default": {}, + "x-example": null + } + }, + "required": [ + "functionId", + "name", + "runtime" + ] + } } ] } }, - "\/health\/queue\/builds-priority": { + "\/functions\/runtimes": { "get": { - "summary": "Get billing aggregation queue", - "operationId": "healthGetQueuePriorityBuilds", + "summary": "List runtimes", + "operationId": "functionsListRuntimes", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "health" + "functions" ], - "description": "Get the priority builds queue size.", + "description": "Get a list of all runtimes that are currently active on your instance.", "responses": { "200": { - "description": "Health Queue", + "description": "Runtimes List", "schema": { - "$ref": "#\/definitions\/healthQueue" + "$ref": "#\/definitions\/runtimeList" } } }, "deprecated": false, "x-appwrite": { - "method": "getQueuePriorityBuilds", - "group": null, - "weight": 735, + "method": "listRuntimes", + "group": "runtimes", + "weight": 479, "cookies": false, "type": "", - "demo": "health\/get-queue-priority-builds.md", + "demo": "functions\/list-runtimes.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "public", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-priority-builds.md", "auth": { "Project": [], "Key": [] @@ -17648,59 +17726,47 @@ "Project": [], "Key": [] } - ], - "parameters": [ - { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 500.", - "required": false, - "type": "integer", - "format": "int32", - "default": 500, - "in": "query" - } ] } }, - "\/health\/queue\/certificates": { + "\/functions\/specifications": { "get": { - "summary": "Get certificates queue", - "operationId": "healthGetQueueCertificates", + "summary": "List specifications", + "operationId": "functionsListSpecifications", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "health" + "functions" ], - "description": "Get the number of certificates that are waiting to be issued against [Letsencrypt](https:\/\/letsencrypt.org\/) in the Appwrite internal queue server.", + "description": "List allowed function specifications for this instance.", "responses": { "200": { - "description": "Health Queue", + "description": "Specifications List", "schema": { - "$ref": "#\/definitions\/healthQueue" + "$ref": "#\/definitions\/specificationList" } } }, "deprecated": false, "x-appwrite": { - "method": "getQueueCertificates", - "group": "queue", - "weight": 463, + "method": "listSpecifications", + "group": "runtimes", + "weight": 480, "cookies": false, "type": "", - "demo": "health\/get-queue-certificates.md", + "demo": "functions\/list-specifications.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.read", "platforms": [ - "console", - "server" + "server", + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-certificates.md", "auth": { "Project": [], "Key": [] @@ -17711,59 +17777,47 @@ "Project": [], "Key": [] } - ], - "parameters": [ - { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, - "type": "integer", - "format": "int32", - "default": 5000, - "in": "query" - } ] } }, - "\/health\/queue\/databases": { + "\/functions\/{functionId}": { "get": { - "summary": "Get databases queue", - "operationId": "healthGetQueueDatabases", + "summary": "Get function", + "operationId": "functionsGet", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "health" + "functions" ], - "description": "Get the number of database changes that are waiting to be processed in the Appwrite internal queue server.", + "description": "Get a function by its unique ID.", "responses": { "200": { - "description": "Health Queue", + "description": "Function", "schema": { - "$ref": "#\/definitions\/healthQueue" + "$ref": "#\/definitions\/function" } } }, "deprecated": false, "x-appwrite": { - "method": "getQueueDatabases", - "group": "queue", - "weight": 465, + "method": "get", + "group": "functions", + "weight": 475, "cookies": false, "type": "", - "demo": "health\/get-queue-databases.md", + "demo": "functions\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-databases.md", "auth": { "Project": [], "Key": [] @@ -17777,128 +17831,54 @@ ], "parameters": [ { - "name": "name", - "description": "Queue name for which to check the queue size", - "required": false, + "name": "functionId", + "description": "Function ID.", + "required": true, "type": "string", - "x-example": "<NAME>", - "default": "database_db_main", - "in": "query" - }, - { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, - "type": "integer", - "format": "int32", - "default": 5000, - "in": "query" + "x-example": "<FUNCTION_ID>", + "in": "path" } ] - } - }, - "\/health\/queue\/deletes": { - "get": { - "summary": "Get deletes queue", - "operationId": "healthGetQueueDeletes", - "consumes": [], - "produces": [ + }, + "put": { + "summary": "Update function", + "operationId": "functionsUpdate", + "consumes": [ "application\/json" ], - "tags": [ - "health" - ], - "description": "Get the number of background destructive changes that are waiting to be processed in the Appwrite internal queue server.", - "responses": { - "200": { - "description": "Health Queue", - "schema": { - "$ref": "#\/definitions\/healthQueue" - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "getQueueDeletes", - "group": "queue", - "weight": 466, - "cookies": false, - "type": "", - "demo": "health\/get-queue-deletes.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-deletes.md", - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, - "type": "integer", - "format": "int32", - "default": 5000, - "in": "query" - } - ] - } - }, - "\/health\/queue\/failed\/{name}": { - "get": { - "summary": "Get number of failed queue jobs", - "operationId": "healthGetFailedJobs", - "consumes": [], "produces": [ "application\/json" ], "tags": [ - "health" + "functions" ], - "description": "Returns the amount of failed jobs in a given queue.\n", + "description": "Update function by its unique ID.", "responses": { "200": { - "description": "Health Queue", + "description": "Function", "schema": { - "$ref": "#\/definitions\/healthQueue" + "$ref": "#\/definitions\/function" } } }, "deprecated": false, "x-appwrite": { - "method": "getFailedJobs", - "group": "queue", - "weight": 473, + "method": "update", + "group": "functions", + "weight": 627, "cookies": false, "type": "", - "demo": "health\/get-failed-jobs.md", + "demo": "functions\/update.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-failed-queue-jobs.md", "auth": { "Project": [], "Key": [] @@ -17912,81 +17892,337 @@ ], "parameters": [ { - "name": "name", - "description": "The name of the queue", + "name": "functionId", + "description": "Function ID.", "required": true, "type": "string", - "x-example": "v1-database", - "enum": [ - "v1-database", - "v1-deletes", - "v1-audits", - "v1-mails", - "v1-functions", - "v1-stats-resources", - "v1-stats-usage", - "v1-webhooks", - "v1-certificates", - "v1-builds", - "v1-screenshots", - "v1-messaging", - "v1-migrations" - ], - "x-enum-name": null, - "x-enum-keys": [], + "x-example": "<FUNCTION_ID>", "in": "path" }, { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, - "type": "integer", - "format": "int32", - "default": 5000, - "in": "query" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Function name. Max length: 128 chars.", + "default": null, + "x-example": "<NAME>" + }, + "runtime": { + "type": "string", + "description": "Execution runtime.", + "default": "", + "x-example": "node-14.5", + "enum": [ + "node-14.5", + "node-16.0", + "node-18.0", + "node-19.0", + "node-20.0", + "node-21.0", + "node-22", + "node-23", + "node-24", + "node-25", + "php-8.0", + "php-8.1", + "php-8.2", + "php-8.3", + "php-8.4", + "ruby-3.0", + "ruby-3.1", + "ruby-3.2", + "ruby-3.3", + "ruby-3.4", + "ruby-4.0", + "python-3.8", + "python-3.9", + "python-3.10", + "python-3.11", + "python-3.12", + "python-3.13", + "python-3.14", + "python-ml-3.11", + "python-ml-3.12", + "python-ml-3.13", + "deno-1.21", + "deno-1.24", + "deno-1.35", + "deno-1.40", + "deno-1.46", + "deno-2.0", + "deno-2.5", + "deno-2.6", + "dart-2.15", + "dart-2.16", + "dart-2.17", + "dart-2.18", + "dart-2.19", + "dart-3.0", + "dart-3.1", + "dart-3.3", + "dart-3.5", + "dart-3.8", + "dart-3.9", + "dart-3.10", + "dotnet-6.0", + "dotnet-7.0", + "dotnet-8.0", + "dotnet-10", + "java-8.0", + "java-11.0", + "java-17.0", + "java-18.0", + "java-21.0", + "java-22", + "java-25", + "swift-5.5", + "swift-5.8", + "swift-5.9", + "swift-5.10", + "swift-6.2", + "kotlin-1.6", + "kotlin-1.8", + "kotlin-1.9", + "kotlin-2.0", + "kotlin-2.3", + "cpp-17", + "cpp-20", + "bun-1.0", + "bun-1.1", + "bun-1.2", + "bun-1.3", + "go-1.23", + "go-1.24", + "go-1.25", + "go-1.26", + "static-1", + "flutter-3.24", + "flutter-3.27", + "flutter-3.29", + "flutter-3.32", + "flutter-3.35", + "flutter-3.38" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "execute": { + "type": "array", + "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.", + "default": [], + "x-example": "[\"any\"]", + "items": { + "type": "string" + } + }, + "events": { + "type": "array", + "description": "Events list. Maximum of 100 events are allowed.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "schedule": { + "type": "string", + "description": "Schedule CRON syntax.", + "default": "", + "x-example": null + }, + "timeout": { + "type": "integer", + "description": "Maximum execution time in seconds.", + "default": 15, + "x-example": 1, + "format": "int32" + }, + "enabled": { + "type": "boolean", + "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.", + "default": true, + "x-example": false + }, + "logging": { + "type": "boolean", + "description": "When disabled, executions will exclude logs and errors, and will be slightly faster.", + "default": true, + "x-example": false + }, + "entrypoint": { + "type": "string", + "description": "Entrypoint File. This path is relative to the \"providerRootDirectory\".", + "default": "", + "x-example": "<ENTRYPOINT>" + }, + "commands": { + "type": "string", + "description": "Build Commands.", + "default": "", + "x-example": "<COMMANDS>" + }, + "scopes": { + "type": "array", + "description": "List of scopes allowed for API Key auto-generated for every execution. Maximum of 100 scopes are allowed.", + "default": [], + "x-example": null, + "items": { + "type": "string", + "enum": [ + "sessions.write", + "users.read", + "users.write", + "teams.read", + "teams.write", + "databases.read", + "databases.write", + "collections.read", + "collections.write", + "tables.read", + "tables.write", + "attributes.read", + "attributes.write", + "columns.read", + "columns.write", + "indexes.read", + "indexes.write", + "documents.read", + "documents.write", + "rows.read", + "rows.write", + "files.read", + "files.write", + "buckets.read", + "buckets.write", + "functions.read", + "functions.write", + "sites.read", + "sites.write", + "log.read", + "log.write", + "execution.read", + "execution.write", + "locale.read", + "avatars.read", + "health.read", + "providers.read", + "providers.write", + "messages.read", + "messages.write", + "topics.read", + "topics.write", + "subscribers.read", + "subscribers.write", + "targets.read", + "targets.write", + "rules.read", + "rules.write", + "schedules.read", + "schedules.write", + "migrations.read", + "migrations.write", + "vcs.read", + "vcs.write", + "assistant.read", + "tokens.read", + "tokens.write", + "policies.write", + "policies.read", + "archives.read", + "archives.write", + "restorations.read", + "restorations.write", + "domains.read", + "domains.write", + "events.read" + ], + "x-enum-name": null, + "x-enum-keys": [] + } + }, + "installationId": { + "type": "string", + "description": "Appwrite Installation ID for VCS (Version Controle System) deployment.", + "default": "", + "x-example": "<INSTALLATION_ID>" + }, + "providerRepositoryId": { + "type": "string", + "description": "Repository ID of the repo linked to the function", + "default": null, + "x-example": "<PROVIDER_REPOSITORY_ID>", + "x-nullable": true + }, + "providerBranch": { + "type": "string", + "description": "Production branch for the repo linked to the function", + "default": "", + "x-example": "<PROVIDER_BRANCH>" + }, + "providerSilentMode": { + "type": "boolean", + "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.", + "default": false, + "x-example": false + }, + "providerRootDirectory": { + "type": "string", + "description": "Path to function code in the linked repo.", + "default": "", + "x-example": "<PROVIDER_ROOT_DIRECTORY>" + }, + "specification": { + "type": "string", + "description": "Runtime specification for the function and builds.", + "default": {}, + "x-example": null + } + }, + "required": [ + "name" + ] + } } ] - } - }, - "\/health\/queue\/functions": { - "get": { - "summary": "Get functions queue", - "operationId": "healthGetQueueFunctions", - "consumes": [], - "produces": [ + }, + "delete": { + "summary": "Delete function", + "operationId": "functionsDelete", + "consumes": [ "application\/json" ], + "produces": [], "tags": [ - "health" + "functions" ], - "description": "Get the number of function executions that are waiting to be processed in the Appwrite internal queue server.", + "description": "Delete a function by its unique ID.", "responses": { - "200": { - "description": "Health Queue", - "schema": { - "$ref": "#\/definitions\/healthQueue" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "getQueueFunctions", - "group": "queue", - "weight": 470, + "method": "delete", + "group": "functions", + "weight": 478, "cookies": false, "type": "", - "demo": "health\/get-queue-functions.md", + "demo": "functions\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-functions.md", "auth": { "Project": [], "Key": [] @@ -18000,56 +18236,56 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, - "type": "integer", - "format": "int32", - "default": 5000, - "in": "query" + "name": "functionId", + "description": "Function ID.", + "required": true, + "type": "string", + "x-example": "<FUNCTION_ID>", + "in": "path" } ] } }, - "\/health\/queue\/logs": { - "get": { - "summary": "Get logs queue", - "operationId": "healthGetQueueLogs", - "consumes": [], + "\/functions\/{functionId}\/deployment": { + "patch": { + "summary": "Update function's deployment", + "operationId": "functionsUpdateFunctionDeployment", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "health" + "functions" ], - "description": "Get the number of logs that are waiting to be processed in the Appwrite internal queue server.", + "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": "Health Queue", + "description": "Function", "schema": { - "$ref": "#\/definitions\/healthQueue" + "$ref": "#\/definitions\/function" } } }, "deprecated": false, "x-appwrite": { - "method": "getQueueLogs", - "group": "queue", - "weight": 462, + "method": "updateFunctionDeployment", + "group": "functions", + "weight": 483, "cookies": false, "type": "", - "demo": "health\/get-queue-logs.md", + "demo": "functions\/update-function-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-logs.md", "auth": { "Project": [], "Key": [] @@ -18063,56 +18299,72 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, - "type": "integer", - "format": "int32", - "default": 5000, - "in": "query" + "name": "functionId", + "description": "Function ID.", + "required": true, + "type": "string", + "x-example": "<FUNCTION_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "deploymentId": { + "type": "string", + "description": "Deployment ID.", + "default": null, + "x-example": "<DEPLOYMENT_ID>" + } + }, + "required": [ + "deploymentId" + ] + } } ] } }, - "\/health\/queue\/mails": { + "\/functions\/{functionId}\/deployments": { "get": { - "summary": "Get mails queue", - "operationId": "healthGetQueueMails", + "summary": "List deployments", + "operationId": "functionsListDeployments", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "health" + "functions" ], - "description": "Get the number of mails that are waiting to be processed in the Appwrite internal queue server.", + "description": "Get a list of all the function's code deployments. You can use the query params to filter your results.", "responses": { "200": { - "description": "Health Queue", + "description": "Deployments List", "schema": { - "$ref": "#\/definitions\/healthQueue" + "$ref": "#\/definitions\/deploymentList" } } }, "deprecated": false, "x-appwrite": { - "method": "getQueueMails", - "group": "queue", - "weight": 467, + "method": "listDeployments", + "group": "deployments", + "weight": 484, "cookies": false, "type": "", - "demo": "health\/get-queue-mails.md", + "demo": "functions\/list-deployments.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-mails.md", "auth": { "Project": [], "Key": [] @@ -18126,56 +18378,84 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "name": "functionId", + "description": "Function ID.", + "required": true, + "type": "string", + "x-example": "<FUNCTION_ID>", + "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, - "type": "integer", - "format": "int32", - "default": 5000, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "type": "string", + "x-example": "<SEARCH>", + "default": "", + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "type": "boolean", + "x-example": false, + "default": true, "in": "query" } ] - } - }, - "\/health\/queue\/messaging": { - "get": { - "summary": "Get messaging queue", - "operationId": "healthGetQueueMessaging", - "consumes": [], + }, + "post": { + "summary": "Create deployment", + "operationId": "functionsCreateDeployment", + "consumes": [ + "multipart\/form-data" + ], "produces": [ "application\/json" ], "tags": [ - "health" + "functions" ], - "description": "Get the number of messages that are waiting to be processed in the Appwrite internal queue server.", + "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": { - "200": { - "description": "Health Queue", + "202": { + "description": "Deployment", "schema": { - "$ref": "#\/definitions\/healthQueue" + "$ref": "#\/definitions\/deployment" } } }, "deprecated": false, "x-appwrite": { - "method": "getQueueMessaging", - "group": "queue", - "weight": 468, + "method": "createDeployment", + "group": "deployments", + "weight": 481, "cookies": false, - "type": "", - "demo": "health\/get-queue-messaging.md", + "type": "upload", + "demo": "functions\/create-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.write", "platforms": [ "console", "server" ], - "packaging": false, + "packaging": true, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-messaging.md", "auth": { "Project": [], "Key": [] @@ -18189,56 +18469,87 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "name": "functionId", + "description": "Function ID.", + "required": true, + "type": "string", + "x-example": "<FUNCTION_ID>", + "in": "path" + }, + { + "name": "entrypoint", + "description": "Entrypoint File.", "required": false, - "type": "integer", - "format": "int32", - "default": 5000, - "in": "query" + "type": "string", + "x-example": "<ENTRYPOINT>", + "in": "formData" + }, + { + "name": "commands", + "description": "Build Commands.", + "required": false, + "type": "string", + "x-example": "<COMMANDS>", + "in": "formData" + }, + { + "name": "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.", + "required": true, + "type": "file", + "in": "formData" + }, + { + "name": "activate", + "description": "Automatically activate the deployment when it is finished building.", + "required": true, + "type": "boolean", + "x-example": false, + "in": "formData" } ] } }, - "\/health\/queue\/migrations": { - "get": { - "summary": "Get migrations queue", - "operationId": "healthGetQueueMigrations", - "consumes": [], + "\/functions\/{functionId}\/deployments\/duplicate": { + "post": { + "summary": "Create duplicate deployment", + "operationId": "functionsCreateDuplicateDeployment", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "health" + "functions" ], - "description": "Get the number of migrations that are waiting to be processed in the Appwrite internal queue server.", + "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": { - "200": { - "description": "Health Queue", + "202": { + "description": "Deployment", "schema": { - "$ref": "#\/definitions\/healthQueue" + "$ref": "#\/definitions\/deployment" } } }, "deprecated": false, "x-appwrite": { - "method": "getQueueMigrations", - "group": "queue", - "weight": 469, + "method": "createDuplicateDeployment", + "group": "deployments", + "weight": 489, "cookies": false, "type": "", - "demo": "health\/get-queue-migrations.md", + "demo": "functions\/create-duplicate-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-migrations.md", "auth": { "Project": [], "Key": [] @@ -18252,56 +18563,80 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, - "type": "integer", - "format": "int32", - "default": 5000, - "in": "query" + "name": "functionId", + "description": "Function ID.", + "required": true, + "type": "string", + "x-example": "<FUNCTION_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "deploymentId": { + "type": "string", + "description": "Deployment ID.", + "default": null, + "x-example": "<DEPLOYMENT_ID>" + }, + "buildId": { + "type": "string", + "description": "Build unique ID.", + "default": "", + "x-example": "<BUILD_ID>" + } + }, + "required": [ + "deploymentId" + ] + } } ] } }, - "\/health\/queue\/region-manager": { - "get": { - "summary": "Get region manager queue", - "operationId": "healthGetQueueRegionManager", - "consumes": [], + "\/functions\/{functionId}\/deployments\/template": { + "post": { + "summary": "Create template deployment", + "operationId": "functionsCreateTemplateDeployment", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "health" + "functions" ], - "description": "Get region manager queue.", + "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": { - "200": { - "description": "Health Queue", + "202": { + "description": "Deployment", "schema": { - "$ref": "#\/definitions\/healthQueue" + "$ref": "#\/definitions\/deployment" } } }, "deprecated": false, "x-appwrite": { - "method": "getQueueRegionManager", - "group": null, - "weight": 736, + "method": "createTemplateDeployment", + "group": "deployments", + "weight": 486, "cookies": false, "type": "", - "demo": "health\/get-queue-region-manager.md", + "demo": "functions\/create-template-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-region-manager.md", "auth": { "Project": [], "Key": [] @@ -18315,56 +18650,115 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 100.", - "required": false, - "type": "integer", - "format": "int32", - "default": 100, - "in": "query" + "name": "functionId", + "description": "Function ID.", + "required": true, + "type": "string", + "x-example": "<FUNCTION_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "repository": { + "type": "string", + "description": "Repository name of the template.", + "default": null, + "x-example": "<REPOSITORY>" + }, + "owner": { + "type": "string", + "description": "The name of the owner of the template.", + "default": null, + "x-example": "<OWNER>" + }, + "rootDirectory": { + "type": "string", + "description": "Path to function code in the template repo.", + "default": null, + "x-example": "<ROOT_DIRECTORY>" + }, + "type": { + "type": "string", + "description": "Type for the reference provided. Can be commit, branch, or tag", + "default": null, + "x-example": "commit", + "enum": [ + "commit", + "branch", + "tag" + ], + "x-enum-name": "TemplateReferenceType", + "x-enum-keys": [] + }, + "reference": { + "type": "string", + "description": "Reference value, can be a commit hash, branch name, or release tag", + "default": null, + "x-example": "<REFERENCE>" + }, + "activate": { + "type": "boolean", + "description": "Automatically activate the deployment when it is finished building.", + "default": false, + "x-example": false + } + }, + "required": [ + "repository", + "owner", + "rootDirectory", + "type", + "reference" + ] + } } ] } }, - "\/health\/queue\/stats-resources": { - "get": { - "summary": "Get stats resources queue", - "operationId": "healthGetQueueStatsResources", - "consumes": [], + "\/functions\/{functionId}\/deployments\/vcs": { + "post": { + "summary": "Create VCS deployment", + "operationId": "functionsCreateVcsDeployment", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "health" + "functions" ], - "description": "Get the number of metrics that are waiting to be processed in the Appwrite stats resources queue.", + "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": { - "200": { - "description": "Health Queue", + "202": { + "description": "Deployment", "schema": { - "$ref": "#\/definitions\/healthQueue" + "$ref": "#\/definitions\/deployment" } } }, "deprecated": false, "x-appwrite": { - "method": "getQueueStatsResources", - "group": "queue", - "weight": 471, + "method": "createVcsDeployment", + "group": "deployments", + "weight": 487, "cookies": false, "type": "", - "demo": "health\/get-queue-stats-resources.md", + "demo": "functions\/create-vcs-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-stats-resources.md", "auth": { "Project": [], "Key": [] @@ -18378,56 +18772,91 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, - "type": "integer", - "format": "int32", - "default": 5000, - "in": "query" + "name": "functionId", + "description": "Function ID.", + "required": true, + "type": "string", + "x-example": "<FUNCTION_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "type": { + "type": "string", + "description": "Type of reference passed. Allowed values are: branch, commit", + "default": null, + "x-example": "branch", + "enum": [ + "branch", + "commit" + ], + "x-enum-name": "VCSReferenceType", + "x-enum-keys": [] + }, + "reference": { + "type": "string", + "description": "VCS reference to create deployment from. Depending on type this can be: branch name, commit hash", + "default": null, + "x-example": "<REFERENCE>" + }, + "activate": { + "type": "boolean", + "description": "Automatically activate the deployment when it is finished building.", + "default": false, + "x-example": false + } + }, + "required": [ + "type", + "reference" + ] + } } ] } }, - "\/health\/queue\/stats-usage": { + "\/functions\/{functionId}\/deployments\/{deploymentId}": { "get": { - "summary": "Get stats usage queue", - "operationId": "healthGetQueueUsage", + "summary": "Get deployment", + "operationId": "functionsGetDeployment", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "health" + "functions" ], - "description": "Get the number of metrics that are waiting to be processed in the Appwrite internal queue server.", + "description": "Get a function deployment by its unique ID.", "responses": { "200": { - "description": "Health Queue", + "description": "Deployment", "schema": { - "$ref": "#\/definitions\/healthQueue" + "$ref": "#\/definitions\/deployment" } } }, "deprecated": false, "x-appwrite": { - "method": "getQueueUsage", - "group": "queue", - "weight": 472, + "method": "getDeployment", + "group": "deployments", + "weight": 482, "cookies": false, "type": "", - "demo": "health\/get-queue-usage.md", + "demo": "functions\/get-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-stats-usage.md", "auth": { "Project": [], "Key": [] @@ -18441,56 +18870,57 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", - "required": false, - "type": "integer", - "format": "int32", - "default": 5000, - "in": "query" + "name": "functionId", + "description": "Function ID.", + "required": true, + "type": "string", + "x-example": "<FUNCTION_ID>", + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "type": "string", + "x-example": "<DEPLOYMENT_ID>", + "in": "path" } ] - } - }, - "\/health\/queue\/threats": { - "get": { - "summary": "Get threats queue", - "operationId": "healthGetQueueThreats", - "consumes": [], - "produces": [ + }, + "delete": { + "summary": "Delete deployment", + "operationId": "functionsDeleteDeployment", + "consumes": [ "application\/json" ], + "produces": [], "tags": [ - "health" + "functions" ], - "description": "Get threats queue.", + "description": "Delete a code deployment by its unique ID.", "responses": { - "200": { - "description": "Health Queue", - "schema": { - "$ref": "#\/definitions\/healthQueue" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "getQueueThreats", - "group": null, - "weight": 737, + "method": "deleteDeployment", + "group": "deployments", + "weight": 485, "cookies": false, "type": "", - "demo": "health\/get-queue-threats.md", + "demo": "functions\/delete-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-threats.md", "auth": { "Project": [], "Key": [] @@ -18504,56 +18934,62 @@ ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 100.", - "required": false, - "type": "integer", - "format": "int32", - "default": 100, - "in": "query" + "name": "functionId", + "description": "Function ID.", + "required": true, + "type": "string", + "x-example": "<FUNCTION_ID>", + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "type": "string", + "x-example": "<DEPLOYMENT_ID>", + "in": "path" } ] } }, - "\/health\/queue\/webhooks": { + "\/functions\/{functionId}\/deployments\/{deploymentId}\/download": { "get": { - "summary": "Get webhooks queue", - "operationId": "healthGetQueueWebhooks", + "summary": "Get deployment download", + "operationId": "functionsGetDeploymentDownload", "consumes": [], "produces": [ - "application\/json" + "*\/*" ], "tags": [ - "health" + "functions" ], - "description": "Get the number of webhooks that are waiting to be processed in the Appwrite internal queue server.", + "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": "Health Queue", + "description": "File", "schema": { - "$ref": "#\/definitions\/healthQueue" + "type": "file" } } }, "deprecated": false, "x-appwrite": { - "method": "getQueueWebhooks", - "group": "queue", - "weight": 461, + "method": "getDeploymentDownload", + "group": "deployments", + "weight": 488, "cookies": false, - "type": "", - "demo": "health\/get-queue-webhooks.md", + "type": "location", + "demo": "functions\/get-deployment-download.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-webhooks.md", "auth": { "Project": [], "Key": [] @@ -18562,61 +18998,85 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "threshold", - "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "name": "functionId", + "description": "Function ID.", + "required": true, + "type": "string", + "x-example": "<FUNCTION_ID>", + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "type": "string", + "x-example": "<DEPLOYMENT_ID>", + "in": "path" + }, + { + "name": "type", + "description": "Deployment file to download. Can be: \"source\", \"output\".", "required": false, - "type": "integer", - "format": "int32", - "default": 5000, + "type": "string", + "x-example": "source", + "enum": [ + "source", + "output" + ], + "x-enum-name": "DeploymentDownloadType", + "x-enum-keys": [], + "default": "source", "in": "query" } ] } }, - "\/health\/storage": { - "get": { - "summary": "Get storage", - "operationId": "healthGetStorage", - "consumes": [], + "\/functions\/{functionId}\/deployments\/{deploymentId}\/status": { + "patch": { + "summary": "Update deployment status", + "operationId": "functionsUpdateDeploymentStatus", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "health" + "functions" ], - "description": "Check the Appwrite storage device is up and connection is successful.", + "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": "Health Status", + "description": "Deployment", "schema": { - "$ref": "#\/definitions\/healthStatus" + "$ref": "#\/definitions\/deployment" } } }, "deprecated": false, "x-appwrite": { - "method": "getStorage", - "group": "storage", - "weight": 458, + "method": "updateDeploymentStatus", + "group": "deployments", + "weight": 490, "cookies": false, "type": "", - "demo": "health\/get-storage.md", + "demo": "functions\/update-deployment-status.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "functions.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-storage.md", "auth": { "Project": [], "Key": [] @@ -18627,145 +19087,144 @@ "Project": [], "Key": [] } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "type": "string", + "x-example": "<FUNCTION_ID>", + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "type": "string", + "x-example": "<DEPLOYMENT_ID>", + "in": "path" + } ] } }, - "\/health\/storage\/local": { + "\/functions\/{functionId}\/executions": { "get": { - "summary": "Get local storage", - "operationId": "healthGetStorageLocal", + "summary": "List executions", + "operationId": "functionsListExecutions", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "health" + "functions" ], - "description": "Check the Appwrite local storage device is up and connection is successful.", + "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": "Health Status", + "description": "Executions List", "schema": { - "$ref": "#\/definitions\/healthStatus" + "$ref": "#\/definitions\/executionList" } } }, "deprecated": false, "x-appwrite": { - "method": "getStorageLocal", - "group": "storage", - "weight": 457, + "method": "listExecutions", + "group": "executions", + "weight": 493, "cookies": false, "type": "", - "demo": "health\/get-storage-local.md", + "demo": "functions\/list-executions.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", + "scope": "execution.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-storage-local.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } - ] - } - }, - "\/health\/time": { - "get": { - "summary": "Get time", - "operationId": "healthGetTime", - "consumes": [], - "produces": [ - "application\/json" - ], - "tags": [ - "health" ], - "description": "Check the Appwrite server time is synced with Google remote NTP server. We use this technology to smoothly handle leap seconds with no disruptive events. The [Network Time Protocol](https:\/\/en.wikipedia.org\/wiki\/Network_Time_Protocol) (NTP) is used by hundreds of millions of computers and devices to synchronize their clocks over the Internet. If your computer sets its own clock, it likely uses NTP.", - "responses": { - "200": { - "description": "Health Time", - "schema": { - "$ref": "#\/definitions\/healthTime" - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "getTime", - "group": "health", - "weight": 455, - "cookies": false, - "type": "", - "demo": "health\/get-time.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "health.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-time.md", - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ + "parameters": [ { - "Project": [], - "Key": [] + "name": "functionId", + "description": "Function ID.", + "required": true, + "type": "string", + "x-example": "<FUNCTION_ID>", + "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, + "type": "array", + "collectionFormat": "multi", + "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, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" } ] - } - }, - "\/locale": { - "get": { - "summary": "Get user locale", - "operationId": "localeGet", - "consumes": [], - "produces": [ + }, + "post": { + "summary": "Create execution", + "operationId": "functionsCreateExecution", + "consumes": [ "application\/json" ], + "produces": [ + "multipart\/form-data" + ], "tags": [ - "locale" + "functions" ], - "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))", + "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": { - "200": { - "description": "Locale", + "201": { + "description": "Execution", "schema": { - "$ref": "#\/definitions\/locale" + "$ref": "#\/definitions\/execution" } } }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": null, - "weight": 49, + "method": "createExecution", + "group": "executions", + "weight": 491, "cookies": false, "type": "", - "demo": "locale\/get.md", + "demo": "functions\/create-execution.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "scope": "execution.write", "platforms": [ "console", "client", @@ -18773,7 +19232,6 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-locale.md", "auth": { "Project": [], "Session": [] @@ -18786,41 +19244,108 @@ "Key": [], "JWT": [] } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "type": "string", + "x-example": "<FUNCTION_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "body": { + "type": "string", + "description": "HTTP body of execution. Default value is empty string.", + "default": "", + "x-example": "<BODY>" + }, + "async": { + "type": "boolean", + "description": "Execute code in the background. Default value is false.", + "default": false, + "x-example": false + }, + "path": { + "type": "string", + "description": "HTTP path of execution. Path can include query params. Default value is \/", + "default": "\/", + "x-example": "<PATH>" + }, + "method": { + "type": "string", + "description": "HTTP method of execution. Default value is POST.", + "default": "POST", + "x-example": "GET", + "enum": [ + "GET", + "POST", + "PUT", + "PATCH", + "DELETE", + "OPTIONS", + "HEAD" + ], + "x-enum-name": "ExecutionMethod", + "x-enum-keys": [] + }, + "headers": { + "type": "object", + "description": "HTTP headers of execution. Defaults to empty.", + "default": [], + "x-example": "{}" + }, + "scheduledAt": { + "type": "string", + "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.", + "default": null, + "x-example": "<SCHEDULED_AT>", + "x-nullable": true + } + } + } + } ] } }, - "\/locale\/codes": { + "\/functions\/{functionId}\/executions\/{executionId}": { "get": { - "summary": "List locale codes", - "operationId": "localeListCodes", + "summary": "Get execution", + "operationId": "functionsGetExecution", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "locale" + "functions" ], - "description": "List of all locale codes in [ISO 639-1](https:\/\/en.wikipedia.org\/wiki\/List_of_ISO_639-1_codes).", + "description": "Get a function execution log by its unique ID.", "responses": { "200": { - "description": "Locale codes list", + "description": "Execution", "schema": { - "$ref": "#\/definitions\/localeCodeList" + "$ref": "#\/definitions\/execution" } } }, "deprecated": false, "x-appwrite": { - "method": "listCodes", - "group": null, - "weight": 50, + "method": "getExecution", + "group": "executions", + "weight": 492, "cookies": false, "type": "", - "demo": "locale\/list-codes.md", + "demo": "functions\/get-execution.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "scope": "execution.read", "platforms": [ "console", "client", @@ -18828,7 +19353,6 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-locale-codes.md", "auth": { "Project": [], "Session": [] @@ -18841,378 +19365,447 @@ "Key": [], "JWT": [] } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "type": "string", + "x-example": "<FUNCTION_ID>", + "in": "path" + }, + { + "name": "executionId", + "description": "Execution ID.", + "required": true, + "type": "string", + "x-example": "<EXECUTION_ID>", + "in": "path" + } ] - } - }, - "\/locale\/continents": { - "get": { - "summary": "List continents", - "operationId": "localeListContinents", - "consumes": [], - "produces": [ + }, + "delete": { + "summary": "Delete execution", + "operationId": "functionsDeleteExecution", + "consumes": [ "application\/json" ], + "produces": [], "tags": [ - "locale" + "functions" ], - "description": "List of all continents. You can use the locale header to get the data in a supported language.", + "description": "Delete a function execution by its unique ID.", "responses": { - "200": { - "description": "Continents List", - "schema": { - "$ref": "#\/definitions\/continentList" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "listContinents", - "group": null, - "weight": 54, + "method": "deleteExecution", + "group": "executions", + "weight": 494, "cookies": false, "type": "", - "demo": "locale\/list-continents.md", + "demo": "functions\/delete-execution.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "scope": "execution.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-continents.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function ID.", + "required": true, + "type": "string", + "x-example": "<FUNCTION_ID>", + "in": "path" + }, + { + "name": "executionId", + "description": "Execution ID.", + "required": true, + "type": "string", + "x-example": "<EXECUTION_ID>", + "in": "path" } ] } }, - "\/locale\/countries": { + "\/functions\/{functionId}\/variables": { "get": { - "summary": "List countries", - "operationId": "localeListCountries", + "summary": "List variables", + "operationId": "functionsListVariables", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "locale" + "functions" ], - "description": "List of all countries. You can use the locale header to get the data in a supported language.", + "description": "Get a list of all variables of a specific function.", "responses": { "200": { - "description": "Countries List", + "description": "Variables List", "schema": { - "$ref": "#\/definitions\/countryList" + "$ref": "#\/definitions\/variableList" } } }, "deprecated": false, "x-appwrite": { - "method": "listCountries", - "group": null, - "weight": 51, + "method": "listVariables", + "group": "variables", + "weight": 499, "cookies": false, "type": "", - "demo": "locale\/list-countries.md", + "demo": "functions\/list-variables.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "scope": "functions.read", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function unique ID.", + "required": true, + "type": "string", + "x-example": "<FUNCTION_ID>", + "in": "path" } ] - } - }, - "\/locale\/countries\/eu": { - "get": { - "summary": "List EU countries", - "operationId": "localeListCountriesEU", - "consumes": [], + }, + "post": { + "summary": "Create variable", + "operationId": "functionsCreateVariable", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "locale" + "functions" ], - "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.", + "description": "Create a new function environment variable. These variables can be accessed in the function at runtime as environment variables.", "responses": { - "200": { - "description": "Countries List", + "201": { + "description": "Variable", "schema": { - "$ref": "#\/definitions\/countryList" + "$ref": "#\/definitions\/variable" } } }, "deprecated": false, "x-appwrite": { - "method": "listCountriesEU", - "group": null, - "weight": 52, + "method": "createVariable", + "group": "variables", + "weight": 628, "cookies": false, "type": "", - "demo": "locale\/list-countries-eu.md", + "demo": "functions\/create-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "scope": "functions.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries-eu.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function unique ID.", + "required": true, + "type": "string", + "x-example": "<FUNCTION_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Variable key. Max length: 255 chars.", + "default": null, + "x-example": "<KEY>" + }, + "value": { + "type": "string", + "description": "Variable value. Max length: 8192 chars.", + "default": null, + "x-example": "<VALUE>" + }, + "secret": { + "type": "boolean", + "description": "Secret variables can be updated or deleted, but only functions can read them during build and runtime.", + "default": true, + "x-example": false + } + }, + "required": [ + "key", + "value" + ] + } } ] } }, - "\/locale\/countries\/phones": { + "\/functions\/{functionId}\/variables\/{variableId}": { "get": { - "summary": "List countries phone codes", - "operationId": "localeListCountriesPhones", + "summary": "Get variable", + "operationId": "functionsGetVariable", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "locale" + "functions" ], - "description": "List of all countries phone codes. You can use the locale header to get the data in a supported language.", + "description": "Get a variable by its unique ID.", "responses": { "200": { - "description": "Phones List", + "description": "Variable", "schema": { - "$ref": "#\/definitions\/phoneList" + "$ref": "#\/definitions\/variable" } } }, "deprecated": false, "x-appwrite": { - "method": "listCountriesPhones", - "group": null, - "weight": 53, + "method": "getVariable", + "group": "variables", + "weight": 498, "cookies": false, "type": "", - "demo": "locale\/list-countries-phones.md", + "demo": "functions\/get-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "scope": "functions.read", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries-phones.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] + } + ], + "parameters": [ + { + "name": "functionId", + "description": "Function unique ID.", + "required": true, + "type": "string", + "x-example": "<FUNCTION_ID>", + "in": "path" + }, + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "type": "string", + "x-example": "<VARIABLE_ID>", + "in": "path" } ] - } - }, - "\/locale\/currencies": { - "get": { - "summary": "List currencies", - "operationId": "localeListCurrencies", - "consumes": [], + }, + "put": { + "summary": "Update variable", + "operationId": "functionsUpdateVariable", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "locale" + "functions" ], - "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.", + "description": "Update variable by its unique ID.", "responses": { "200": { - "description": "Currencies List", + "description": "Variable", "schema": { - "$ref": "#\/definitions\/currencyList" + "$ref": "#\/definitions\/variable" } } }, "deprecated": false, "x-appwrite": { - "method": "listCurrencies", - "group": null, - "weight": 55, + "method": "updateVariable", + "group": "variables", + "weight": 500, "cookies": false, "type": "", - "demo": "locale\/list-currencies.md", + "demo": "functions\/update-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "locale.read", + "scope": "functions.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-currencies.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } - ] - } - }, - "\/locale\/languages": { - "get": { - "summary": "List languages", - "operationId": "localeListLanguages", - "consumes": [], - "produces": [ - "application\/json" - ], - "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", + "parameters": [ + { + "name": "functionId", + "description": "Function unique ID.", + "required": true, + "type": "string", + "x-example": "<FUNCTION_ID>", + "in": "path" + }, + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "type": "string", + "x-example": "<VARIABLE_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", "schema": { - "$ref": "#\/definitions\/languageList" + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Variable key. Max length: 255 chars.", + "default": null, + "x-example": "<KEY>" + }, + "value": { + "type": "string", + "description": "Variable value. Max length: 8192 chars.", + "default": null, + "x-example": "<VALUE>", + "x-nullable": true + }, + "secret": { + "type": "boolean", + "description": "Secret variables can be updated or deleted, but only functions can read them during build and runtime.", + "default": null, + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "key" + ] } } - }, - "deprecated": false, - "x-appwrite": { - "method": "listLanguages", - "group": null, - "weight": 56, - "cookies": false, - "type": "", - "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, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-languages.md", - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } ] - } - }, - "\/messaging\/messages": { - "get": { - "summary": "List messages", - "operationId": "messagingListMessages", - "consumes": [], - "produces": [ + }, + "delete": { + "summary": "Delete variable", + "operationId": "functionsDeleteVariable", + "consumes": [ "application\/json" ], + "produces": [], "tags": [ - "messaging" + "functions" ], - "description": "Get a list of all messages from the current Appwrite project.", + "description": "Delete a variable by its unique ID.", "responses": { - "200": { - "description": "Message list", - "schema": { - "$ref": "#\/definitions\/messageList" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "listMessages", - "group": "messages", - "weight": 231, + "method": "deleteVariable", + "group": "variables", + "weight": 501, "cookies": false, "type": "", - "demo": "messaging\/list-messages.md", + "demo": "functions\/delete-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.read", + "scope": "functions.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-messages.md", "auth": { "Project": [], "Key": [] @@ -19226,42 +19819,28 @@ ], "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: scheduledAt, deliveredAt, deliveredTotal, status, description, providerType", - "required": false, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, + "name": "functionId", + "description": "Function unique ID.", + "required": true, "type": "string", - "x-example": "<SEARCH>", - "default": "", - "in": "query" + "x-example": "<FUNCTION_ID>", + "in": "path" }, { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "type": "string", + "x-example": "<VARIABLE_ID>", + "in": "path" } ] } }, - "\/messaging\/messages\/email": { + "\/graphql": { "post": { - "summary": "Create email", - "operationId": "messagingCreateEmail", + "summary": "GraphQL endpoint", + "operationId": "graphqlQuery", "consumes": [ "application\/json" ], @@ -19269,36 +19848,37 @@ "application\/json" ], "tags": [ - "messaging" + "graphql" ], - "description": "Create a new email message.", + "description": "Execute a GraphQL mutation.", "responses": { - "201": { - "description": "Message", + "200": { + "description": "Any", "schema": { - "$ref": "#\/definitions\/message" + "$ref": "#\/definitions\/any" } } }, "deprecated": false, "x-appwrite": { - "method": "createEmail", - "group": "messages", - "weight": 228, + "method": "query", + "group": "graphql", + "weight": 160, "cookies": false, - "type": "", - "demo": "messaging\/create-email.md", - "rate-limit": 0, - "rate-time": 3600, + "type": "graphql", + "demo": "graphql\/query.md", + "rate-limit": 60, + "rate-time": 60, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", + "scope": "graphql", "platforms": [ "console", - "server" + "server", + "client" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-email.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/graphql\/post.md", "auth": { "Project": [], "Key": [] @@ -19307,7 +19887,9 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "Session": [], + "JWT": [] } ], "parameters": [ @@ -19317,112 +19899,25 @@ "schema": { "type": "object", "properties": { - "messageId": { - "type": "string", - "description": "Message ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": null, - "x-example": "<MESSAGE_ID>" - }, - "subject": { - "type": "string", - "description": "Email Subject.", - "default": null, - "x-example": "<SUBJECT>" - }, - "content": { - "type": "string", - "description": "Email Content.", - "default": null, - "x-example": "<CONTENT>" - }, - "topics": { - "type": "array", - "description": "List of Topic IDs.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "users": { - "type": "array", - "description": "List of User IDs.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "targets": { - "type": "array", - "description": "List of Targets IDs.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "cc": { - "type": "array", - "description": "Array of target IDs to be added as CC.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "bcc": { - "type": "array", - "description": "Array of target IDs to be added as BCC.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "attachments": { - "type": "array", - "description": "Array of compound ID strings of bucket IDs and file IDs to be attached to the email. They should be formatted as <BUCKET_ID>:<FILE_ID>.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "draft": { - "type": "boolean", - "description": "Is message a draft", - "default": false, - "x-example": false - }, - "html": { - "type": "boolean", - "description": "Is content of type HTML", - "default": false, - "x-example": false - }, - "scheduledAt": { - "type": "string", - "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", - "default": null, - "x-example": null, - "x-nullable": true + "query": { + "type": "object", + "description": "The query or queries to execute.", + "default": {}, + "x-example": "{}" } }, "required": [ - "messageId", - "subject", - "content" + "query" ] } } ] } }, - "\/messaging\/messages\/email\/{messageId}": { - "patch": { - "summary": "Update email", - "operationId": "messagingUpdateEmail", + "\/graphql\/mutation": { + "post": { + "summary": "GraphQL endpoint", + "operationId": "graphqlMutation", "consumes": [ "application\/json" ], @@ -19430,36 +19925,37 @@ "application\/json" ], "tags": [ - "messaging" + "graphql" ], - "description": "Update an email message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", + "description": "Execute a GraphQL mutation.", "responses": { "200": { - "description": "Message", + "description": "Any", "schema": { - "$ref": "#\/definitions\/message" + "$ref": "#\/definitions\/any" } } }, "deprecated": false, "x-appwrite": { - "method": "updateEmail", - "group": "messages", - "weight": 235, + "method": "mutation", + "group": "graphql", + "weight": 159, "cookies": false, - "type": "", - "demo": "messaging\/update-email.md", - "rate-limit": 0, - "rate-time": 3600, + "type": "graphql", + "demo": "graphql\/mutation.md", + "rate-limit": 60, + "rate-time": 60, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", + "scope": "graphql", "platforms": [ "console", - "server" + "server", + "client" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-email.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/graphql\/post.md", "auth": { "Project": [], "Key": [] @@ -19468,166 +19964,72 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "Session": [], + "JWT": [] } ], "parameters": [ - { - "name": "messageId", - "description": "Message ID.", - "required": true, - "type": "string", - "x-example": "<MESSAGE_ID>", - "in": "path" - }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "topics": { - "type": "array", - "description": "List of Topic IDs.", - "default": null, - "x-example": null, - "x-nullable": true, - "items": { - "type": "string" - } - }, - "users": { - "type": "array", - "description": "List of User IDs.", - "default": null, - "x-example": null, - "x-nullable": true, - "items": { - "type": "string" - } - }, - "targets": { - "type": "array", - "description": "List of Targets IDs.", - "default": null, - "x-example": null, - "x-nullable": true, - "items": { - "type": "string" - } - }, - "subject": { - "type": "string", - "description": "Email Subject.", - "default": null, - "x-example": "<SUBJECT>", - "x-nullable": true - }, - "content": { - "type": "string", - "description": "Email Content.", - "default": null, - "x-example": "<CONTENT>", - "x-nullable": true - }, - "draft": { - "type": "boolean", - "description": "Is message a draft", - "default": null, - "x-example": false, - "x-nullable": true - }, - "html": { - "type": "boolean", - "description": "Is content of type HTML", - "default": null, - "x-example": false, - "x-nullable": true - }, - "cc": { - "type": "array", - "description": "Array of target IDs to be added as CC.", - "default": null, - "x-example": null, - "x-nullable": true, - "items": { - "type": "string" - } - }, - "bcc": { - "type": "array", - "description": "Array of target IDs to be added as BCC.", - "default": null, - "x-example": null, - "x-nullable": true, - "items": { - "type": "string" - } - }, - "scheduledAt": { - "type": "string", - "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", - "default": null, - "x-example": null, - "x-nullable": true - }, - "attachments": { - "type": "array", - "description": "Array of compound ID strings of bucket IDs and file IDs to be attached to the email. They should be formatted as <BUCKET_ID>:<FILE_ID>.", - "default": null, - "x-example": null, - "x-nullable": true, - "items": { - "type": "string" - } + "query": { + "type": "object", + "description": "The query or queries to execute.", + "default": {}, + "x-example": "{}" } - } + }, + "required": [ + "query" + ] } } ] } }, - "\/messaging\/messages\/push": { - "post": { - "summary": "Create push notification", - "operationId": "messagingCreatePush", - "consumes": [ - "application\/json" - ], + "\/health": { + "get": { + "summary": "Get HTTP", + "operationId": "healthGet", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "health" ], - "description": "Create a new push notification.", + "description": "Check the Appwrite HTTP server is up and responsive.", "responses": { - "201": { - "description": "Message", + "200": { + "description": "Health Status", "schema": { - "$ref": "#\/definitions\/message" + "$ref": "#\/definitions\/healthStatus" } } }, "deprecated": false, "x-appwrite": { - "method": "createPush", - "group": "messages", - "weight": 230, + "method": "get", + "group": "health", + "weight": 504, "cookies": false, "type": "", - "demo": "messaging\/create-push.md", + "demo": "health\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", + "scope": "health.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-push.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get.md", "auth": { "Project": [], "Key": [] @@ -19638,159 +20040,4597 @@ "Project": [], "Key": [] } + ] + } + }, + "\/health\/anti-virus": { + "get": { + "summary": "Get antivirus", + "operationId": "healthGetAntivirus", + "consumes": [], + "produces": [ + "application\/json" ], - "parameters": [ - { - "name": "payload", - "in": "body", + "tags": [ + "health" + ], + "description": "Check the Appwrite Antivirus server is up and connection is successful.", + "responses": { + "200": { + "description": "Health Antivirus", + "schema": { + "$ref": "#\/definitions\/healthAntivirus" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getAntivirus", + "group": "health", + "weight": 513, + "cookies": false, + "type": "", + "demo": "health\/get-antivirus.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-storage-anti-virus.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ] + } + }, + "\/health\/cache": { + "get": { + "summary": "Get cache", + "operationId": "healthGetCache", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "health" + ], + "description": "Check the Appwrite in-memory cache servers are up and connection is successful.", + "responses": { + "200": { + "description": "Status List", + "schema": { + "$ref": "#\/definitions\/healthStatusList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getCache", + "group": "health", + "weight": 507, + "cookies": false, + "type": "", + "demo": "health\/get-cache.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-cache.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ] + } + }, + "\/health\/certificate": { + "get": { + "summary": "Get the SSL certificate for a domain", + "operationId": "healthGetCertificate", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "health" + ], + "description": "Get the SSL certificate for a domain", + "responses": { + "200": { + "description": "Health Certificate", + "schema": { + "$ref": "#\/definitions\/healthCertificate" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getCertificate", + "group": "health", + "weight": 510, + "cookies": false, + "type": "", + "demo": "health\/get-certificate.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-certificate.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "domain", + "description": "string", + "required": false, + "type": "string", + "in": "query" + } + ] + } + }, + "\/health\/console-pausing": { + "get": { + "summary": "Get console pausing health", + "operationId": "healthGetConsolePausing", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "health" + ], + "description": "Get console pausing health status. Monitors projects approaching the pause threshold to detect potential issues with console access tracking.\n", + "responses": { + "200": { + "description": "Health Status", + "schema": { + "$ref": "#\/definitions\/healthStatus" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getConsolePausing", + "group": null, + "weight": 756, + "cookies": false, + "type": "", + "demo": "health\/get-console-pausing.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-console-pausing.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "threshold", + "description": "Percentage threshold of projects approaching pause. When hit (equal or higher), endpoint returns server error. Default value is 10.", + "required": false, + "type": "integer", + "format": "int32", + "default": 10, + "in": "query" + }, + { + "name": "inactivityDays", + "description": "Number of days of inactivity before a project is paused. Should match the plan's projectInactivityDays setting. Default value is 7.", + "required": false, + "type": "integer", + "format": "int32", + "default": 7, + "in": "query" + } + ] + } + }, + "\/health\/db": { + "get": { + "summary": "Get DB", + "operationId": "healthGetDB", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "health" + ], + "description": "Check the Appwrite database servers are up and connection is successful.", + "responses": { + "200": { + "description": "Status List", + "schema": { + "$ref": "#\/definitions\/healthStatusList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getDB", + "group": "health", + "weight": 506, + "cookies": false, + "type": "", + "demo": "health\/get-db.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-db.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ] + } + }, + "\/health\/pubsub": { + "get": { + "summary": "Get pubsub", + "operationId": "healthGetPubSub", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "health" + ], + "description": "Check the Appwrite pub-sub servers are up and connection is successful.", + "responses": { + "200": { + "description": "Status List", + "schema": { + "$ref": "#\/definitions\/healthStatusList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getPubSub", + "group": "health", + "weight": 508, + "cookies": false, + "type": "", + "demo": "health\/get-pub-sub.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-pubsub.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ] + } + }, + "\/health\/queue\/audits": { + "get": { + "summary": "Get audits queue", + "operationId": "healthGetQueueAudits", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "health" + ], + "description": "Get the number of audit logs that are waiting to be processed in the Appwrite internal queue server.", + "responses": { + "200": { + "description": "Health Queue", + "schema": { + "$ref": "#\/definitions\/healthQueue" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getQueueAudits", + "group": "queue", + "weight": 514, + "cookies": false, + "type": "", + "demo": "health\/get-queue-audits.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-audits.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "type": "integer", + "format": "int32", + "default": 5000, + "in": "query" + } + ] + } + }, + "\/health\/queue\/billing-project-aggregation": { + "get": { + "summary": "Get billing project aggregation queue", + "operationId": "healthGetQueueBillingProjectAggregation", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "health" + ], + "description": "Get billing project aggregation queue.", + "responses": { + "200": { + "description": "Health Queue", + "schema": { + "$ref": "#\/definitions\/healthQueue" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getQueueBillingProjectAggregation", + "group": null, + "weight": 752, + "cookies": false, + "type": "", + "demo": "health\/get-queue-billing-project-aggregation.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-billing-project-aggregation.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "type": "integer", + "format": "int32", + "default": 10000, + "in": "query" + } + ] + } + }, + "\/health\/queue\/billing-team-aggregation": { + "get": { + "summary": "Get billing team aggregation queue", + "operationId": "healthGetQueueBillingTeamAggregation", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "health" + ], + "description": "Get billing team aggregation queue.", + "responses": { + "200": { + "description": "Health Queue", + "schema": { + "$ref": "#\/definitions\/healthQueue" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getQueueBillingTeamAggregation", + "group": null, + "weight": 751, + "cookies": false, + "type": "", + "demo": "health\/get-queue-billing-team-aggregation.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-billing-team-aggregation.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "type": "integer", + "format": "int32", + "default": 10000, + "in": "query" + } + ] + } + }, + "\/health\/queue\/builds": { + "get": { + "summary": "Get builds queue", + "operationId": "healthGetQueueBuilds", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "health" + ], + "description": "Get the number of builds that are waiting to be processed in the Appwrite internal queue server.", + "responses": { + "200": { + "description": "Health Queue", + "schema": { + "$ref": "#\/definitions\/healthQueue" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getQueueBuilds", + "group": "queue", + "weight": 518, + "cookies": false, + "type": "", + "demo": "health\/get-queue-builds.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-builds.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "type": "integer", + "format": "int32", + "default": 5000, + "in": "query" + } + ] + } + }, + "\/health\/queue\/builds-priority": { + "get": { + "summary": "Get billing aggregation queue", + "operationId": "healthGetQueuePriorityBuilds", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "health" + ], + "description": "Get the priority builds queue size.", + "responses": { + "200": { + "description": "Health Queue", + "schema": { + "$ref": "#\/definitions\/healthQueue" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getQueuePriorityBuilds", + "group": null, + "weight": 753, + "cookies": false, + "type": "", + "demo": "health\/get-queue-priority-builds.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-priority-builds.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 500.", + "required": false, + "type": "integer", + "format": "int32", + "default": 500, + "in": "query" + } + ] + } + }, + "\/health\/queue\/certificates": { + "get": { + "summary": "Get certificates queue", + "operationId": "healthGetQueueCertificates", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "health" + ], + "description": "Get the number of certificates that are waiting to be issued against [Letsencrypt](https:\/\/letsencrypt.org\/) in the Appwrite internal queue server.", + "responses": { + "200": { + "description": "Health Queue", + "schema": { + "$ref": "#\/definitions\/healthQueue" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getQueueCertificates", + "group": "queue", + "weight": 517, + "cookies": false, + "type": "", + "demo": "health\/get-queue-certificates.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-certificates.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "type": "integer", + "format": "int32", + "default": 5000, + "in": "query" + } + ] + } + }, + "\/health\/queue\/databases": { + "get": { + "summary": "Get databases queue", + "operationId": "healthGetQueueDatabases", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "health" + ], + "description": "Get the number of database changes that are waiting to be processed in the Appwrite internal queue server.", + "responses": { + "200": { + "description": "Health Queue", + "schema": { + "$ref": "#\/definitions\/healthQueue" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getQueueDatabases", + "group": "queue", + "weight": 519, + "cookies": false, + "type": "", + "demo": "health\/get-queue-databases.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-databases.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "name", + "description": "Queue name for which to check the queue size", + "required": false, + "type": "string", + "x-example": "<NAME>", + "default": "database_db_main", + "in": "query" + }, + { + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "type": "integer", + "format": "int32", + "default": 5000, + "in": "query" + } + ] + } + }, + "\/health\/queue\/deletes": { + "get": { + "summary": "Get deletes queue", + "operationId": "healthGetQueueDeletes", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "health" + ], + "description": "Get the number of background destructive changes that are waiting to be processed in the Appwrite internal queue server.", + "responses": { + "200": { + "description": "Health Queue", + "schema": { + "$ref": "#\/definitions\/healthQueue" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getQueueDeletes", + "group": "queue", + "weight": 520, + "cookies": false, + "type": "", + "demo": "health\/get-queue-deletes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-deletes.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "type": "integer", + "format": "int32", + "default": 5000, + "in": "query" + } + ] + } + }, + "\/health\/queue\/failed\/{name}": { + "get": { + "summary": "Get number of failed queue jobs", + "operationId": "healthGetFailedJobs", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "health" + ], + "description": "Returns the amount of failed jobs in a given queue.\n", + "responses": { + "200": { + "description": "Health Queue", + "schema": { + "$ref": "#\/definitions\/healthQueue" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getFailedJobs", + "group": "queue", + "weight": 527, + "cookies": false, + "type": "", + "demo": "health\/get-failed-jobs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-failed-queue-jobs.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "name", + "description": "The name of the queue", + "required": true, + "type": "string", + "x-example": "v1-database", + "enum": [ + "v1-database", + "v1-deletes", + "v1-audits", + "v1-mails", + "v1-functions", + "v1-stats-resources", + "v1-stats-usage", + "v1-webhooks", + "v1-certificates", + "v1-builds", + "v1-screenshots", + "v1-messaging", + "v1-migrations" + ], + "x-enum-name": null, + "x-enum-keys": [], + "in": "path" + }, + { + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "type": "integer", + "format": "int32", + "default": 5000, + "in": "query" + } + ] + } + }, + "\/health\/queue\/functions": { + "get": { + "summary": "Get functions queue", + "operationId": "healthGetQueueFunctions", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "health" + ], + "description": "Get the number of function executions that are waiting to be processed in the Appwrite internal queue server.", + "responses": { + "200": { + "description": "Health Queue", + "schema": { + "$ref": "#\/definitions\/healthQueue" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getQueueFunctions", + "group": "queue", + "weight": 524, + "cookies": false, + "type": "", + "demo": "health\/get-queue-functions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-functions.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "type": "integer", + "format": "int32", + "default": 5000, + "in": "query" + } + ] + } + }, + "\/health\/queue\/logs": { + "get": { + "summary": "Get logs queue", + "operationId": "healthGetQueueLogs", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "health" + ], + "description": "Get the number of logs that are waiting to be processed in the Appwrite internal queue server.", + "responses": { + "200": { + "description": "Health Queue", + "schema": { + "$ref": "#\/definitions\/healthQueue" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getQueueLogs", + "group": "queue", + "weight": 516, + "cookies": false, + "type": "", + "demo": "health\/get-queue-logs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-logs.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "type": "integer", + "format": "int32", + "default": 5000, + "in": "query" + } + ] + } + }, + "\/health\/queue\/mails": { + "get": { + "summary": "Get mails queue", + "operationId": "healthGetQueueMails", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "health" + ], + "description": "Get the number of mails that are waiting to be processed in the Appwrite internal queue server.", + "responses": { + "200": { + "description": "Health Queue", + "schema": { + "$ref": "#\/definitions\/healthQueue" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getQueueMails", + "group": "queue", + "weight": 521, + "cookies": false, + "type": "", + "demo": "health\/get-queue-mails.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-mails.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "type": "integer", + "format": "int32", + "default": 5000, + "in": "query" + } + ] + } + }, + "\/health\/queue\/messaging": { + "get": { + "summary": "Get messaging queue", + "operationId": "healthGetQueueMessaging", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "health" + ], + "description": "Get the number of messages that are waiting to be processed in the Appwrite internal queue server.", + "responses": { + "200": { + "description": "Health Queue", + "schema": { + "$ref": "#\/definitions\/healthQueue" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getQueueMessaging", + "group": "queue", + "weight": 522, + "cookies": false, + "type": "", + "demo": "health\/get-queue-messaging.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-messaging.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "type": "integer", + "format": "int32", + "default": 5000, + "in": "query" + } + ] + } + }, + "\/health\/queue\/migrations": { + "get": { + "summary": "Get migrations queue", + "operationId": "healthGetQueueMigrations", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "health" + ], + "description": "Get the number of migrations that are waiting to be processed in the Appwrite internal queue server.", + "responses": { + "200": { + "description": "Health Queue", + "schema": { + "$ref": "#\/definitions\/healthQueue" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getQueueMigrations", + "group": "queue", + "weight": 523, + "cookies": false, + "type": "", + "demo": "health\/get-queue-migrations.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-migrations.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "type": "integer", + "format": "int32", + "default": 5000, + "in": "query" + } + ] + } + }, + "\/health\/queue\/region-manager": { + "get": { + "summary": "Get region manager queue", + "operationId": "healthGetQueueRegionManager", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "health" + ], + "description": "Get region manager queue.", + "responses": { + "200": { + "description": "Health Queue", + "schema": { + "$ref": "#\/definitions\/healthQueue" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getQueueRegionManager", + "group": null, + "weight": 754, + "cookies": false, + "type": "", + "demo": "health\/get-queue-region-manager.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-region-manager.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 100.", + "required": false, + "type": "integer", + "format": "int32", + "default": 100, + "in": "query" + } + ] + } + }, + "\/health\/queue\/stats-resources": { + "get": { + "summary": "Get stats resources queue", + "operationId": "healthGetQueueStatsResources", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "health" + ], + "description": "Get the number of metrics that are waiting to be processed in the Appwrite stats resources queue.", + "responses": { + "200": { + "description": "Health Queue", + "schema": { + "$ref": "#\/definitions\/healthQueue" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getQueueStatsResources", + "group": "queue", + "weight": 525, + "cookies": false, + "type": "", + "demo": "health\/get-queue-stats-resources.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-stats-resources.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "type": "integer", + "format": "int32", + "default": 5000, + "in": "query" + } + ] + } + }, + "\/health\/queue\/stats-usage": { + "get": { + "summary": "Get stats usage queue", + "operationId": "healthGetQueueUsage", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "health" + ], + "description": "Get the number of metrics that are waiting to be processed in the Appwrite internal queue server.", + "responses": { + "200": { + "description": "Health Queue", + "schema": { + "$ref": "#\/definitions\/healthQueue" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getQueueUsage", + "group": "queue", + "weight": 526, + "cookies": false, + "type": "", + "demo": "health\/get-queue-usage.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-stats-usage.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "type": "integer", + "format": "int32", + "default": 5000, + "in": "query" + } + ] + } + }, + "\/health\/queue\/threats": { + "get": { + "summary": "Get threats queue", + "operationId": "healthGetQueueThreats", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "health" + ], + "description": "Get threats queue.", + "responses": { + "200": { + "description": "Health Queue", + "schema": { + "$ref": "#\/definitions\/healthQueue" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getQueueThreats", + "group": null, + "weight": 755, + "cookies": false, + "type": "", + "demo": "health\/get-queue-threats.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/health\/get-queue-threats.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 100.", + "required": false, + "type": "integer", + "format": "int32", + "default": 100, + "in": "query" + } + ] + } + }, + "\/health\/queue\/webhooks": { + "get": { + "summary": "Get webhooks queue", + "operationId": "healthGetQueueWebhooks", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "health" + ], + "description": "Get the number of webhooks that are waiting to be processed in the Appwrite internal queue server.", + "responses": { + "200": { + "description": "Health Queue", + "schema": { + "$ref": "#\/definitions\/healthQueue" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getQueueWebhooks", + "group": "queue", + "weight": 515, + "cookies": false, + "type": "", + "demo": "health\/get-queue-webhooks.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-queue-webhooks.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "threshold", + "description": "Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.", + "required": false, + "type": "integer", + "format": "int32", + "default": 5000, + "in": "query" + } + ] + } + }, + "\/health\/storage": { + "get": { + "summary": "Get storage", + "operationId": "healthGetStorage", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "health" + ], + "description": "Check the Appwrite storage device is up and connection is successful.", + "responses": { + "200": { + "description": "Health Status", + "schema": { + "$ref": "#\/definitions\/healthStatus" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getStorage", + "group": "storage", + "weight": 512, + "cookies": false, + "type": "", + "demo": "health\/get-storage.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-storage.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ] + } + }, + "\/health\/storage\/local": { + "get": { + "summary": "Get local storage", + "operationId": "healthGetStorageLocal", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "health" + ], + "description": "Check the Appwrite local storage device is up and connection is successful.", + "responses": { + "200": { + "description": "Health Status", + "schema": { + "$ref": "#\/definitions\/healthStatus" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getStorageLocal", + "group": "storage", + "weight": 511, + "cookies": false, + "type": "", + "demo": "health\/get-storage-local.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-storage-local.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ] + } + }, + "\/health\/time": { + "get": { + "summary": "Get time", + "operationId": "healthGetTime", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "health" + ], + "description": "Check the Appwrite server time is synced with Google remote NTP server. We use this technology to smoothly handle leap seconds with no disruptive events. The [Network Time Protocol](https:\/\/en.wikipedia.org\/wiki\/Network_Time_Protocol) (NTP) is used by hundreds of millions of computers and devices to synchronize their clocks over the Internet. If your computer sets its own clock, it likely uses NTP.", + "responses": { + "200": { + "description": "Health Time", + "schema": { + "$ref": "#\/definitions\/healthTime" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getTime", + "group": "health", + "weight": 509, + "cookies": false, + "type": "", + "demo": "health\/get-time.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "health.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/health\/get-time.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ] + } + }, + "\/locale": { + "get": { + "summary": "Get user locale", + "operationId": "localeGet", + "consumes": [], + "produces": [ + "application\/json" + ], + "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", + "schema": { + "$ref": "#\/definitions\/locale" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "get", + "group": null, + "weight": 49, + "cookies": false, + "type": "", + "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/get-locale.md", + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ] + } + }, + "\/locale\/codes": { + "get": { + "summary": "List locale codes", + "operationId": "localeListCodes", + "consumes": [], + "produces": [ + "application\/json" + ], + "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", + "schema": { + "$ref": "#\/definitions\/localeCodeList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listCodes", + "group": null, + "weight": 50, + "cookies": false, + "type": "", + "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-locale-codes.md", + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ] + } + }, + "\/locale\/continents": { + "get": { + "summary": "List continents", + "operationId": "localeListContinents", + "consumes": [], + "produces": [ + "application\/json" + ], + "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", + "schema": { + "$ref": "#\/definitions\/continentList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listContinents", + "group": null, + "weight": 54, + "cookies": false, + "type": "", + "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-continents.md", + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ] + } + }, + "\/locale\/countries": { + "get": { + "summary": "List countries", + "operationId": "localeListCountries", + "consumes": [], + "produces": [ + "application\/json" + ], + "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", + "schema": { + "$ref": "#\/definitions\/countryList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listCountries", + "group": null, + "weight": 51, + "cookies": false, + "type": "", + "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries.md", + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ] + } + }, + "\/locale\/countries\/eu": { + "get": { + "summary": "List EU countries", + "operationId": "localeListCountriesEU", + "consumes": [], + "produces": [ + "application\/json" + ], + "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", + "schema": { + "$ref": "#\/definitions\/countryList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listCountriesEU", + "group": null, + "weight": 52, + "cookies": false, + "type": "", + "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries-eu.md", + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ] + } + }, + "\/locale\/countries\/phones": { + "get": { + "summary": "List countries phone codes", + "operationId": "localeListCountriesPhones", + "consumes": [], + "produces": [ + "application\/json" + ], + "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", + "schema": { + "$ref": "#\/definitions\/phoneList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listCountriesPhones", + "group": null, + "weight": 53, + "cookies": false, + "type": "", + "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-countries-phones.md", + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ] + } + }, + "\/locale\/currencies": { + "get": { + "summary": "List currencies", + "operationId": "localeListCurrencies", + "consumes": [], + "produces": [ + "application\/json" + ], + "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", + "schema": { + "$ref": "#\/definitions\/currencyList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listCurrencies", + "group": null, + "weight": 55, + "cookies": false, + "type": "", + "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-currencies.md", + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ] + } + }, + "\/locale\/languages": { + "get": { + "summary": "List languages", + "operationId": "localeListLanguages", + "consumes": [], + "produces": [ + "application\/json" + ], + "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", + "schema": { + "$ref": "#\/definitions\/languageList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listLanguages", + "group": null, + "weight": 56, + "cookies": false, + "type": "", + "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, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/locale\/list-languages.md", + "auth": { + "Project": [], + "Session": [] + } + }, + "security": [ + { + "Project": [], + "Session": [], + "Key": [], + "JWT": [] + } + ] + } + }, + "\/messaging\/messages": { + "get": { + "summary": "List messages", + "operationId": "messagingListMessages", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "messaging" + ], + "description": "Get a list of all messages from the current Appwrite project.", + "responses": { + "200": { + "description": "Message list", + "schema": { + "$ref": "#\/definitions\/messageList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listMessages", + "group": "messages", + "weight": 215, + "cookies": false, + "type": "", + "demo": "messaging\/list-messages.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-messages.md", + "auth": { + "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: scheduledAt, deliveredAt, deliveredTotal, status, description, providerType", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "type": "string", + "x-example": "<SEARCH>", + "default": "", + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" + } + ] + } + }, + "\/messaging\/messages\/email": { + "post": { + "summary": "Create email", + "operationId": "messagingCreateEmail", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "messaging" + ], + "description": "Create a new email message.", + "responses": { + "201": { + "description": "Message", + "schema": { + "$ref": "#\/definitions\/message" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createEmail", + "group": "messages", + "weight": 212, + "cookies": false, + "type": "", + "demo": "messaging\/create-email.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-email.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "messageId": { + "type": "string", + "description": "Message ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "default": null, + "x-example": "<MESSAGE_ID>" + }, + "subject": { + "type": "string", + "description": "Email Subject.", + "default": null, + "x-example": "<SUBJECT>" + }, + "content": { + "type": "string", + "description": "Email Content.", + "default": null, + "x-example": "<CONTENT>" + }, + "topics": { + "type": "array", + "description": "List of Topic IDs.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "users": { + "type": "array", + "description": "List of User IDs.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "targets": { + "type": "array", + "description": "List of Targets IDs.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "cc": { + "type": "array", + "description": "Array of target IDs to be added as CC.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "bcc": { + "type": "array", + "description": "Array of target IDs to be added as BCC.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "attachments": { + "type": "array", + "description": "Array of compound ID strings of bucket IDs and file IDs to be attached to the email. They should be formatted as <BUCKET_ID>:<FILE_ID>.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "draft": { + "type": "boolean", + "description": "Is message a draft", + "default": false, + "x-example": false + }, + "html": { + "type": "boolean", + "description": "Is content of type HTML", + "default": false, + "x-example": false + }, + "scheduledAt": { + "type": "string", + "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", + "default": null, + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "messageId", + "subject", + "content" + ] + } + } + ] + } + }, + "\/messaging\/messages\/email\/{messageId}": { + "patch": { + "summary": "Update email", + "operationId": "messagingUpdateEmail", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "messaging" + ], + "description": "Update an email message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", + "responses": { + "200": { + "description": "Message", + "schema": { + "$ref": "#\/definitions\/message" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateEmail", + "group": "messages", + "weight": 219, + "cookies": false, + "type": "", + "demo": "messaging\/update-email.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-email.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "messageId", + "description": "Message ID.", + "required": true, + "type": "string", + "x-example": "<MESSAGE_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "topics": { + "type": "array", + "description": "List of Topic IDs.", + "default": null, + "x-example": null, + "x-nullable": true, + "items": { + "type": "string" + } + }, + "users": { + "type": "array", + "description": "List of User IDs.", + "default": null, + "x-example": null, + "x-nullable": true, + "items": { + "type": "string" + } + }, + "targets": { + "type": "array", + "description": "List of Targets IDs.", + "default": null, + "x-example": null, + "x-nullable": true, + "items": { + "type": "string" + } + }, + "subject": { + "type": "string", + "description": "Email Subject.", + "default": null, + "x-example": "<SUBJECT>", + "x-nullable": true + }, + "content": { + "type": "string", + "description": "Email Content.", + "default": null, + "x-example": "<CONTENT>", + "x-nullable": true + }, + "draft": { + "type": "boolean", + "description": "Is message a draft", + "default": null, + "x-example": false, + "x-nullable": true + }, + "html": { + "type": "boolean", + "description": "Is content of type HTML", + "default": null, + "x-example": false, + "x-nullable": true + }, + "cc": { + "type": "array", + "description": "Array of target IDs to be added as CC.", + "default": null, + "x-example": null, + "x-nullable": true, + "items": { + "type": "string" + } + }, + "bcc": { + "type": "array", + "description": "Array of target IDs to be added as BCC.", + "default": null, + "x-example": null, + "x-nullable": true, + "items": { + "type": "string" + } + }, + "scheduledAt": { + "type": "string", + "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", + "default": null, + "x-example": null, + "x-nullable": true + }, + "attachments": { + "type": "array", + "description": "Array of compound ID strings of bucket IDs and file IDs to be attached to the email. They should be formatted as <BUCKET_ID>:<FILE_ID>.", + "default": null, + "x-example": null, + "x-nullable": true, + "items": { + "type": "string" + } + } + } + } + } + ] + } + }, + "\/messaging\/messages\/push": { + "post": { + "summary": "Create push notification", + "operationId": "messagingCreatePush", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "messaging" + ], + "description": "Create a new push notification.", + "responses": { + "201": { + "description": "Message", + "schema": { + "$ref": "#\/definitions\/message" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createPush", + "group": "messages", + "weight": 214, + "cookies": false, + "type": "", + "demo": "messaging\/create-push.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-push.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "messageId": { + "type": "string", + "description": "Message ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "default": null, + "x-example": "<MESSAGE_ID>" + }, + "title": { + "type": "string", + "description": "Title for push notification.", + "default": "", + "x-example": "<TITLE>" + }, + "body": { + "type": "string", + "description": "Body for push notification.", + "default": "", + "x-example": "<BODY>" + }, + "topics": { + "type": "array", + "description": "List of Topic IDs.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "users": { + "type": "array", + "description": "List of User IDs.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "targets": { + "type": "array", + "description": "List of Targets IDs.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "data": { + "type": "object", + "description": "Additional key-value pair data for push notification.", + "default": {}, + "x-example": "{}", + "x-nullable": true + }, + "action": { + "type": "string", + "description": "Action for push notification.", + "default": "", + "x-example": "<ACTION>" + }, + "image": { + "type": "string", + "description": "Image for push notification. Must be a compound bucket ID to file ID of a jpeg, png, or bmp image in Appwrite Storage. It should be formatted as <BUCKET_ID>:<FILE_ID>.", + "default": "", + "x-example": "<ID1:ID2>" + }, + "icon": { + "type": "string", + "description": "Icon for push notification. Available only for Android and Web Platform.", + "default": "", + "x-example": "<ICON>" + }, + "sound": { + "type": "string", + "description": "Sound for push notification. Available only for Android and iOS Platform.", + "default": "", + "x-example": "<SOUND>" + }, + "color": { + "type": "string", + "description": "Color for push notification. Available only for Android Platform.", + "default": "", + "x-example": "<COLOR>" + }, + "tag": { + "type": "string", + "description": "Tag for push notification. Available only for Android Platform.", + "default": "", + "x-example": "<TAG>" + }, + "badge": { + "type": "integer", + "description": "Badge for push notification. Available only for iOS Platform.", + "default": -1, + "x-example": null, + "format": "int32" + }, + "draft": { + "type": "boolean", + "description": "Is message a draft", + "default": false, + "x-example": false + }, + "scheduledAt": { + "type": "string", + "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", + "default": null, + "x-example": null, + "x-nullable": true + }, + "contentAvailable": { + "type": "boolean", + "description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.", + "default": false, + "x-example": false + }, + "critical": { + "type": "boolean", + "description": "If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.", + "default": false, + "x-example": false + }, + "priority": { + "type": "string", + "description": "Set the notification priority. \"normal\" will consider device state and may not deliver notifications immediately. \"high\" will always attempt to immediately deliver the notification.", + "default": "high", + "x-example": "normal", + "enum": [ + "normal", + "high" + ], + "x-enum-name": "MessagePriority", + "x-enum-keys": [] + } + }, + "required": [ + "messageId" + ] + } + } + ] + } + }, + "\/messaging\/messages\/push\/{messageId}": { + "patch": { + "summary": "Update push notification", + "operationId": "messagingUpdatePush", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "messaging" + ], + "description": "Update a push notification by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", + "responses": { + "200": { + "description": "Message", + "schema": { + "$ref": "#\/definitions\/message" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updatePush", + "group": "messages", + "weight": 221, + "cookies": false, + "type": "", + "demo": "messaging\/update-push.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-push.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "messageId", + "description": "Message ID.", + "required": true, + "type": "string", + "x-example": "<MESSAGE_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "topics": { + "type": "array", + "description": "List of Topic IDs.", + "default": null, + "x-example": null, + "x-nullable": true, + "items": { + "type": "string" + } + }, + "users": { + "type": "array", + "description": "List of User IDs.", + "default": null, + "x-example": null, + "x-nullable": true, + "items": { + "type": "string" + } + }, + "targets": { + "type": "array", + "description": "List of Targets IDs.", + "default": null, + "x-example": null, + "x-nullable": true, + "items": { + "type": "string" + } + }, + "title": { + "type": "string", + "description": "Title for push notification.", + "default": null, + "x-example": "<TITLE>", + "x-nullable": true + }, + "body": { + "type": "string", + "description": "Body for push notification.", + "default": null, + "x-example": "<BODY>", + "x-nullable": true + }, + "data": { + "type": "object", + "description": "Additional Data for push notification.", + "default": {}, + "x-example": "{}", + "x-nullable": true + }, + "action": { + "type": "string", + "description": "Action for push notification.", + "default": null, + "x-example": "<ACTION>", + "x-nullable": true + }, + "image": { + "type": "string", + "description": "Image for push notification. Must be a compound bucket ID to file ID of a jpeg, png, or bmp image in Appwrite Storage. It should be formatted as <BUCKET_ID>:<FILE_ID>.", + "default": null, + "x-example": "<ID1:ID2>", + "x-nullable": true + }, + "icon": { + "type": "string", + "description": "Icon for push notification. Available only for Android and Web platforms.", + "default": null, + "x-example": "<ICON>", + "x-nullable": true + }, + "sound": { + "type": "string", + "description": "Sound for push notification. Available only for Android and iOS platforms.", + "default": null, + "x-example": "<SOUND>", + "x-nullable": true + }, + "color": { + "type": "string", + "description": "Color for push notification. Available only for Android platforms.", + "default": null, + "x-example": "<COLOR>", + "x-nullable": true + }, + "tag": { + "type": "string", + "description": "Tag for push notification. Available only for Android platforms.", + "default": null, + "x-example": "<TAG>", + "x-nullable": true + }, + "badge": { + "type": "integer", + "description": "Badge for push notification. Available only for iOS platforms.", + "default": null, + "x-example": null, + "format": "int32", + "x-nullable": true + }, + "draft": { + "type": "boolean", + "description": "Is message a draft", + "default": null, + "x-example": false, + "x-nullable": true + }, + "scheduledAt": { + "type": "string", + "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", + "default": null, + "x-example": null, + "x-nullable": true + }, + "contentAvailable": { + "type": "boolean", + "description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.", + "default": null, + "x-example": false, + "x-nullable": true + }, + "critical": { + "type": "boolean", + "description": "If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.", + "default": null, + "x-example": false, + "x-nullable": true + }, + "priority": { + "type": "string", + "description": "Set the notification priority. \"normal\" will consider device battery state and may send notifications later. \"high\" will always attempt to immediately deliver the notification.", + "default": null, + "x-example": "normal", + "enum": [ + "normal", + "high" + ], + "x-enum-name": "MessagePriority", + "x-enum-keys": [], + "x-nullable": true + } + } + } + } + ] + } + }, + "\/messaging\/messages\/sms": { + "post": { + "summary": "Create SMS", + "operationId": "messagingCreateSms", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "messaging" + ], + "description": "Create a new SMS message.", + "responses": { + "201": { + "description": "Message", + "schema": { + "$ref": "#\/definitions\/message" + } + } + }, + "deprecated": true, + "x-appwrite": { + "method": "createSms", + "group": "messages", + "weight": 213, + "cookies": false, + "type": "", + "demo": "messaging\/create-sms.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-sms.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createSMS" + }, + "methods": [ + { + "name": "createSms", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "messageId", + "content", + "topics", + "users", + "targets", + "draft", + "scheduledAt" + ], + "required": [ + "messageId", + "content" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/message" + } + ], + "description": "Create a new SMS message.", + "demo": "messaging\/create-sms.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createSMS" + } + }, + { + "name": "createSMS", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "messageId", + "content", + "topics", + "users", + "targets", + "draft", + "scheduledAt" + ], + "required": [ + "messageId", + "content" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/message" + } + ], + "description": "Create a new SMS message.", + "demo": "messaging\/create-sms.md", + "public": true + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "messageId": { + "type": "string", + "description": "Message ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "default": null, + "x-example": "<MESSAGE_ID>" + }, + "content": { + "type": "string", + "description": "SMS Content.", + "default": null, + "x-example": "<CONTENT>" + }, + "topics": { + "type": "array", + "description": "List of Topic IDs.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "users": { + "type": "array", + "description": "List of User IDs.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "targets": { + "type": "array", + "description": "List of Targets IDs.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "draft": { + "type": "boolean", + "description": "Is message a draft", + "default": false, + "x-example": false + }, + "scheduledAt": { + "type": "string", + "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", + "default": null, + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "messageId", + "content" + ] + } + } + ] + } + }, + "\/messaging\/messages\/sms\/{messageId}": { + "patch": { + "summary": "Update SMS", + "operationId": "messagingUpdateSms", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "messaging" + ], + "description": "Update an SMS message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", + "responses": { + "200": { + "description": "Message", + "schema": { + "$ref": "#\/definitions\/message" + } + } + }, + "deprecated": true, + "x-appwrite": { + "method": "updateSms", + "group": "messages", + "weight": 220, + "cookies": false, + "type": "", + "demo": "messaging\/update-sms.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-sms.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateSMS" + }, + "methods": [ + { + "name": "updateSms", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "messageId", + "topics", + "users", + "targets", + "content", + "draft", + "scheduledAt" + ], + "required": [ + "messageId" + ], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/message" + } + ], + "description": "Update an SMS message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", + "demo": "messaging\/update-sms.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateSMS" + } + }, + { + "name": "updateSMS", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "messageId", + "topics", + "users", + "targets", + "content", + "draft", + "scheduledAt" + ], + "required": [ + "messageId" + ], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/message" + } + ], + "description": "Update an SMS message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", + "demo": "messaging\/update-sms.md", + "public": true + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "messageId", + "description": "Message ID.", + "required": true, + "type": "string", + "x-example": "<MESSAGE_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "topics": { + "type": "array", + "description": "List of Topic IDs.", + "default": null, + "x-example": null, + "x-nullable": true, + "items": { + "type": "string" + } + }, + "users": { + "type": "array", + "description": "List of User IDs.", + "default": null, + "x-example": null, + "x-nullable": true, + "items": { + "type": "string" + } + }, + "targets": { + "type": "array", + "description": "List of Targets IDs.", + "default": null, + "x-example": null, + "x-nullable": true, + "items": { + "type": "string" + } + }, + "content": { + "type": "string", + "description": "Email Content.", + "default": null, + "x-example": "<CONTENT>", + "x-nullable": true + }, + "draft": { + "type": "boolean", + "description": "Is message a draft", + "default": null, + "x-example": false, + "x-nullable": true + }, + "scheduledAt": { + "type": "string", + "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", + "default": null, + "x-example": null, + "x-nullable": true + } + } + } + } + ] + } + }, + "\/messaging\/messages\/{messageId}": { + "get": { + "summary": "Get message", + "operationId": "messagingGetMessage", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "messaging" + ], + "description": "Get a message by its unique ID.\n", + "responses": { + "200": { + "description": "Message", + "schema": { + "$ref": "#\/definitions\/message" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getMessage", + "group": "messages", + "weight": 218, + "cookies": false, + "type": "", + "demo": "messaging\/get-message.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/get-message.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "messageId", + "description": "Message ID.", + "required": true, + "type": "string", + "x-example": "<MESSAGE_ID>", + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete message", + "operationId": "messagingDelete", + "consumes": [ + "application\/json" + ], + "produces": [], + "tags": [ + "messaging" + ], + "description": "Delete a message. If the message is not a draft or scheduled, but has been sent, this will not recall the message.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "delete", + "group": "messages", + "weight": 222, + "cookies": false, + "type": "", + "demo": "messaging\/delete.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-message.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "messageId", + "description": "Message ID.", + "required": true, + "type": "string", + "x-example": "<MESSAGE_ID>", + "in": "path" + } + ] + } + }, + "\/messaging\/messages\/{messageId}\/logs": { + "get": { + "summary": "List message logs", + "operationId": "messagingListMessageLogs", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "messaging" + ], + "description": "Get the message activity logs listed by its unique ID.", + "responses": { + "200": { + "description": "Logs List", + "schema": { + "$ref": "#\/definitions\/logList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listMessageLogs", + "group": "logs", + "weight": 216, + "cookies": false, + "type": "", + "demo": "messaging\/list-message-logs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-message-logs.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "messageId", + "description": "Message ID.", + "required": true, + "type": "string", + "x-example": "<MESSAGE_ID>", + "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). Only supported methods are limit and offset", + "required": false, + "type": "array", + "collectionFormat": "multi", + "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, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" + } + ] + } + }, + "\/messaging\/messages\/{messageId}\/targets": { + "get": { + "summary": "List message targets", + "operationId": "messagingListTargets", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "messaging" + ], + "description": "Get a list of the targets associated with a message.", + "responses": { + "200": { + "description": "Target list", + "schema": { + "$ref": "#\/definitions\/targetList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listTargets", + "group": "messages", + "weight": 217, + "cookies": false, + "type": "", + "demo": "messaging\/list-targets.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "messages.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-message-targets.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "messageId", + "description": "Message ID.", + "required": true, + "type": "string", + "x-example": "<MESSAGE_ID>", + "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: userId, providerId, identifier, providerType", + "required": false, + "type": "array", + "collectionFormat": "multi", + "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, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" + } + ] + } + }, + "\/messaging\/providers": { + "get": { + "summary": "List providers", + "operationId": "messagingListProviders", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "messaging" + ], + "description": "Get a list of all providers from the current Appwrite project.", + "responses": { + "200": { + "description": "Provider list", + "schema": { + "$ref": "#\/definitions\/providerList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listProviders", + "group": "providers", + "weight": 186, + "cookies": false, + "type": "", + "demo": "messaging\/list-providers.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-providers.md", + "auth": { + "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, provider, type, enabled", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "type": "string", + "x-example": "<SEARCH>", + "default": "", + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" + } + ] + } + }, + "\/messaging\/providers\/apns": { + "post": { + "summary": "Create APNS provider", + "operationId": "messagingCreateApnsProvider", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "messaging" + ], + "description": "Create a new Apple Push Notification service provider.", + "responses": { + "201": { + "description": "Provider", + "schema": { + "$ref": "#\/definitions\/provider" + } + } + }, + "deprecated": true, + "x-appwrite": { + "method": "createApnsProvider", + "group": "providers", + "weight": 185, + "cookies": false, + "type": "", + "demo": "messaging\/create-apns-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-apns-provider.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createAPNSProvider" + }, + "methods": [ + { + "name": "createApnsProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "authKey", + "authKeyId", + "teamId", + "bundleId", + "sandbox", + "enabled" + ], + "required": [ + "providerId", + "name" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/provider" + } + ], + "description": "Create a new Apple Push Notification service provider.", + "demo": "messaging\/create-apns-provider.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createAPNSProvider" + } + }, + { + "name": "createAPNSProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "authKey", + "authKeyId", + "teamId", + "bundleId", + "sandbox", + "enabled" + ], + "required": [ + "providerId", + "name" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/provider" + } + ], + "description": "Create a new Apple Push Notification service provider.", + "demo": "messaging\/create-apns-provider.md", + "public": true + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "providerId": { + "type": "string", + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "default": null, + "x-example": "<PROVIDER_ID>" + }, + "name": { + "type": "string", + "description": "Provider name.", + "default": null, + "x-example": "<NAME>" + }, + "authKey": { + "type": "string", + "description": "APNS authentication key.", + "default": "", + "x-example": "<AUTH_KEY>" + }, + "authKeyId": { + "type": "string", + "description": "APNS authentication key ID.", + "default": "", + "x-example": "<AUTH_KEY_ID>" + }, + "teamId": { + "type": "string", + "description": "APNS team ID.", + "default": "", + "x-example": "<TEAM_ID>" + }, + "bundleId": { + "type": "string", + "description": "APNS bundle ID.", + "default": "", + "x-example": "<BUNDLE_ID>" + }, + "sandbox": { + "type": "boolean", + "description": "Use APNS sandbox environment.", + "default": false, + "x-example": false + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "default": null, + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + ] + } + }, + "\/messaging\/providers\/apns\/{providerId}": { + "patch": { + "summary": "Update APNS provider", + "operationId": "messagingUpdateApnsProvider", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "messaging" + ], + "description": "Update a Apple Push Notification service provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "schema": { + "$ref": "#\/definitions\/provider" + } + } + }, + "deprecated": true, + "x-appwrite": { + "method": "updateApnsProvider", + "group": "providers", + "weight": 199, + "cookies": false, + "type": "", + "demo": "messaging\/update-apns-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-apns-provider.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateAPNSProvider" + }, + "methods": [ + { + "name": "updateApnsProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "enabled", + "authKey", + "authKeyId", + "teamId", + "bundleId", + "sandbox" + ], + "required": [ + "providerId" + ], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/provider" + } + ], + "description": "Update a Apple Push Notification service provider by its unique ID.", + "demo": "messaging\/update-apns-provider.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateAPNSProvider" + } + }, + { + "name": "updateAPNSProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "enabled", + "authKey", + "authKeyId", + "teamId", + "bundleId", + "sandbox" + ], + "required": [ + "providerId" + ], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/provider" + } + ], + "description": "Update a Apple Push Notification service provider by its unique ID.", + "demo": "messaging\/update-apns-provider.md", + "public": true + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "type": "string", + "x-example": "<PROVIDER_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", "schema": { "type": "object", "properties": { - "messageId": { + "name": { "type": "string", - "description": "Message 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.", + "description": "Provider name.", + "default": "", + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", "default": null, - "x-example": "<MESSAGE_ID>" + "x-example": false, + "x-nullable": true }, - "title": { + "authKey": { "type": "string", - "description": "Title for push notification.", + "description": "APNS authentication key.", "default": "", - "x-example": "<TITLE>" + "x-example": "<AUTH_KEY>" + }, + "authKeyId": { + "type": "string", + "description": "APNS authentication key ID.", + "default": "", + "x-example": "<AUTH_KEY_ID>" + }, + "teamId": { + "type": "string", + "description": "APNS team ID.", + "default": "", + "x-example": "<TEAM_ID>" + }, + "bundleId": { + "type": "string", + "description": "APNS bundle ID.", + "default": "", + "x-example": "<BUNDLE_ID>" + }, + "sandbox": { + "type": "boolean", + "description": "Use APNS sandbox environment.", + "default": null, + "x-example": false, + "x-nullable": true + } + } + } + } + ] + } + }, + "\/messaging\/providers\/fcm": { + "post": { + "summary": "Create FCM provider", + "operationId": "messagingCreateFcmProvider", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "messaging" + ], + "description": "Create a new Firebase Cloud Messaging provider.", + "responses": { + "201": { + "description": "Provider", + "schema": { + "$ref": "#\/definitions\/provider" + } + } + }, + "deprecated": true, + "x-appwrite": { + "method": "createFcmProvider", + "group": "providers", + "weight": 184, + "cookies": false, + "type": "", + "demo": "messaging\/create-fcm-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-fcm-provider.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createFCMProvider" + }, + "methods": [ + { + "name": "createFcmProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "serviceAccountJSON", + "enabled" + ], + "required": [ + "providerId", + "name" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/provider" + } + ], + "description": "Create a new Firebase Cloud Messaging provider.", + "demo": "messaging\/create-fcm-provider.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createFCMProvider" + } + }, + { + "name": "createFCMProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "serviceAccountJSON", + "enabled" + ], + "required": [ + "providerId", + "name" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/provider" + } + ], + "description": "Create a new Firebase Cloud Messaging provider.", + "demo": "messaging\/create-fcm-provider.md", + "public": true + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "providerId": { + "type": "string", + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "default": null, + "x-example": "<PROVIDER_ID>" + }, + "name": { + "type": "string", + "description": "Provider name.", + "default": null, + "x-example": "<NAME>" + }, + "serviceAccountJSON": { + "type": "object", + "description": "FCM service account JSON.", + "default": {}, + "x-example": "{}", + "x-nullable": true + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "default": null, + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } + } + ] + } + }, + "\/messaging\/providers\/fcm\/{providerId}": { + "patch": { + "summary": "Update FCM provider", + "operationId": "messagingUpdateFcmProvider", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "messaging" + ], + "description": "Update a Firebase Cloud Messaging provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "schema": { + "$ref": "#\/definitions\/provider" + } + } + }, + "deprecated": true, + "x-appwrite": { + "method": "updateFcmProvider", + "group": "providers", + "weight": 198, + "cookies": false, + "type": "", + "demo": "messaging\/update-fcm-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-fcm-provider.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateFCMProvider" + }, + "methods": [ + { + "name": "updateFcmProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "enabled", + "serviceAccountJSON" + ], + "required": [ + "providerId" + ], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/provider" + } + ], + "description": "Update a Firebase Cloud Messaging provider by its unique ID.", + "demo": "messaging\/update-fcm-provider.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.updateFCMProvider" + } + }, + { + "name": "updateFCMProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "enabled", + "serviceAccountJSON" + ], + "required": [ + "providerId" + ], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/provider" + } + ], + "description": "Update a Firebase Cloud Messaging provider by its unique ID.", + "demo": "messaging\/update-fcm-provider.md", + "public": true + } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "type": "string", + "x-example": "<PROVIDER_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Provider name.", + "default": "", + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "default": null, + "x-example": false, + "x-nullable": true + }, + "serviceAccountJSON": { + "type": "object", + "description": "FCM service account JSON.", + "default": {}, + "x-example": "{}", + "x-nullable": true + } + } + } + } + ] + } + }, + "\/messaging\/providers\/mailgun": { + "post": { + "summary": "Create Mailgun provider", + "operationId": "messagingCreateMailgunProvider", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "messaging" + ], + "description": "Create a new Mailgun provider.", + "responses": { + "201": { + "description": "Provider", + "schema": { + "$ref": "#\/definitions\/provider" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createMailgunProvider", + "group": "providers", + "weight": 175, + "cookies": false, + "type": "", + "demo": "messaging\/create-mailgun-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-mailgun-provider.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "providerId": { + "type": "string", + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "default": null, + "x-example": "<PROVIDER_ID>" }, - "body": { + "name": { "type": "string", - "description": "Body for push notification.", - "default": "", - "x-example": "<BODY>" - }, - "topics": { - "type": "array", - "description": "List of Topic IDs.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "users": { - "type": "array", - "description": "List of User IDs.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "targets": { - "type": "array", - "description": "List of Targets IDs.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "data": { - "type": "object", - "description": "Additional key-value pair data for push notification.", - "default": {}, - "x-example": "{}", - "x-nullable": true + "description": "Provider name.", + "default": null, + "x-example": "<NAME>" }, - "action": { + "apiKey": { "type": "string", - "description": "Action for push notification.", + "description": "Mailgun API Key.", "default": "", - "x-example": "<ACTION>" + "x-example": "<API_KEY>" }, - "image": { + "domain": { "type": "string", - "description": "Image for push notification. Must be a compound bucket ID to file ID of a jpeg, png, or bmp image in Appwrite Storage. It should be formatted as <BUCKET_ID>:<FILE_ID>.", + "description": "Mailgun Domain.", "default": "", - "x-example": "<ID1:ID2>" + "x-example": "<DOMAIN>" }, - "icon": { + "isEuRegion": { + "type": "boolean", + "description": "Set as EU region.", + "default": null, + "x-example": false, + "x-nullable": true + }, + "fromName": { "type": "string", - "description": "Icon for push notification. Available only for Android and Web Platform.", + "description": "Sender Name.", "default": "", - "x-example": "<ICON>" + "x-example": "<FROM_NAME>" }, - "sound": { + "fromEmail": { "type": "string", - "description": "Sound for push notification. Available only for Android and iOS Platform.", + "description": "Sender email address.", "default": "", - "x-example": "<SOUND>" + "x-example": "email@example.com", + "format": "email" }, - "color": { + "replyToName": { "type": "string", - "description": "Color for push notification. Available only for Android Platform.", + "description": "Name set in the reply to field for the mail. Default value is sender name. Reply to name must have reply to email as well.", "default": "", - "x-example": "<COLOR>" + "x-example": "<REPLY_TO_NAME>" }, - "tag": { + "replyToEmail": { "type": "string", - "description": "Tag for push notification. Available only for Android Platform.", + "description": "Email set in the reply to field for the mail. Default value is sender email. Reply to email must have reply to name as well.", "default": "", - "x-example": "<TAG>" - }, - "badge": { - "type": "integer", - "description": "Badge for push notification. Available only for iOS Platform.", - "default": -1, - "x-example": null, - "format": "int32" + "x-example": "email@example.com", + "format": "email" }, - "draft": { + "enabled": { "type": "boolean", - "description": "Is message a draft", - "default": false, - "x-example": false - }, - "scheduledAt": { - "type": "string", - "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", + "description": "Set as enabled.", "default": null, - "x-example": null, + "x-example": false, "x-nullable": true - }, - "contentAvailable": { - "type": "boolean", - "description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.", - "default": false, - "x-example": false - }, - "critical": { - "type": "boolean", - "description": "If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.", - "default": false, - "x-example": false - }, - "priority": { - "type": "string", - "description": "Set the notification priority. \"normal\" will consider device state and may not deliver notifications immediately. \"high\" will always attempt to immediately deliver the notification.", - "default": "high", - "x-example": "normal", - "enum": [ - "normal", - "high" - ], - "x-enum-name": "MessagePriority", - "x-enum-keys": [] } }, "required": [ - "messageId" + "providerId", + "name" ] } } ] } }, - "\/messaging\/messages\/push\/{messageId}": { + "\/messaging\/providers\/mailgun\/{providerId}": { "patch": { - "summary": "Update push notification", - "operationId": "messagingUpdatePush", + "summary": "Update Mailgun provider", + "operationId": "messagingUpdateMailgunProvider", "consumes": [ "application\/json" ], @@ -19800,34 +24640,34 @@ "tags": [ "messaging" ], - "description": "Update a push notification by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", + "description": "Update a Mailgun provider by its unique ID.", "responses": { "200": { - "description": "Message", + "description": "Provider", "schema": { - "$ref": "#\/definitions\/message" + "$ref": "#\/definitions\/provider" } } }, "deprecated": false, "x-appwrite": { - "method": "updatePush", - "group": "messages", - "weight": 237, + "method": "updateMailgunProvider", + "group": "providers", + "weight": 189, "cookies": false, "type": "", - "demo": "messaging\/update-push.md", + "demo": "messaging\/update-mailgun-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", + "scope": "providers.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-push.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-mailgun-provider.md", "auth": { "Project": [], "Key": [] @@ -19841,11 +24681,11 @@ ], "parameters": [ { - "name": "messageId", - "description": "Message ID.", + "name": "providerId", + "description": "Provider ID.", "required": true, "type": "string", - "x-example": "<MESSAGE_ID>", + "x-example": "<PROVIDER_ID>", "in": "path" }, { @@ -19854,147 +24694,62 @@ "schema": { "type": "object", "properties": { - "topics": { - "type": "array", - "description": "List of Topic IDs.", - "default": null, - "x-example": null, - "x-nullable": true, - "items": { - "type": "string" - } - }, - "users": { - "type": "array", - "description": "List of User IDs.", - "default": null, - "x-example": null, - "x-nullable": true, - "items": { - "type": "string" - } - }, - "targets": { - "type": "array", - "description": "List of Targets IDs.", - "default": null, - "x-example": null, - "x-nullable": true, - "items": { - "type": "string" - } - }, - "title": { - "type": "string", - "description": "Title for push notification.", - "default": null, - "x-example": "<TITLE>", - "x-nullable": true - }, - "body": { - "type": "string", - "description": "Body for push notification.", - "default": null, - "x-example": "<BODY>", - "x-nullable": true - }, - "data": { - "type": "object", - "description": "Additional Data for push notification.", - "default": {}, - "x-example": "{}", - "x-nullable": true - }, - "action": { - "type": "string", - "description": "Action for push notification.", - "default": null, - "x-example": "<ACTION>", - "x-nullable": true - }, - "image": { - "type": "string", - "description": "Image for push notification. Must be a compound bucket ID to file ID of a jpeg, png, or bmp image in Appwrite Storage. It should be formatted as <BUCKET_ID>:<FILE_ID>.", - "default": null, - "x-example": "<ID1:ID2>", - "x-nullable": true - }, - "icon": { - "type": "string", - "description": "Icon for push notification. Available only for Android and Web platforms.", - "default": null, - "x-example": "<ICON>", - "x-nullable": true - }, - "sound": { + "name": { "type": "string", - "description": "Sound for push notification. Available only for Android and iOS platforms.", - "default": null, - "x-example": "<SOUND>", - "x-nullable": true + "description": "Provider name.", + "default": "", + "x-example": "<NAME>" }, - "color": { + "apiKey": { "type": "string", - "description": "Color for push notification. Available only for Android platforms.", - "default": null, - "x-example": "<COLOR>", - "x-nullable": true + "description": "Mailgun API Key.", + "default": "", + "x-example": "<API_KEY>" }, - "tag": { + "domain": { "type": "string", - "description": "Tag for push notification. Available only for Android platforms.", - "default": null, - "x-example": "<TAG>", - "x-nullable": true + "description": "Mailgun Domain.", + "default": "", + "x-example": "<DOMAIN>" }, - "badge": { - "type": "integer", - "description": "Badge for push notification. Available only for iOS platforms.", + "isEuRegion": { + "type": "boolean", + "description": "Set as EU region.", "default": null, - "x-example": null, - "format": "int32", + "x-example": false, "x-nullable": true }, - "draft": { + "enabled": { "type": "boolean", - "description": "Is message a draft", + "description": "Set as enabled.", "default": null, "x-example": false, "x-nullable": true }, - "scheduledAt": { + "fromName": { "type": "string", - "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", - "default": null, - "x-example": null, - "x-nullable": true + "description": "Sender Name.", + "default": "", + "x-example": "<FROM_NAME>" }, - "contentAvailable": { - "type": "boolean", - "description": "If set to true, the notification will be delivered in the background. Available only for iOS Platform.", - "default": null, - "x-example": false, - "x-nullable": true + "fromEmail": { + "type": "string", + "description": "Sender email address.", + "default": "", + "x-example": "email@example.com", + "format": "email" }, - "critical": { - "type": "boolean", - "description": "If set to true, the notification will be marked as critical. This requires the app to have the critical notification entitlement. Available only for iOS Platform.", - "default": null, - "x-example": false, - "x-nullable": true + "replyToName": { + "type": "string", + "description": "Name set in the reply to field for the mail. Default value is sender name.", + "default": "", + "x-example": "<REPLY_TO_NAME>" }, - "priority": { + "replyToEmail": { "type": "string", - "description": "Set the notification priority. \"normal\" will consider device battery state and may send notifications later. \"high\" will always attempt to immediately deliver the notification.", - "default": null, - "x-example": "normal", - "enum": [ - "normal", - "high" - ], - "x-enum-name": "MessagePriority", - "x-enum-keys": [], - "x-nullable": true + "description": "Email set in the reply to field for the mail. Default value is sender email.", + "default": "", + "x-example": "<REPLY_TO_EMAIL>" } } } @@ -20002,10 +24757,10 @@ ] } }, - "\/messaging\/messages\/sms": { + "\/messaging\/providers\/msg91": { "post": { - "summary": "Create SMS", - "operationId": "messagingCreateSms", + "summary": "Create Msg91 provider", + "operationId": "messagingCreateMsg91Provider", "consumes": [ "application\/json" ], @@ -20015,106 +24770,34 @@ "tags": [ "messaging" ], - "description": "Create a new SMS message.", + "description": "Create a new MSG91 provider.", "responses": { "201": { - "description": "Message", + "description": "Provider", "schema": { - "$ref": "#\/definitions\/message" + "$ref": "#\/definitions\/provider" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createSms", - "group": "messages", - "weight": 229, + "method": "createMsg91Provider", + "group": "providers", + "weight": 179, "cookies": false, "type": "", - "demo": "messaging\/create-sms.md", + "demo": "messaging\/create-msg-91-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", + "scope": "providers.write", "platforms": [ "console", "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-sms.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createSMS" - }, - "methods": [ - { - "name": "createSms", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "messageId", - "content", - "topics", - "users", - "targets", - "draft", - "scheduledAt" - ], - "required": [ - "messageId", - "content" - ], - "responses": [ - { - "code": 201, - "model": "#\/definitions\/message" - } - ], - "description": "Create a new SMS message.", - "demo": "messaging\/create-sms.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createSMS" - } - }, - { - "name": "createSMS", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "messageId", - "content", - "topics", - "users", - "targets", - "draft", - "scheduledAt" - ], - "required": [ - "messageId", - "content" - ], - "responses": [ - { - "code": 201, - "model": "#\/definitions\/message" - } - ], - "description": "Create a new SMS message.", - "demo": "messaging\/create-sms.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-msg91-provider.md", "auth": { "Project": [], "Key": [] @@ -20133,72 +24816,57 @@ "schema": { "type": "object", "properties": { - "messageId": { + "providerId": { "type": "string", - "description": "Message 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.", + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", "default": null, - "x-example": "<MESSAGE_ID>" + "x-example": "<PROVIDER_ID>" }, - "content": { + "name": { "type": "string", - "description": "SMS Content.", + "description": "Provider name.", "default": null, - "x-example": "<CONTENT>" + "x-example": "<NAME>" }, - "topics": { - "type": "array", - "description": "List of Topic IDs.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } + "templateId": { + "type": "string", + "description": "Msg91 template ID", + "default": "", + "x-example": "<TEMPLATE_ID>" }, - "users": { - "type": "array", - "description": "List of User IDs.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } + "senderId": { + "type": "string", + "description": "Msg91 sender ID.", + "default": "", + "x-example": "<SENDER_ID>" }, - "targets": { - "type": "array", - "description": "List of Targets IDs.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } + "authKey": { + "type": "string", + "description": "Msg91 auth key.", + "default": "", + "x-example": "<AUTH_KEY>" }, - "draft": { + "enabled": { "type": "boolean", - "description": "Is message a draft", - "default": false, - "x-example": false - }, - "scheduledAt": { - "type": "string", - "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", + "description": "Set as enabled.", "default": null, - "x-example": null, + "x-example": false, "x-nullable": true } }, "required": [ - "messageId", - "content" + "providerId", + "name" ] } } ] } }, - "\/messaging\/messages\/sms\/{messageId}": { + "\/messaging\/providers\/msg91\/{providerId}": { "patch": { - "summary": "Update SMS", - "operationId": "messagingUpdateSms", + "summary": "Update Msg91 provider", + "operationId": "messagingUpdateMsg91Provider", "consumes": [ "application\/json" ], @@ -20208,104 +24876,34 @@ "tags": [ "messaging" ], - "description": "Update an SMS message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", + "description": "Update a MSG91 provider by its unique ID.", "responses": { "200": { - "description": "Message", + "description": "Provider", "schema": { - "$ref": "#\/definitions\/message" + "$ref": "#\/definitions\/provider" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateSms", - "group": "messages", - "weight": 236, + "method": "updateMsg91Provider", + "group": "providers", + "weight": 193, "cookies": false, "type": "", - "demo": "messaging\/update-sms.md", + "demo": "messaging\/update-msg-91-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", + "scope": "providers.write", "platforms": [ "console", "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-sms.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateSMS" - }, - "methods": [ - { - "name": "updateSms", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "messageId", - "topics", - "users", - "targets", - "content", - "draft", - "scheduledAt" - ], - "required": [ - "messageId" - ], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/message" - } - ], - "description": "Update an SMS message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", - "demo": "messaging\/update-sms.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateSMS" - } - }, - { - "name": "updateSMS", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "messageId", - "topics", - "users", - "targets", - "content", - "draft", - "scheduledAt" - ], - "required": [ - "messageId" - ], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/message" - } - ], - "description": "Update an SMS message by its unique ID. This endpoint only works on messages that are in draft status. Messages that are already processing, sent, or failed cannot be updated.\n", - "demo": "messaging\/update-sms.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-msg91-provider.md", "auth": { "Project": [], "Key": [] @@ -20319,11 +24917,11 @@ ], "parameters": [ { - "name": "messageId", - "description": "Message ID.", + "name": "providerId", + "description": "Provider ID.", "required": true, "type": "string", - "x-example": "<MESSAGE_ID>", + "x-example": "<PROVIDER_ID>", "in": "path" }, { @@ -20332,56 +24930,36 @@ "schema": { "type": "object", "properties": { - "topics": { - "type": "array", - "description": "List of Topic IDs.", - "default": null, - "x-example": null, - "x-nullable": true, - "items": { - "type": "string" - } - }, - "users": { - "type": "array", - "description": "List of User IDs.", - "default": null, - "x-example": null, - "x-nullable": true, - "items": { - "type": "string" - } - }, - "targets": { - "type": "array", - "description": "List of Targets IDs.", - "default": null, - "x-example": null, - "x-nullable": true, - "items": { - "type": "string" - } - }, - "content": { + "name": { "type": "string", - "description": "Email Content.", - "default": null, - "x-example": "<CONTENT>", - "x-nullable": true + "description": "Provider name.", + "default": "", + "x-example": "<NAME>" }, - "draft": { + "enabled": { "type": "boolean", - "description": "Is message a draft", + "description": "Set as enabled.", "default": null, "x-example": false, "x-nullable": true }, - "scheduledAt": { + "templateId": { "type": "string", - "description": "Scheduled delivery time for message in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. DateTime value must be in future.", - "default": null, - "x-example": null, - "x-nullable": true + "description": "Msg91 template ID.", + "default": "", + "x-example": "<TEMPLATE_ID>" + }, + "senderId": { + "type": "string", + "description": "Msg91 sender ID.", + "default": "", + "x-example": "<SENDER_ID>" + }, + "authKey": { + "type": "string", + "description": "Msg91 auth key.", + "default": "", + "x-example": "<AUTH_KEY>" } } } @@ -20389,45 +24967,47 @@ ] } }, - "\/messaging\/messages\/{messageId}": { - "get": { - "summary": "Get message", - "operationId": "messagingGetMessage", - "consumes": [], + "\/messaging\/providers\/resend": { + "post": { + "summary": "Create Resend provider", + "operationId": "messagingCreateResendProvider", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ "messaging" ], - "description": "Get a message by its unique ID.\n", + "description": "Create a new Resend provider.", "responses": { - "200": { - "description": "Message", + "201": { + "description": "Provider", "schema": { - "$ref": "#\/definitions\/message" + "$ref": "#\/definitions\/provider" } } }, "deprecated": false, "x-appwrite": { - "method": "getMessage", - "group": "messages", - "weight": 234, + "method": "createResendProvider", + "group": "providers", + "weight": 177, "cookies": false, "type": "", - "demo": "messaging\/get-message.md", + "demo": "messaging\/create-resend-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.read", + "scope": "providers.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/get-message.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-resend-provider.md", "auth": { "Project": [], "Key": [] @@ -20441,50 +25021,113 @@ ], "parameters": [ { - "name": "messageId", - "description": "Message ID.", - "required": true, - "type": "string", - "x-example": "<MESSAGE_ID>", - "in": "path" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "providerId": { + "type": "string", + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "default": null, + "x-example": "<PROVIDER_ID>" + }, + "name": { + "type": "string", + "description": "Provider name.", + "default": null, + "x-example": "<NAME>" + }, + "apiKey": { + "type": "string", + "description": "Resend API key.", + "default": "", + "x-example": "<API_KEY>" + }, + "fromName": { + "type": "string", + "description": "Sender Name.", + "default": "", + "x-example": "<FROM_NAME>" + }, + "fromEmail": { + "type": "string", + "description": "Sender email address.", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "replyToName": { + "type": "string", + "description": "Name set in the reply to field for the mail. Default value is sender name.", + "default": "", + "x-example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "type": "string", + "description": "Email set in the reply to field for the mail. Default value is sender email.", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "default": null, + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } } ] - }, - "delete": { - "summary": "Delete message", - "operationId": "messagingDelete", + } + }, + "\/messaging\/providers\/resend\/{providerId}": { + "patch": { + "summary": "Update Resend provider", + "operationId": "messagingUpdateResendProvider", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ "messaging" ], - "description": "Delete a message. If the message is not a draft or scheduled, but has been sent, this will not recall the message.", + "description": "Update a Resend provider by its unique ID.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Provider", + "schema": { + "$ref": "#\/definitions\/provider" + } } }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": "messages", - "weight": 238, + "method": "updateResendProvider", + "group": "providers", + "weight": 191, "cookies": false, "type": "", - "demo": "messaging\/delete.md", + "demo": "messaging\/update-resend-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.write", + "scope": "providers.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-message.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-resend-provider.md", "auth": { "Project": [], "Key": [] @@ -20498,55 +25141,110 @@ ], "parameters": [ { - "name": "messageId", - "description": "Message ID.", + "name": "providerId", + "description": "Provider ID.", "required": true, "type": "string", - "x-example": "<MESSAGE_ID>", + "x-example": "<PROVIDER_ID>", "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Provider name.", + "default": "", + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "default": null, + "x-example": false, + "x-nullable": true + }, + "apiKey": { + "type": "string", + "description": "Resend API key.", + "default": "", + "x-example": "<API_KEY>" + }, + "fromName": { + "type": "string", + "description": "Sender Name.", + "default": "", + "x-example": "<FROM_NAME>" + }, + "fromEmail": { + "type": "string", + "description": "Sender email address.", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "replyToName": { + "type": "string", + "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", + "default": "", + "x-example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "type": "string", + "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", + "default": "", + "x-example": "<REPLY_TO_EMAIL>" + } + } + } } ] } }, - "\/messaging\/messages\/{messageId}\/logs": { - "get": { - "summary": "List message logs", - "operationId": "messagingListMessageLogs", - "consumes": [], + "\/messaging\/providers\/sendgrid": { + "post": { + "summary": "Create Sendgrid provider", + "operationId": "messagingCreateSendgridProvider", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ "messaging" ], - "description": "Get the message activity logs listed by its unique ID.", + "description": "Create a new Sendgrid provider.", "responses": { - "200": { - "description": "Logs List", + "201": { + "description": "Provider", "schema": { - "$ref": "#\/definitions\/logList" + "$ref": "#\/definitions\/provider" } } }, "deprecated": false, "x-appwrite": { - "method": "listMessageLogs", - "group": "logs", - "weight": 232, + "method": "createSendgridProvider", + "group": "providers", + "weight": 176, "cookies": false, "type": "", - "demo": "messaging\/list-message-logs.md", + "demo": "messaging\/create-sendgrid-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.read", + "scope": "providers.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-message-logs.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-sendgrid-provider.md", "auth": { "Project": [], "Key": [] @@ -20560,76 +25258,113 @@ ], "parameters": [ { - "name": "messageId", - "description": "Message ID.", - "required": true, - "type": "string", - "x-example": "<MESSAGE_ID>", - "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). Only supported methods are limit and offset", - "required": false, - "type": "array", - "collectionFormat": "multi", - "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, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "providerId": { + "type": "string", + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "default": null, + "x-example": "<PROVIDER_ID>" + }, + "name": { + "type": "string", + "description": "Provider name.", + "default": null, + "x-example": "<NAME>" + }, + "apiKey": { + "type": "string", + "description": "Sendgrid API key.", + "default": "", + "x-example": "<API_KEY>" + }, + "fromName": { + "type": "string", + "description": "Sender Name.", + "default": "", + "x-example": "<FROM_NAME>" + }, + "fromEmail": { + "type": "string", + "description": "Sender email address.", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "replyToName": { + "type": "string", + "description": "Name set in the reply to field for the mail. Default value is sender name.", + "default": "", + "x-example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "type": "string", + "description": "Email set in the reply to field for the mail. Default value is sender email.", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "default": null, + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "providerId", + "name" + ] + } } ] } }, - "\/messaging\/messages\/{messageId}\/targets": { - "get": { - "summary": "List message targets", - "operationId": "messagingListTargets", - "consumes": [], + "\/messaging\/providers\/sendgrid\/{providerId}": { + "patch": { + "summary": "Update Sendgrid provider", + "operationId": "messagingUpdateSendgridProvider", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ "messaging" ], - "description": "Get a list of the targets associated with a message.", + "description": "Update a Sendgrid provider by its unique ID.", "responses": { "200": { - "description": "Target list", + "description": "Provider", "schema": { - "$ref": "#\/definitions\/targetList" + "$ref": "#\/definitions\/provider" } } }, "deprecated": false, "x-appwrite": { - "method": "listTargets", - "group": "messages", - "weight": 233, + "method": "updateSendgridProvider", + "group": "providers", + "weight": 190, "cookies": false, "type": "", - "demo": "messaging\/list-targets.md", + "demo": "messaging\/update-sendgrid-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "messages.read", + "scope": "providers.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-message-targets.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-sendgrid-provider.md", "auth": { "Project": [], "Key": [] @@ -20643,76 +25378,198 @@ ], "parameters": [ { - "name": "messageId", - "description": "Message ID.", + "name": "providerId", + "description": "Provider ID.", "required": true, "type": "string", - "x-example": "<MESSAGE_ID>", + "x-example": "<PROVIDER_ID>", "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: userId, providerId, identifier, providerType", - "required": false, - "type": "array", - "collectionFormat": "multi", - "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, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Provider name.", + "default": "", + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "default": null, + "x-example": false, + "x-nullable": true + }, + "apiKey": { + "type": "string", + "description": "Sendgrid API key.", + "default": "", + "x-example": "<API_KEY>" + }, + "fromName": { + "type": "string", + "description": "Sender Name.", + "default": "", + "x-example": "<FROM_NAME>" + }, + "fromEmail": { + "type": "string", + "description": "Sender email address.", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "replyToName": { + "type": "string", + "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", + "default": "", + "x-example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "type": "string", + "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", + "default": "", + "x-example": "<REPLY_TO_EMAIL>" + } + } + } } ] } }, - "\/messaging\/providers": { - "get": { - "summary": "List providers", - "operationId": "messagingListProviders", - "consumes": [], + "\/messaging\/providers\/smtp": { + "post": { + "summary": "Create SMTP provider", + "operationId": "messagingCreateSmtpProvider", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ "messaging" ], - "description": "Get a list of all providers from the current Appwrite project.", + "description": "Create a new SMTP provider.", "responses": { - "200": { - "description": "Provider list", + "201": { + "description": "Provider", "schema": { - "$ref": "#\/definitions\/providerList" + "$ref": "#\/definitions\/provider" } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "listProviders", + "method": "createSmtpProvider", "group": "providers", - "weight": 202, + "weight": 178, "cookies": false, "type": "", - "demo": "messaging\/list-providers.md", + "demo": "messaging\/create-smtp-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.read", + "scope": "providers.write", "platforms": [ "console", "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-providers.md", + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-smtp-provider.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createSMTPProvider" + }, + "methods": [ + { + "name": "createSmtpProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "host", + "port", + "username", + "password", + "encryption", + "autoTLS", + "mailer", + "fromName", + "fromEmail", + "replyToName", + "replyToEmail", + "enabled" + ], + "required": [ + "providerId", + "name", + "host" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/provider" + } + ], + "description": "Create a new SMTP provider.", + "demo": "messaging\/create-smtp-provider.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "messaging.createSMTPProvider" + } + }, + { + "name": "createSMTPProvider", + "namespace": "messaging", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "providerId", + "name", + "host", + "port", + "username", + "password", + "encryption", + "autoTLS", + "mailer", + "fromName", + "fromEmail", + "replyToName", + "replyToEmail", + "enabled" + ], + "required": [ + "providerId", + "name", + "host" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/provider" + } + ], + "description": "Create a new SMTP provider.", + "demo": "messaging\/create-smtp-provider.md", + "public": true + } + ], "auth": { "Project": [], "Key": [] @@ -20726,42 +25583,121 @@ ], "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, provider, type, enabled", - "required": false, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "type": "string", - "x-example": "<SEARCH>", - "default": "", - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "providerId": { + "type": "string", + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "default": null, + "x-example": "<PROVIDER_ID>" + }, + "name": { + "type": "string", + "description": "Provider name.", + "default": null, + "x-example": "<NAME>" + }, + "host": { + "type": "string", + "description": "SMTP hosts. Either a single hostname or multiple semicolon-delimited hostnames. You can also specify a different port for each host such as `smtp1.example.com:25;smtp2.example.com`. You can also specify encryption type, for example: `tls:\/\/smtp1.example.com:587;ssl:\/\/smtp2.example.com:465\"`. Hosts will be tried in order.", + "default": null, + "x-example": "<HOST>" + }, + "port": { + "type": "integer", + "description": "The default SMTP server port.", + "default": 587, + "x-example": 1, + "format": "int32" + }, + "username": { + "type": "string", + "description": "Authentication username.", + "default": "", + "x-example": "<USERNAME>" + }, + "password": { + "type": "string", + "description": "Authentication password.", + "default": "", + "x-example": "<PASSWORD>" + }, + "encryption": { + "type": "string", + "description": "Encryption type. Can be omitted, 'ssl', or 'tls'", + "default": "", + "x-example": "none", + "enum": [ + "none", + "ssl", + "tls" + ], + "x-enum-name": "SmtpEncryption", + "x-enum-keys": [] + }, + "autoTLS": { + "type": "boolean", + "description": "Enable SMTP AutoTLS feature.", + "default": true, + "x-example": false + }, + "mailer": { + "type": "string", + "description": "The value to use for the X-Mailer header.", + "default": "", + "x-example": "<MAILER>" + }, + "fromName": { + "type": "string", + "description": "Sender Name.", + "default": "", + "x-example": "<FROM_NAME>" + }, + "fromEmail": { + "type": "string", + "description": "Sender email address.", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "replyToName": { + "type": "string", + "description": "Name set in the reply to field for the mail. Default value is sender name.", + "default": "", + "x-example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "type": "string", + "description": "Email set in the reply to field for the mail. Default value is sender email.", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "default": null, + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "providerId", + "name", + "host" + ] + } } ] } }, - "\/messaging\/providers\/apns": { - "post": { - "summary": "Create APNS provider", - "operationId": "messagingCreateApnsProvider", + "\/messaging\/providers\/smtp\/{providerId}": { + "patch": { + "summary": "Update SMTP provider", + "operationId": "messagingUpdateSmtpProvider", "consumes": [ "application\/json" ], @@ -20771,9 +25707,9 @@ "tags": [ "messaging" ], - "description": "Create a new Apple Push Notification service provider.", + "description": "Update a SMTP provider by its unique ID.", "responses": { - "201": { + "200": { "description": "Provider", "schema": { "$ref": "#\/definitions\/provider" @@ -20782,12 +25718,12 @@ }, "deprecated": true, "x-appwrite": { - "method": "createApnsProvider", + "method": "updateSmtpProvider", "group": "providers", - "weight": 201, + "weight": 192, "cookies": false, "type": "", - "demo": "messaging\/create-apns-provider.md", + "demo": "messaging\/update-smtp-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -20798,14 +25734,14 @@ ], "packaging": false, "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-apns-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-smtp-provider.md", "deprecated": { "since": "1.8.0", - "replaceWith": "messaging.createAPNSProvider" + "replaceWith": "messaging.updateSMTPProvider" }, "methods": [ { - "name": "createApnsProvider", + "name": "updateSmtpProvider", "namespace": "messaging", "desc": "", "auth": { @@ -20815,33 +25751,38 @@ "parameters": [ "providerId", "name", - "authKey", - "authKeyId", - "teamId", - "bundleId", - "sandbox", + "host", + "port", + "username", + "password", + "encryption", + "autoTLS", + "mailer", + "fromName", + "fromEmail", + "replyToName", + "replyToEmail", "enabled" ], "required": [ - "providerId", - "name" + "providerId" ], "responses": [ { - "code": 201, + "code": 200, "model": "#\/definitions\/provider" } ], - "description": "Create a new Apple Push Notification service provider.", - "demo": "messaging\/create-apns-provider.md", + "description": "Update a SMTP provider by its unique ID.", + "demo": "messaging\/update-smtp-provider.md", "public": false, "deprecated": { "since": "1.8.0", - "replaceWith": "messaging.createAPNSProvider" + "replaceWith": "messaging.updateSMTPProvider" } }, { - "name": "createAPNSProvider", + "name": "updateSMTPProvider", "namespace": "messaging", "desc": "", "auth": { @@ -20851,25 +25792,30 @@ "parameters": [ "providerId", "name", - "authKey", - "authKeyId", - "teamId", - "bundleId", - "sandbox", + "host", + "port", + "username", + "password", + "encryption", + "autoTLS", + "mailer", + "fromName", + "fromEmail", + "replyToName", + "replyToEmail", "enabled" ], "required": [ - "providerId", - "name" + "providerId" ], "responses": [ { - "code": 201, + "code": 200, "model": "#\/definitions\/provider" } ], - "description": "Create a new Apple Push Notification service provider.", - "demo": "messaging\/create-apns-provider.md", + "description": "Update a SMTP provider by its unique ID.", + "demo": "messaging\/update-smtp-provider.md", "public": true } ], @@ -20884,6 +25830,169 @@ "Key": [] } ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "type": "string", + "x-example": "<PROVIDER_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Provider name.", + "default": "", + "x-example": "<NAME>" + }, + "host": { + "type": "string", + "description": "SMTP hosts. Either a single hostname or multiple semicolon-delimited hostnames. You can also specify a different port for each host such as `smtp1.example.com:25;smtp2.example.com`. You can also specify encryption type, for example: `tls:\/\/smtp1.example.com:587;ssl:\/\/smtp2.example.com:465\"`. Hosts will be tried in order.", + "default": "", + "x-example": "<HOST>" + }, + "port": { + "type": "integer", + "description": "SMTP port.", + "default": null, + "x-example": 1, + "format": "int32", + "x-nullable": true + }, + "username": { + "type": "string", + "description": "Authentication username.", + "default": "", + "x-example": "<USERNAME>" + }, + "password": { + "type": "string", + "description": "Authentication password.", + "default": "", + "x-example": "<PASSWORD>" + }, + "encryption": { + "type": "string", + "description": "Encryption type. Can be 'ssl' or 'tls'", + "default": "", + "x-example": "none", + "enum": [ + "none", + "ssl", + "tls" + ], + "x-enum-name": "SmtpEncryption", + "x-enum-keys": [] + }, + "autoTLS": { + "type": "boolean", + "description": "Enable SMTP AutoTLS feature.", + "default": null, + "x-example": false, + "x-nullable": true + }, + "mailer": { + "type": "string", + "description": "The value to use for the X-Mailer header.", + "default": "", + "x-example": "<MAILER>" + }, + "fromName": { + "type": "string", + "description": "Sender Name.", + "default": "", + "x-example": "<FROM_NAME>" + }, + "fromEmail": { + "type": "string", + "description": "Sender email address.", + "default": "", + "x-example": "email@example.com", + "format": "email" + }, + "replyToName": { + "type": "string", + "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", + "default": "", + "x-example": "<REPLY_TO_NAME>" + }, + "replyToEmail": { + "type": "string", + "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", + "default": "", + "x-example": "<REPLY_TO_EMAIL>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "default": null, + "x-example": false, + "x-nullable": true + } + } + } + } + ] + } + }, + "\/messaging\/providers\/telesign": { + "post": { + "summary": "Create Telesign provider", + "operationId": "messagingCreateTelesignProvider", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "messaging" + ], + "description": "Create a new Telesign provider.", + "responses": { + "201": { + "description": "Provider", + "schema": { + "$ref": "#\/definitions\/provider" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createTelesignProvider", + "group": "providers", + "weight": 180, + "cookies": false, + "type": "", + "demo": "messaging\/create-telesign-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-telesign-provider.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], "parameters": [ { "name": "payload", @@ -20903,35 +26012,24 @@ "default": null, "x-example": "<NAME>" }, - "authKey": { - "type": "string", - "description": "APNS authentication key.", - "default": "", - "x-example": "<AUTH_KEY>" - }, - "authKeyId": { + "from": { "type": "string", - "description": "APNS authentication key ID.", + "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", "default": "", - "x-example": "<AUTH_KEY_ID>" + "x-example": "+12065550100", + "format": "phone" }, - "teamId": { + "customerId": { "type": "string", - "description": "APNS team ID.", + "description": "Telesign customer ID.", "default": "", - "x-example": "<TEAM_ID>" + "x-example": "<CUSTOMER_ID>" }, - "bundleId": { + "apiKey": { "type": "string", - "description": "APNS bundle ID.", + "description": "Telesign API key.", "default": "", - "x-example": "<BUNDLE_ID>" - }, - "sandbox": { - "type": "boolean", - "description": "Use APNS sandbox environment.", - "default": false, - "x-example": false + "x-example": "<API_KEY>" }, "enabled": { "type": "boolean", @@ -20950,10 +26048,10 @@ ] } }, - "\/messaging\/providers\/apns\/{providerId}": { + "\/messaging\/providers\/telesign\/{providerId}": { "patch": { - "summary": "Update APNS provider", - "operationId": "messagingUpdateApnsProvider", + "summary": "Update Telesign provider", + "operationId": "messagingUpdateTelesignProvider", "consumes": [ "application\/json" ], @@ -20963,7 +26061,7 @@ "tags": [ "messaging" ], - "description": "Update a Apple Push Notification service provider by its unique ID.", + "description": "Update a Telesign provider by its unique ID.", "responses": { "200": { "description": "Provider", @@ -20972,14 +26070,14 @@ } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateApnsProvider", + "method": "updateTelesignProvider", "group": "providers", - "weight": 215, + "weight": 194, "cookies": false, "type": "", - "demo": "messaging\/update-apns-provider.md", + "demo": "messaging\/update-telesign-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -20989,80 +26087,8 @@ "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-apns-provider.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateAPNSProvider" - }, - "methods": [ - { - "name": "updateApnsProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "providerId", - "name", - "enabled", - "authKey", - "authKeyId", - "teamId", - "bundleId", - "sandbox" - ], - "required": [ - "providerId" - ], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/provider" - } - ], - "description": "Update a Apple Push Notification service provider by its unique ID.", - "demo": "messaging\/update-apns-provider.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateAPNSProvider" - } - }, - { - "name": "updateAPNSProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "providerId", - "name", - "enabled", - "authKey", - "authKeyId", - "teamId", - "bundleId", - "sandbox" - ], - "required": [ - "providerId" - ], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/provider" - } - ], - "description": "Update a Apple Push Notification service provider by its unique ID.", - "demo": "messaging\/update-apns-provider.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-telesign-provider.md", "auth": { "Project": [], "Key": [] @@ -21102,36 +26128,23 @@ "x-example": false, "x-nullable": true }, - "authKey": { - "type": "string", - "description": "APNS authentication key.", - "default": "", - "x-example": "<AUTH_KEY>" - }, - "authKeyId": { + "customerId": { "type": "string", - "description": "APNS authentication key ID.", + "description": "Telesign customer ID.", "default": "", - "x-example": "<AUTH_KEY_ID>" + "x-example": "<CUSTOMER_ID>" }, - "teamId": { + "apiKey": { "type": "string", - "description": "APNS team ID.", + "description": "Telesign API key.", "default": "", - "x-example": "<TEAM_ID>" + "x-example": "<API_KEY>" }, - "bundleId": { + "from": { "type": "string", - "description": "APNS bundle ID.", + "description": "Sender number.", "default": "", - "x-example": "<BUNDLE_ID>" - }, - "sandbox": { - "type": "boolean", - "description": "Use APNS sandbox environment.", - "default": null, - "x-example": false, - "x-nullable": true + "x-example": "<FROM>" } } } @@ -21139,10 +26152,10 @@ ] } }, - "\/messaging\/providers\/fcm": { + "\/messaging\/providers\/textmagic": { "post": { - "summary": "Create FCM provider", - "operationId": "messagingCreateFcmProvider", + "summary": "Create Textmagic provider", + "operationId": "messagingCreateTextmagicProvider", "consumes": [ "application\/json" ], @@ -21152,7 +26165,7 @@ "tags": [ "messaging" ], - "description": "Create a new Firebase Cloud Messaging provider.", + "description": "Create a new Textmagic provider.", "responses": { "201": { "description": "Provider", @@ -21161,14 +26174,14 @@ } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createFcmProvider", + "method": "createTextmagicProvider", "group": "providers", - "weight": 200, + "weight": 181, "cookies": false, "type": "", - "demo": "messaging\/create-fcm-provider.md", + "demo": "messaging\/create-textmagic-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -21178,74 +26191,8 @@ "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-fcm-provider.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createFCMProvider" - }, - "methods": [ - { - "name": "createFcmProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "providerId", - "name", - "serviceAccountJSON", - "enabled" - ], - "required": [ - "providerId", - "name" - ], - "responses": [ - { - "code": 201, - "model": "#\/definitions\/provider" - } - ], - "description": "Create a new Firebase Cloud Messaging provider.", - "demo": "messaging\/create-fcm-provider.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createFCMProvider" - } - }, - { - "name": "createFCMProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "providerId", - "name", - "serviceAccountJSON", - "enabled" - ], - "required": [ - "providerId", - "name" - ], - "responses": [ - { - "code": 201, - "model": "#\/definitions\/provider" - } - ], - "description": "Create a new Firebase Cloud Messaging provider.", - "demo": "messaging\/create-fcm-provider.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-textmagic-provider.md", "auth": { "Project": [], "Key": [] @@ -21276,12 +26223,24 @@ "default": null, "x-example": "<NAME>" }, - "serviceAccountJSON": { - "type": "object", - "description": "FCM service account JSON.", - "default": {}, - "x-example": "{}", - "x-nullable": true + "from": { + "type": "string", + "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "default": "", + "x-example": "+12065550100", + "format": "phone" + }, + "username": { + "type": "string", + "description": "Textmagic username.", + "default": "", + "x-example": "<USERNAME>" + }, + "apiKey": { + "type": "string", + "description": "Textmagic apiKey.", + "default": "", + "x-example": "<API_KEY>" }, "enabled": { "type": "boolean", @@ -21300,10 +26259,10 @@ ] } }, - "\/messaging\/providers\/fcm\/{providerId}": { + "\/messaging\/providers\/textmagic\/{providerId}": { "patch": { - "summary": "Update FCM provider", - "operationId": "messagingUpdateFcmProvider", + "summary": "Update Textmagic provider", + "operationId": "messagingUpdateTextmagicProvider", "consumes": [ "application\/json" ], @@ -21313,7 +26272,7 @@ "tags": [ "messaging" ], - "description": "Update a Firebase Cloud Messaging provider by its unique ID.", + "description": "Update a Textmagic provider by its unique ID.", "responses": { "200": { "description": "Provider", @@ -21322,14 +26281,14 @@ } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateFcmProvider", + "method": "updateTextmagicProvider", "group": "providers", - "weight": 214, + "weight": 195, "cookies": false, "type": "", - "demo": "messaging\/update-fcm-provider.md", + "demo": "messaging\/update-textmagic-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -21339,72 +26298,219 @@ "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-fcm-provider.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateFCMProvider" + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-textmagic-provider.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "type": "string", + "x-example": "<PROVIDER_ID>", + "in": "path" }, - "methods": [ - { - "name": "updateFcmProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "providerId", - "name", - "enabled", - "serviceAccountJSON" - ], - "required": [ - "providerId" - ], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/provider" + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Provider name.", + "default": "", + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "default": null, + "x-example": false, + "x-nullable": true + }, + "username": { + "type": "string", + "description": "Textmagic username.", + "default": "", + "x-example": "<USERNAME>" + }, + "apiKey": { + "type": "string", + "description": "Textmagic apiKey.", + "default": "", + "x-example": "<API_KEY>" + }, + "from": { + "type": "string", + "description": "Sender number.", + "default": "", + "x-example": "<FROM>" } - ], - "description": "Update a Firebase Cloud Messaging provider by its unique ID.", - "demo": "messaging\/update-fcm-provider.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateFCMProvider" } - }, - { - "name": "updateFCMProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [], - "Key": [] + } + } + ] + } + }, + "\/messaging\/providers\/twilio": { + "post": { + "summary": "Create Twilio provider", + "operationId": "messagingCreateTwilioProvider", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "messaging" + ], + "description": "Create a new Twilio provider.", + "responses": { + "201": { + "description": "Provider", + "schema": { + "$ref": "#\/definitions\/provider" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "createTwilioProvider", + "group": "providers", + "weight": 182, + "cookies": false, + "type": "", + "demo": "messaging\/create-twilio-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-twilio-provider.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "providerId": { + "type": "string", + "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "default": null, + "x-example": "<PROVIDER_ID>" + }, + "name": { + "type": "string", + "description": "Provider name.", + "default": null, + "x-example": "<NAME>" + }, + "from": { + "type": "string", + "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "default": "", + "x-example": "+12065550100", + "format": "phone" + }, + "accountSid": { + "type": "string", + "description": "Twilio account secret ID.", + "default": "", + "x-example": "<ACCOUNT_SID>" + }, + "authToken": { + "type": "string", + "description": "Twilio authentication token.", + "default": "", + "x-example": "<AUTH_TOKEN>" + }, + "enabled": { + "type": "boolean", + "description": "Set as enabled.", + "default": null, + "x-example": false, + "x-nullable": true + } }, - "parameters": [ - "providerId", - "name", - "enabled", - "serviceAccountJSON" - ], "required": [ - "providerId" - ], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/provider" - } - ], - "description": "Update a Firebase Cloud Messaging provider by its unique ID.", - "demo": "messaging\/update-fcm-provider.md", - "public": true + "providerId", + "name" + ] + } + } + ] + } + }, + "\/messaging\/providers\/twilio\/{providerId}": { + "patch": { + "summary": "Update Twilio provider", + "operationId": "messagingUpdateTwilioProvider", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "messaging" + ], + "description": "Update a Twilio provider by its unique ID.", + "responses": { + "200": { + "description": "Provider", + "schema": { + "$ref": "#\/definitions\/provider" } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateTwilioProvider", + "group": "providers", + "weight": 196, + "cookies": false, + "type": "", + "demo": "messaging\/update-twilio-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.write", + "platforms": [ + "console", + "server" ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-twilio-provider.md", "auth": { "Project": [], "Key": [] @@ -21444,12 +26550,23 @@ "x-example": false, "x-nullable": true }, - "serviceAccountJSON": { - "type": "object", - "description": "FCM service account JSON.", - "default": {}, - "x-example": "{}", - "x-nullable": true + "accountSid": { + "type": "string", + "description": "Twilio account secret ID.", + "default": "", + "x-example": "<ACCOUNT_SID>" + }, + "authToken": { + "type": "string", + "description": "Twilio authentication token.", + "default": "", + "x-example": "<AUTH_TOKEN>" + }, + "from": { + "type": "string", + "description": "Sender number.", + "default": "", + "x-example": "<FROM>" } } } @@ -21457,10 +26574,10 @@ ] } }, - "\/messaging\/providers\/mailgun": { + "\/messaging\/providers\/vonage": { "post": { - "summary": "Create Mailgun provider", - "operationId": "messagingCreateMailgunProvider", + "summary": "Create Vonage provider", + "operationId": "messagingCreateVonageProvider", "consumes": [ "application\/json" ], @@ -21470,7 +26587,7 @@ "tags": [ "messaging" ], - "description": "Create a new Mailgun provider.", + "description": "Create a new Vonage provider.", "responses": { "201": { "description": "Provider", @@ -21481,12 +26598,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "createMailgunProvider", + "method": "createVonageProvider", "group": "providers", - "weight": 191, + "weight": 183, "cookies": false, "type": "", - "demo": "messaging\/create-mailgun-provider.md", + "demo": "messaging\/create-vonage-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -21497,7 +26614,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-mailgun-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-vonage-provider.md", "auth": { "Project": [], "Key": [] @@ -21528,50 +26645,24 @@ "default": null, "x-example": "<NAME>" }, - "apiKey": { - "type": "string", - "description": "Mailgun API Key.", - "default": "", - "x-example": "<API_KEY>" - }, - "domain": { - "type": "string", - "description": "Mailgun Domain.", - "default": "", - "x-example": "<DOMAIN>" - }, - "isEuRegion": { - "type": "boolean", - "description": "Set as EU region.", - "default": null, - "x-example": false, - "x-nullable": true - }, - "fromName": { - "type": "string", - "description": "Sender Name.", - "default": "", - "x-example": "<FROM_NAME>" - }, - "fromEmail": { + "from": { "type": "string", - "description": "Sender email address.", + "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", "default": "", - "x-example": "email@example.com", - "format": "email" + "x-example": "+12065550100", + "format": "phone" }, - "replyToName": { + "apiKey": { "type": "string", - "description": "Name set in the reply to field for the mail. Default value is sender name. Reply to name must have reply to email as well.", + "description": "Vonage API key.", "default": "", - "x-example": "<REPLY_TO_NAME>" + "x-example": "<API_KEY>" }, - "replyToEmail": { + "apiSecret": { "type": "string", - "description": "Email set in the reply to field for the mail. Default value is sender email. Reply to email must have reply to name as well.", + "description": "Vonage API secret.", "default": "", - "x-example": "email@example.com", - "format": "email" + "x-example": "<API_SECRET>" }, "enabled": { "type": "boolean", @@ -21590,10 +26681,10 @@ ] } }, - "\/messaging\/providers\/mailgun\/{providerId}": { + "\/messaging\/providers\/vonage\/{providerId}": { "patch": { - "summary": "Update Mailgun provider", - "operationId": "messagingUpdateMailgunProvider", + "summary": "Update Vonage provider", + "operationId": "messagingUpdateVonageProvider", "consumes": [ "application\/json" ], @@ -21603,7 +26694,7 @@ "tags": [ "messaging" ], - "description": "Update a Mailgun provider by its unique ID.", + "description": "Update a Vonage provider by its unique ID.", "responses": { "200": { "description": "Provider", @@ -21614,12 +26705,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateMailgunProvider", + "method": "updateVonageProvider", "group": "providers", - "weight": 205, + "weight": 197, "cookies": false, "type": "", - "demo": "messaging\/update-mailgun-provider.md", + "demo": "messaging\/update-vonage-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -21630,7 +26721,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-mailgun-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-vonage-provider.md", "auth": { "Project": [], "Key": [] @@ -21663,25 +26754,6 @@ "default": "", "x-example": "<NAME>" }, - "apiKey": { - "type": "string", - "description": "Mailgun API Key.", - "default": "", - "x-example": "<API_KEY>" - }, - "domain": { - "type": "string", - "description": "Mailgun Domain.", - "default": "", - "x-example": "<DOMAIN>" - }, - "isEuRegion": { - "type": "boolean", - "description": "Set as EU region.", - "default": null, - "x-example": false, - "x-nullable": true - }, "enabled": { "type": "boolean", "description": "Set as enabled.", @@ -21689,30 +26761,23 @@ "x-example": false, "x-nullable": true }, - "fromName": { - "type": "string", - "description": "Sender Name.", - "default": "", - "x-example": "<FROM_NAME>" - }, - "fromEmail": { + "apiKey": { "type": "string", - "description": "Sender email address.", + "description": "Vonage API key.", "default": "", - "x-example": "email@example.com", - "format": "email" + "x-example": "<API_KEY>" }, - "replyToName": { + "apiSecret": { "type": "string", - "description": "Name set in the reply to field for the mail. Default value is sender name.", + "description": "Vonage API secret.", "default": "", - "x-example": "<REPLY_TO_NAME>" + "x-example": "<API_SECRET>" }, - "replyToEmail": { + "from": { "type": "string", - "description": "Email set in the reply to field for the mail. Default value is sender email.", + "description": "Sender number.", "default": "", - "x-example": "<REPLY_TO_EMAIL>" + "x-example": "<FROM>" } } } @@ -21720,22 +26785,20 @@ ] } }, - "\/messaging\/providers\/msg91": { - "post": { - "summary": "Create Msg91 provider", - "operationId": "messagingCreateMsg91Provider", - "consumes": [ - "application\/json" - ], + "\/messaging\/providers\/{providerId}": { + "get": { + "summary": "Get provider", + "operationId": "messagingGetProvider", + "consumes": [], "produces": [ "application\/json" ], "tags": [ "messaging" ], - "description": "Create a new MSG91 provider.", + "description": "Get a provider by its unique ID.\n", "responses": { - "201": { + "200": { "description": "Provider", "schema": { "$ref": "#\/definitions\/provider" @@ -21744,12 +26807,69 @@ }, "deprecated": false, "x-appwrite": { - "method": "createMsg91Provider", + "method": "getProvider", "group": "providers", - "weight": 195, + "weight": 188, "cookies": false, "type": "", - "demo": "messaging\/create-msg-91-provider.md", + "demo": "messaging\/get-provider.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/get-provider.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "type": "string", + "x-example": "<PROVIDER_ID>", + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete provider", + "operationId": "messagingDeleteProvider", + "consumes": [ + "application\/json" + ], + "produces": [], + "tags": [ + "messaging" + ], + "description": "Delete a provider by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteProvider", + "group": "providers", + "weight": 200, + "cookies": false, + "type": "", + "demo": "messaging\/delete-provider.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -21760,7 +26880,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-msg91-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-provider.md", "auth": { "Project": [], "Key": [] @@ -21774,99 +26894,221 @@ ], "parameters": [ { - "name": "payload", - "in": "body", + "name": "providerId", + "description": "Provider ID.", + "required": true, + "type": "string", + "x-example": "<PROVIDER_ID>", + "in": "path" + } + ] + } + }, + "\/messaging\/providers\/{providerId}\/logs": { + "get": { + "summary": "List provider logs", + "operationId": "messagingListProviderLogs", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "messaging" + ], + "description": "Get the provider activity logs listed by its unique ID.", + "responses": { + "200": { + "description": "Logs List", "schema": { - "type": "object", - "properties": { - "providerId": { - "type": "string", - "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": null, - "x-example": "<PROVIDER_ID>" - }, - "name": { - "type": "string", - "description": "Provider name.", - "default": null, - "x-example": "<NAME>" - }, - "templateId": { - "type": "string", - "description": "Msg91 template ID", - "default": "", - "x-example": "<TEMPLATE_ID>" - }, - "senderId": { - "type": "string", - "description": "Msg91 sender ID.", - "default": "", - "x-example": "<SENDER_ID>" - }, - "authKey": { - "type": "string", - "description": "Msg91 auth key.", - "default": "", - "x-example": "<AUTH_KEY>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "default": null, - "x-example": false, - "x-nullable": true - } - }, - "required": [ - "providerId", - "name" - ] + "$ref": "#\/definitions\/logList" } } + }, + "deprecated": false, + "x-appwrite": { + "method": "listProviderLogs", + "group": "providers", + "weight": 187, + "cookies": false, + "type": "", + "demo": "messaging\/list-provider-logs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "providers.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-provider-logs.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "providerId", + "description": "Provider ID.", + "required": true, + "type": "string", + "x-example": "<PROVIDER_ID>", + "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). Only supported methods are limit and offset", + "required": false, + "type": "array", + "collectionFormat": "multi", + "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, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" + } ] } }, - "\/messaging\/providers\/msg91\/{providerId}": { - "patch": { - "summary": "Update Msg91 provider", - "operationId": "messagingUpdateMsg91Provider", - "consumes": [ + "\/messaging\/subscribers\/{subscriberId}\/logs": { + "get": { + "summary": "List subscriber logs", + "operationId": "messagingListSubscriberLogs", + "consumes": [], + "produces": [ "application\/json" ], + "tags": [ + "messaging" + ], + "description": "Get the subscriber activity logs listed by its unique ID.", + "responses": { + "200": { + "description": "Logs List", + "schema": { + "$ref": "#\/definitions\/logList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listSubscriberLogs", + "group": "subscribers", + "weight": 209, + "cookies": false, + "type": "", + "demo": "messaging\/list-subscriber-logs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "subscribers.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-subscriber-logs.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "subscriberId", + "description": "Subscriber ID.", + "required": true, + "type": "string", + "x-example": "<SUBSCRIBER_ID>", + "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). Only supported methods are limit and offset", + "required": false, + "type": "array", + "collectionFormat": "multi", + "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, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" + } + ] + } + }, + "\/messaging\/topics": { + "get": { + "summary": "List topics", + "operationId": "messagingListTopics", + "consumes": [], "produces": [ "application\/json" ], "tags": [ "messaging" ], - "description": "Update a MSG91 provider by its unique ID.", + "description": "Get a list of all topics from the current Appwrite project.", "responses": { "200": { - "description": "Provider", + "description": "Topic list", "schema": { - "$ref": "#\/definitions\/provider" + "$ref": "#\/definitions\/topicList" } } }, "deprecated": false, "x-appwrite": { - "method": "updateMsg91Provider", - "group": "providers", - "weight": 209, + "method": "listTopics", + "group": "topics", + "weight": 202, "cookies": false, "type": "", - "demo": "messaging\/update-msg-91-provider.md", + "demo": "messaging\/list-topics.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "topics.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-msg91-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-topics.md", "auth": { "Project": [], "Key": [] @@ -21880,60 +27122,40 @@ ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", - "required": true, + "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, description, emailTotal, smsTotal, pushTotal", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, "type": "string", - "x-example": "<PROVIDER_ID>", - "in": "path" + "x-example": "<SEARCH>", + "default": "", + "in": "query" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "default": "", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "default": null, - "x-example": false, - "x-nullable": true - }, - "templateId": { - "type": "string", - "description": "Msg91 template ID.", - "default": "", - "x-example": "<TEMPLATE_ID>" - }, - "senderId": { - "type": "string", - "description": "Msg91 sender ID.", - "default": "", - "x-example": "<SENDER_ID>" - }, - "authKey": { - "type": "string", - "description": "Msg91 auth key.", - "default": "", - "x-example": "<AUTH_KEY>" - } - } - } + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" } ] - } - }, - "\/messaging\/providers\/resend": { + }, "post": { - "summary": "Create Resend provider", - "operationId": "messagingCreateResendProvider", + "summary": "Create topic", + "operationId": "messagingCreateTopic", "consumes": [ "application\/json" ], @@ -21943,34 +27165,34 @@ "tags": [ "messaging" ], - "description": "Create a new Resend provider.", + "description": "Create a new topic.", "responses": { "201": { - "description": "Provider", + "description": "Topic", "schema": { - "$ref": "#\/definitions\/provider" + "$ref": "#\/definitions\/topic" } } }, "deprecated": false, "x-appwrite": { - "method": "createResendProvider", - "group": "providers", - "weight": 193, + "method": "createTopic", + "group": "topics", + "weight": 201, "cookies": false, "type": "", - "demo": "messaging\/create-resend-provider.md", + "demo": "messaging\/create-topic.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "topics.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-resend-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-topic.md", "auth": { "Project": [], "Key": [] @@ -21989,60 +27211,32 @@ "schema": { "type": "object", "properties": { - "providerId": { + "topicId": { "type": "string", - "description": "Provider 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.", + "description": "Topic ID. Choose a custom Topic ID or a new Topic ID.", "default": null, - "x-example": "<PROVIDER_ID>" + "x-example": "<TOPIC_ID>" }, "name": { "type": "string", - "description": "Provider name.", + "description": "Topic Name.", "default": null, "x-example": "<NAME>" }, - "apiKey": { - "type": "string", - "description": "Resend API key.", - "default": "", - "x-example": "<API_KEY>" - }, - "fromName": { - "type": "string", - "description": "Sender Name.", - "default": "", - "x-example": "<FROM_NAME>" - }, - "fromEmail": { - "type": "string", - "description": "Sender email address.", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, - "replyToName": { - "type": "string", - "description": "Name set in the reply to field for the mail. Default value is sender name.", - "default": "", - "x-example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "type": "string", - "description": "Email set in the reply to field for the mail. Default value is sender email.", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "default": null, - "x-example": false, - "x-nullable": true + "subscribe": { + "type": "array", + "description": "An array of role strings with subscribe permission. By default all users are granted with any subscribe permission. [learn more about roles](https:\/\/appwrite.io\/docs\/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.", + "default": [ + "users" + ], + "x-example": "[\"any\"]", + "items": { + "type": "string" + } } }, "required": [ - "providerId", + "topicId", "name" ] } @@ -22050,10 +27244,70 @@ ] } }, - "\/messaging\/providers\/resend\/{providerId}": { + "\/messaging\/topics\/{topicId}": { + "get": { + "summary": "Get topic", + "operationId": "messagingGetTopic", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "messaging" + ], + "description": "Get a topic by its unique ID.\n", + "responses": { + "200": { + "description": "Topic", + "schema": { + "$ref": "#\/definitions\/topic" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getTopic", + "group": "topics", + "weight": 204, + "cookies": false, + "type": "", + "demo": "messaging\/get-topic.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "topics.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/get-topic.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "topicId", + "description": "Topic ID.", + "required": true, + "type": "string", + "x-example": "<TOPIC_ID>", + "in": "path" + } + ] + }, "patch": { - "summary": "Update Resend provider", - "operationId": "messagingUpdateResendProvider", + "summary": "Update topic", + "operationId": "messagingUpdateTopic", "consumes": [ "application\/json" ], @@ -22063,34 +27317,34 @@ "tags": [ "messaging" ], - "description": "Update a Resend provider by its unique ID.", + "description": "Update a topic by its unique ID.\n", "responses": { "200": { - "description": "Provider", + "description": "Topic", "schema": { - "$ref": "#\/definitions\/provider" + "$ref": "#\/definitions\/topic" } } }, "deprecated": false, "x-appwrite": { - "method": "updateResendProvider", - "group": "providers", - "weight": 207, + "method": "updateTopic", + "group": "topics", + "weight": 205, "cookies": false, "type": "", - "demo": "messaging\/update-resend-provider.md", + "demo": "messaging\/update-topic.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "topics.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-resend-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-topic.md", "auth": { "Project": [], "Key": [] @@ -22104,11 +27358,11 @@ ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", + "name": "topicId", + "description": "Topic ID.", "required": true, "type": "string", - "x-example": "<PROVIDER_ID>", + "x-example": "<TOPIC_ID>", "in": "path" }, { @@ -22119,95 +27373,61 @@ "properties": { "name": { "type": "string", - "description": "Provider name.", - "default": "", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", + "description": "Topic Name.", "default": null, - "x-example": false, + "x-example": "<NAME>", "x-nullable": true }, - "apiKey": { - "type": "string", - "description": "Resend API key.", - "default": "", - "x-example": "<API_KEY>" - }, - "fromName": { - "type": "string", - "description": "Sender Name.", - "default": "", - "x-example": "<FROM_NAME>" - }, - "fromEmail": { - "type": "string", - "description": "Sender email address.", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, - "replyToName": { - "type": "string", - "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", - "default": "", - "x-example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "type": "string", - "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", - "default": "", - "x-example": "<REPLY_TO_EMAIL>" + "subscribe": { + "type": "array", + "description": "An array of role strings with subscribe permission. By default all users are granted with any subscribe permission. [learn more about roles](https:\/\/appwrite.io\/docs\/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.", + "default": null, + "x-example": "[\"any\"]", + "x-nullable": true, + "items": { + "type": "string" + } } } } } ] - } - }, - "\/messaging\/providers\/sendgrid": { - "post": { - "summary": "Create Sendgrid provider", - "operationId": "messagingCreateSendgridProvider", + }, + "delete": { + "summary": "Delete topic", + "operationId": "messagingDeleteTopic", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ "messaging" ], - "description": "Create a new Sendgrid provider.", + "description": "Delete a topic by its unique ID.", "responses": { - "201": { - "description": "Provider", - "schema": { - "$ref": "#\/definitions\/provider" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "createSendgridProvider", - "group": "providers", - "weight": 192, + "method": "deleteTopic", + "group": "topics", + "weight": 206, "cookies": false, "type": "", - "demo": "messaging\/create-sendgrid-provider.md", + "demo": "messaging\/delete-topic.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "topics.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-sendgrid-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-topic.md", "auth": { "Project": [], "Key": [] @@ -22221,113 +27441,55 @@ ], "parameters": [ { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "providerId": { - "type": "string", - "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": null, - "x-example": "<PROVIDER_ID>" - }, - "name": { - "type": "string", - "description": "Provider name.", - "default": null, - "x-example": "<NAME>" - }, - "apiKey": { - "type": "string", - "description": "Sendgrid API key.", - "default": "", - "x-example": "<API_KEY>" - }, - "fromName": { - "type": "string", - "description": "Sender Name.", - "default": "", - "x-example": "<FROM_NAME>" - }, - "fromEmail": { - "type": "string", - "description": "Sender email address.", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, - "replyToName": { - "type": "string", - "description": "Name set in the reply to field for the mail. Default value is sender name.", - "default": "", - "x-example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "type": "string", - "description": "Email set in the reply to field for the mail. Default value is sender email.", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "default": null, - "x-example": false, - "x-nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } + "name": "topicId", + "description": "Topic ID.", + "required": true, + "type": "string", + "x-example": "<TOPIC_ID>", + "in": "path" } ] } }, - "\/messaging\/providers\/sendgrid\/{providerId}": { - "patch": { - "summary": "Update Sendgrid provider", - "operationId": "messagingUpdateSendgridProvider", - "consumes": [ - "application\/json" - ], + "\/messaging\/topics\/{topicId}\/logs": { + "get": { + "summary": "List topic logs", + "operationId": "messagingListTopicLogs", + "consumes": [], "produces": [ "application\/json" ], "tags": [ "messaging" ], - "description": "Update a Sendgrid provider by its unique ID.", + "description": "Get the topic activity logs listed by its unique ID.", "responses": { "200": { - "description": "Provider", + "description": "Logs List", "schema": { - "$ref": "#\/definitions\/provider" + "$ref": "#\/definitions\/logList" } } }, "deprecated": false, "x-appwrite": { - "method": "updateSendgridProvider", - "group": "providers", - "weight": 206, + "method": "listTopicLogs", + "group": "topics", + "weight": 203, "cookies": false, "type": "", - "demo": "messaging\/update-sendgrid-provider.md", + "demo": "messaging\/list-topic-logs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "topics.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-sendgrid-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-topic-logs.md", "auth": { "Project": [], "Key": [] @@ -22341,198 +27503,76 @@ ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", + "name": "topicId", + "description": "Topic ID.", "required": true, "type": "string", - "x-example": "<PROVIDER_ID>", + "x-example": "<TOPIC_ID>", "in": "path" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "default": "", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "default": null, - "x-example": false, - "x-nullable": true - }, - "apiKey": { - "type": "string", - "description": "Sendgrid API key.", - "default": "", - "x-example": "<API_KEY>" - }, - "fromName": { - "type": "string", - "description": "Sender Name.", - "default": "", - "x-example": "<FROM_NAME>" - }, - "fromEmail": { - "type": "string", - "description": "Sender email address.", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, - "replyToName": { - "type": "string", - "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", - "default": "", - "x-example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "type": "string", - "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", - "default": "", - "x-example": "<REPLY_TO_EMAIL>" - } - } - } + "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, + "type": "array", + "collectionFormat": "multi", + "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, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" } ] } }, - "\/messaging\/providers\/smtp": { - "post": { - "summary": "Create SMTP provider", - "operationId": "messagingCreateSmtpProvider", - "consumes": [ - "application\/json" - ], + "\/messaging\/topics\/{topicId}\/subscribers": { + "get": { + "summary": "List subscribers", + "operationId": "messagingListSubscribers", + "consumes": [], "produces": [ "application\/json" ], "tags": [ "messaging" ], - "description": "Create a new SMTP provider.", + "description": "Get a list of all subscribers from the current Appwrite project.", "responses": { - "201": { - "description": "Provider", + "200": { + "description": "Subscriber list", "schema": { - "$ref": "#\/definitions\/provider" + "$ref": "#\/definitions\/subscriberList" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createSmtpProvider", - "group": "providers", - "weight": 194, + "method": "listSubscribers", + "group": "subscribers", + "weight": 208, "cookies": false, "type": "", - "demo": "messaging\/create-smtp-provider.md", + "demo": "messaging\/list-subscribers.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "subscribers.read", "platforms": [ "console", "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-smtp-provider.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createSMTPProvider" - }, - "methods": [ - { - "name": "createSmtpProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "providerId", - "name", - "host", - "port", - "username", - "password", - "encryption", - "autoTLS", - "mailer", - "fromName", - "fromEmail", - "replyToName", - "replyToEmail", - "enabled" - ], - "required": [ - "providerId", - "name", - "host" - ], - "responses": [ - { - "code": 201, - "model": "#\/definitions\/provider" - } - ], - "description": "Create a new SMTP provider.", - "demo": "messaging\/create-smtp-provider.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.createSMTPProvider" - } - }, - { - "name": "createSMTPProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "providerId", - "name", - "host", - "port", - "username", - "password", - "encryption", - "autoTLS", - "mailer", - "fromName", - "fromEmail", - "replyToName", - "replyToEmail", - "enabled" - ], - "required": [ - "providerId", - "name", - "host" - ], - "responses": [ - { - "code": 201, - "model": "#\/definitions\/provider" - } - ], - "description": "Create a new SMTP provider.", - "demo": "messaging\/create-smtp-provider.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-subscribers.md", "auth": { "Project": [], "Key": [] @@ -22546,121 +27586,48 @@ ], "parameters": [ { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "providerId": { - "type": "string", - "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": null, - "x-example": "<PROVIDER_ID>" - }, - "name": { - "type": "string", - "description": "Provider name.", - "default": null, - "x-example": "<NAME>" - }, - "host": { - "type": "string", - "description": "SMTP hosts. Either a single hostname or multiple semicolon-delimited hostnames. You can also specify a different port for each host such as `smtp1.example.com:25;smtp2.example.com`. You can also specify encryption type, for example: `tls:\/\/smtp1.example.com:587;ssl:\/\/smtp2.example.com:465\"`. Hosts will be tried in order.", - "default": null, - "x-example": "<HOST>" - }, - "port": { - "type": "integer", - "description": "The default SMTP server port.", - "default": 587, - "x-example": 1, - "format": "int32" - }, - "username": { - "type": "string", - "description": "Authentication username.", - "default": "", - "x-example": "<USERNAME>" - }, - "password": { - "type": "string", - "description": "Authentication password.", - "default": "", - "x-example": "<PASSWORD>" - }, - "encryption": { - "type": "string", - "description": "Encryption type. Can be omitted, 'ssl', or 'tls'", - "default": "", - "x-example": "none", - "enum": [ - "none", - "ssl", - "tls" - ], - "x-enum-name": "SmtpEncryption", - "x-enum-keys": [] - }, - "autoTLS": { - "type": "boolean", - "description": "Enable SMTP AutoTLS feature.", - "default": true, - "x-example": false - }, - "mailer": { - "type": "string", - "description": "The value to use for the X-Mailer header.", - "default": "", - "x-example": "<MAILER>" - }, - "fromName": { - "type": "string", - "description": "Sender Name.", - "default": "", - "x-example": "<FROM_NAME>" - }, - "fromEmail": { - "type": "string", - "description": "Sender email address.", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, - "replyToName": { - "type": "string", - "description": "Name set in the reply to field for the mail. Default value is sender name.", - "default": "", - "x-example": "<REPLY_TO_NAME>" - }, - "replyToEmail": { - "type": "string", - "description": "Email set in the reply to field for the mail. Default value is sender email.", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "default": null, - "x-example": false, - "x-nullable": true - } - }, - "required": [ - "providerId", - "name", - "host" - ] - } + "name": "topicId", + "description": "Topic ID. The topic ID subscribed to.", + "required": true, + "type": "string", + "x-example": "<TOPIC_ID>", + "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: targetId, topicId, userId, providerType", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "type": "string", + "x-example": "<SEARCH>", + "default": "", + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" } ] - } - }, - "\/messaging\/providers\/smtp\/{providerId}": { - "patch": { - "summary": "Update SMTP provider", - "operationId": "messagingUpdateSmtpProvider", + }, + "post": { + "summary": "Create subscriber", + "operationId": "messagingCreateSubscriber", "consumes": [ "application\/json" ], @@ -22670,136 +27637,55 @@ "tags": [ "messaging" ], - "description": "Update a SMTP provider by its unique ID.", + "description": "Create a new subscriber.", "responses": { - "200": { - "description": "Provider", + "201": { + "description": "Subscriber", "schema": { - "$ref": "#\/definitions\/provider" + "$ref": "#\/definitions\/subscriber" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateSmtpProvider", - "group": "providers", - "weight": 208, + "method": "createSubscriber", + "group": "subscribers", + "weight": 207, "cookies": false, "type": "", - "demo": "messaging\/update-smtp-provider.md", + "demo": "messaging\/create-subscriber.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "subscribers.write", "platforms": [ - "console", - "server" + "server", + "client", + "console" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-smtp-provider.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateSMTPProvider" - }, - "methods": [ - { - "name": "updateSmtpProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "providerId", - "name", - "host", - "port", - "username", - "password", - "encryption", - "autoTLS", - "mailer", - "fromName", - "fromEmail", - "replyToName", - "replyToEmail", - "enabled" - ], - "required": [ - "providerId" - ], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/provider" - } - ], - "description": "Update a SMTP provider by its unique ID.", - "demo": "messaging\/update-smtp-provider.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "messaging.updateSMTPProvider" - } - }, - { - "name": "updateSMTPProvider", - "namespace": "messaging", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "providerId", - "name", - "host", - "port", - "username", - "password", - "encryption", - "autoTLS", - "mailer", - "fromName", - "fromEmail", - "replyToName", - "replyToEmail", - "enabled" - ], - "required": [ - "providerId" - ], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/provider" - } - ], - "description": "Update a SMTP provider by its unique ID.", - "demo": "messaging\/update-smtp-provider.md", - "public": true - } - ], + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-subscriber.md", "auth": { "Project": [], - "Key": [] + "JWT": [] } }, "security": [ { "Project": [], + "JWT": [], + "Session": [], "Key": [] } ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", + "name": "topicId", + "description": "Topic ID. The topic ID to subscribe to.", "required": true, "type": "string", - "x-example": "<PROVIDER_ID>", + "x-example": "<TOPIC_ID>", "in": "path" }, { @@ -22808,143 +27694,67 @@ "schema": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "default": "", - "x-example": "<NAME>" - }, - "host": { - "type": "string", - "description": "SMTP hosts. Either a single hostname or multiple semicolon-delimited hostnames. You can also specify a different port for each host such as `smtp1.example.com:25;smtp2.example.com`. You can also specify encryption type, for example: `tls:\/\/smtp1.example.com:587;ssl:\/\/smtp2.example.com:465\"`. Hosts will be tried in order.", - "default": "", - "x-example": "<HOST>" - }, - "port": { - "type": "integer", - "description": "SMTP port.", - "default": null, - "x-example": 1, - "format": "int32", - "x-nullable": true - }, - "username": { - "type": "string", - "description": "Authentication username.", - "default": "", - "x-example": "<USERNAME>" - }, - "password": { - "type": "string", - "description": "Authentication password.", - "default": "", - "x-example": "<PASSWORD>" - }, - "encryption": { + "subscriberId": { "type": "string", - "description": "Encryption type. Can be 'ssl' or 'tls'", - "default": "", - "x-example": "none", - "enum": [ - "none", - "ssl", - "tls" - ], - "x-enum-name": "SmtpEncryption", - "x-enum-keys": [] - }, - "autoTLS": { - "type": "boolean", - "description": "Enable SMTP AutoTLS feature.", + "description": "Subscriber ID. Choose a custom Subscriber ID or a new Subscriber ID.", "default": null, - "x-example": false, - "x-nullable": true - }, - "mailer": { - "type": "string", - "description": "The value to use for the X-Mailer header.", - "default": "", - "x-example": "<MAILER>" - }, - "fromName": { - "type": "string", - "description": "Sender Name.", - "default": "", - "x-example": "<FROM_NAME>" - }, - "fromEmail": { - "type": "string", - "description": "Sender email address.", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, - "replyToName": { - "type": "string", - "description": "Name set in the Reply To field for the mail. Default value is Sender Name.", - "default": "", - "x-example": "<REPLY_TO_NAME>" + "x-example": "<SUBSCRIBER_ID>" }, - "replyToEmail": { + "targetId": { "type": "string", - "description": "Email set in the Reply To field for the mail. Default value is Sender Email.", - "default": "", - "x-example": "<REPLY_TO_EMAIL>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", + "description": "Target ID. The target ID to link to the specified Topic ID.", "default": null, - "x-example": false, - "x-nullable": true + "x-example": "<TARGET_ID>" } - } + }, + "required": [ + "subscriberId", + "targetId" + ] } } - ] - } - }, - "\/messaging\/providers\/telesign": { - "post": { - "summary": "Create Telesign provider", - "operationId": "messagingCreateTelesignProvider", - "consumes": [ - "application\/json" - ], + ] + } + }, + "\/messaging\/topics\/{topicId}\/subscribers\/{subscriberId}": { + "get": { + "summary": "Get subscriber", + "operationId": "messagingGetSubscriber", + "consumes": [], "produces": [ "application\/json" ], "tags": [ "messaging" ], - "description": "Create a new Telesign provider.", + "description": "Get a subscriber by its unique ID.\n", "responses": { - "201": { - "description": "Provider", + "200": { + "description": "Subscriber", "schema": { - "$ref": "#\/definitions\/provider" + "$ref": "#\/definitions\/subscriber" } } }, "deprecated": false, "x-appwrite": { - "method": "createTelesignProvider", - "group": "providers", - "weight": 196, + "method": "getSubscriber", + "group": "subscribers", + "weight": 210, "cookies": false, "type": "", - "demo": "messaging\/create-telesign-provider.md", + "demo": "messaging\/get-subscriber.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "subscribers.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-telesign-provider.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/get-subscriber.md", "auth": { "Project": [], "Key": [] @@ -22958,100 +27768,130 @@ ], "parameters": [ { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "providerId": { - "type": "string", - "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": null, - "x-example": "<PROVIDER_ID>" - }, - "name": { - "type": "string", - "description": "Provider name.", - "default": null, - "x-example": "<NAME>" - }, - "from": { - "type": "string", - "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "default": "", - "x-example": "+12065550100", - "format": "phone" - }, - "customerId": { - "type": "string", - "description": "Telesign customer ID.", - "default": "", - "x-example": "<CUSTOMER_ID>" - }, - "apiKey": { - "type": "string", - "description": "Telesign API key.", - "default": "", - "x-example": "<API_KEY>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "default": null, - "x-example": false, - "x-nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } + "name": "topicId", + "description": "Topic ID. The topic ID subscribed to.", + "required": true, + "type": "string", + "x-example": "<TOPIC_ID>", + "in": "path" + }, + { + "name": "subscriberId", + "description": "Subscriber ID.", + "required": true, + "type": "string", + "x-example": "<SUBSCRIBER_ID>", + "in": "path" } ] - } - }, - "\/messaging\/providers\/telesign\/{providerId}": { - "patch": { - "summary": "Update Telesign provider", - "operationId": "messagingUpdateTelesignProvider", + }, + "delete": { + "summary": "Delete subscriber", + "operationId": "messagingDeleteSubscriber", "consumes": [ "application\/json" ], + "produces": [], + "tags": [ + "messaging" + ], + "description": "Delete a subscriber by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteSubscriber", + "group": "subscribers", + "weight": 211, + "cookies": false, + "type": "", + "demo": "messaging\/delete-subscriber.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "subscribers.write", + "platforms": [ + "server", + "client", + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-subscriber.md", + "auth": { + "Project": [], + "JWT": [] + } + }, + "security": [ + { + "Project": [], + "JWT": [], + "Session": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "topicId", + "description": "Topic ID. The topic ID subscribed to.", + "required": true, + "type": "string", + "x-example": "<TOPIC_ID>", + "in": "path" + }, + { + "name": "subscriberId", + "description": "Subscriber ID.", + "required": true, + "type": "string", + "x-example": "<SUBSCRIBER_ID>", + "in": "path" + } + ] + } + }, + "\/sites": { + "get": { + "summary": "List sites", + "operationId": "sitesList", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "sites" ], - "description": "Update a Telesign provider by its unique ID.", + "description": "Get a list of all the project's sites. You can use the query params to filter your results.", "responses": { "200": { - "description": "Provider", + "description": "Sites List", "schema": { - "$ref": "#\/definitions\/provider" + "$ref": "#\/definitions\/siteList" } } }, "deprecated": false, "x-appwrite": { - "method": "updateTelesignProvider", - "group": "providers", - "weight": 210, + "method": "list", + "group": "sites", + "weight": 531, "cookies": false, "type": "", - "demo": "messaging\/update-telesign-provider.md", + "demo": "sites\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "sites.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-telesign-provider.md", "auth": { "Project": [], "Key": [] @@ -23065,60 +27905,40 @@ ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", - "required": true, + "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, framework, deploymentId, buildCommand, installCommand, outputDirectory, installationId", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, "type": "string", - "x-example": "<PROVIDER_ID>", - "in": "path" + "x-example": "<SEARCH>", + "default": "", + "in": "query" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "default": "", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "default": null, - "x-example": false, - "x-nullable": true - }, - "customerId": { - "type": "string", - "description": "Telesign customer ID.", - "default": "", - "x-example": "<CUSTOMER_ID>" - }, - "apiKey": { - "type": "string", - "description": "Telesign API key.", - "default": "", - "x-example": "<API_KEY>" - }, - "from": { - "type": "string", - "description": "Sender number.", - "default": "", - "x-example": "<FROM>" - } - } - } + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" } ] - } - }, - "\/messaging\/providers\/textmagic": { + }, "post": { - "summary": "Create Textmagic provider", - "operationId": "messagingCreateTextmagicProvider", + "summary": "Create site", + "operationId": "sitesCreate", "consumes": [ "application\/json" ], @@ -23126,36 +27946,35 @@ "application\/json" ], "tags": [ - "messaging" + "sites" ], - "description": "Create a new Textmagic provider.", + "description": "Create a new site.", "responses": { "201": { - "description": "Provider", + "description": "Site", "schema": { - "$ref": "#\/definitions\/provider" + "$ref": "#\/definitions\/site" } } }, "deprecated": false, "x-appwrite": { - "method": "createTextmagicProvider", - "group": "providers", - "weight": 197, + "method": "create", + "group": "sites", + "weight": 629, "cookies": false, "type": "", - "demo": "messaging\/create-textmagic-provider.md", + "demo": "sites\/create.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "sites.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-textmagic-provider.md", "auth": { "Project": [], "Key": [] @@ -23174,95 +27993,283 @@ "schema": { "type": "object", "properties": { - "providerId": { + "siteId": { "type": "string", - "description": "Provider 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.", + "description": "Site ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", "default": null, - "x-example": "<PROVIDER_ID>" + "x-example": "<SITE_ID>" }, "name": { "type": "string", - "description": "Provider name.", + "description": "Site name. Max length: 128 chars.", "default": null, "x-example": "<NAME>" }, - "from": { + "framework": { "type": "string", - "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "description": "Sites framework.", + "default": null, + "x-example": "analog", + "enum": [ + "analog", + "angular", + "nextjs", + "react", + "nuxt", + "vue", + "sveltekit", + "astro", + "tanstack-start", + "remix", + "lynx", + "flutter", + "react-native", + "vite", + "other" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "enabled": { + "type": "boolean", + "description": "Is site enabled? When set to 'disabled', users cannot access the site but Server SDKs with and API key can still access the site. No data is lost when this is toggled.", + "default": true, + "x-example": false + }, + "logging": { + "type": "boolean", + "description": "When disabled, request logs will exclude logs and errors, and site responses will be slightly faster.", + "default": true, + "x-example": false + }, + "timeout": { + "type": "integer", + "description": "Maximum request time in seconds.", + "default": 30, + "x-example": 1, + "format": "int32" + }, + "installCommand": { + "type": "string", + "description": "Install Command.", "default": "", - "x-example": "+12065550100", - "format": "phone" + "x-example": "<INSTALL_COMMAND>" }, - "username": { + "buildCommand": { "type": "string", - "description": "Textmagic username.", + "description": "Build Command.", "default": "", - "x-example": "<USERNAME>" + "x-example": "<BUILD_COMMAND>" }, - "apiKey": { + "outputDirectory": { "type": "string", - "description": "Textmagic apiKey.", + "description": "Output Directory for site.", "default": "", - "x-example": "<API_KEY>" + "x-example": "<OUTPUT_DIRECTORY>" }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", + "buildRuntime": { + "type": "string", + "description": "Runtime to use during build step.", "default": null, - "x-example": false, - "x-nullable": true + "x-example": "node-14.5", + "enum": [ + "node-14.5", + "node-16.0", + "node-18.0", + "node-19.0", + "node-20.0", + "node-21.0", + "node-22", + "node-23", + "node-24", + "node-25", + "php-8.0", + "php-8.1", + "php-8.2", + "php-8.3", + "php-8.4", + "ruby-3.0", + "ruby-3.1", + "ruby-3.2", + "ruby-3.3", + "ruby-3.4", + "ruby-4.0", + "python-3.8", + "python-3.9", + "python-3.10", + "python-3.11", + "python-3.12", + "python-3.13", + "python-3.14", + "python-ml-3.11", + "python-ml-3.12", + "python-ml-3.13", + "deno-1.21", + "deno-1.24", + "deno-1.35", + "deno-1.40", + "deno-1.46", + "deno-2.0", + "deno-2.5", + "deno-2.6", + "dart-2.15", + "dart-2.16", + "dart-2.17", + "dart-2.18", + "dart-2.19", + "dart-3.0", + "dart-3.1", + "dart-3.3", + "dart-3.5", + "dart-3.8", + "dart-3.9", + "dart-3.10", + "dotnet-6.0", + "dotnet-7.0", + "dotnet-8.0", + "dotnet-10", + "java-8.0", + "java-11.0", + "java-17.0", + "java-18.0", + "java-21.0", + "java-22", + "java-25", + "swift-5.5", + "swift-5.8", + "swift-5.9", + "swift-5.10", + "swift-6.2", + "kotlin-1.6", + "kotlin-1.8", + "kotlin-1.9", + "kotlin-2.0", + "kotlin-2.3", + "cpp-17", + "cpp-20", + "bun-1.0", + "bun-1.1", + "bun-1.2", + "bun-1.3", + "go-1.23", + "go-1.24", + "go-1.25", + "go-1.26", + "static-1", + "flutter-3.24", + "flutter-3.27", + "flutter-3.29", + "flutter-3.32", + "flutter-3.35", + "flutter-3.38" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "adapter": { + "type": "string", + "description": "Framework adapter defining rendering strategy. Allowed values are: static, ssr", + "default": "", + "x-example": "static", + "enum": [ + "static", + "ssr" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "installationId": { + "type": "string", + "description": "Appwrite Installation ID for VCS (Version Control System) deployment.", + "default": "", + "x-example": "<INSTALLATION_ID>" + }, + "fallbackFile": { + "type": "string", + "description": "Fallback file for single page application sites.", + "default": "", + "x-example": "<FALLBACK_FILE>" + }, + "providerRepositoryId": { + "type": "string", + "description": "Repository ID of the repo linked to the site.", + "default": "", + "x-example": "<PROVIDER_REPOSITORY_ID>" + }, + "providerBranch": { + "type": "string", + "description": "Production branch for the repo linked to the site.", + "default": "", + "x-example": "<PROVIDER_BRANCH>" + }, + "providerSilentMode": { + "type": "boolean", + "description": "Is the VCS (Version Control System) connection in silent mode for the repo linked to the site? In silent mode, comments will not be made on commits and pull requests.", + "default": false, + "x-example": false + }, + "providerRootDirectory": { + "type": "string", + "description": "Path to site code in the linked repo.", + "default": "", + "x-example": "<PROVIDER_ROOT_DIRECTORY>" + }, + "specification": { + "type": "string", + "description": "Framework specification for the site and builds.", + "default": {}, + "x-example": null } }, "required": [ - "providerId", - "name" + "siteId", + "name", + "framework", + "buildRuntime" ] } } ] } }, - "\/messaging\/providers\/textmagic\/{providerId}": { - "patch": { - "summary": "Update Textmagic provider", - "operationId": "messagingUpdateTextmagicProvider", - "consumes": [ - "application\/json" - ], + "\/sites\/frameworks": { + "get": { + "summary": "List frameworks", + "operationId": "sitesListFrameworks", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "sites" ], - "description": "Update a Textmagic provider by its unique ID.", + "description": "Get a list of all frameworks that are currently available on the server instance.", "responses": { "200": { - "description": "Provider", + "description": "Frameworks List", "schema": { - "$ref": "#\/definitions\/provider" + "$ref": "#\/definitions\/frameworkList" } } }, "deprecated": false, "x-appwrite": { - "method": "updateTextmagicProvider", - "group": "providers", - "weight": 211, + "method": "listFrameworks", + "group": "frameworks", + "weight": 534, "cookies": false, "type": "", - "demo": "messaging\/update-textmagic-provider.md", + "demo": "sites\/list-frameworks.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "public", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-textmagic-provider.md", "auth": { "Project": [], "Key": [] @@ -23273,100 +28280,47 @@ "Project": [], "Key": [] } - ], - "parameters": [ - { - "name": "providerId", - "description": "Provider ID.", - "required": true, - "type": "string", - "x-example": "<PROVIDER_ID>", - "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "default": "", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "default": null, - "x-example": false, - "x-nullable": true - }, - "username": { - "type": "string", - "description": "Textmagic username.", - "default": "", - "x-example": "<USERNAME>" - }, - "apiKey": { - "type": "string", - "description": "Textmagic apiKey.", - "default": "", - "x-example": "<API_KEY>" - }, - "from": { - "type": "string", - "description": "Sender number.", - "default": "", - "x-example": "<FROM>" - } - } - } - } ] } }, - "\/messaging\/providers\/twilio": { - "post": { - "summary": "Create Twilio provider", - "operationId": "messagingCreateTwilioProvider", - "consumes": [ - "application\/json" - ], + "\/sites\/specifications": { + "get": { + "summary": "List specifications", + "operationId": "sitesListSpecifications", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "sites" ], - "description": "Create a new Twilio provider.", + "description": "List allowed site specifications for this instance.", "responses": { - "201": { - "description": "Provider", + "200": { + "description": "Specifications List", "schema": { - "$ref": "#\/definitions\/provider" + "$ref": "#\/definitions\/specificationList" } } }, "deprecated": false, "x-appwrite": { - "method": "createTwilioProvider", - "group": "providers", - "weight": 198, + "method": "listSpecifications", + "group": "frameworks", + "weight": 557, "cookies": false, "type": "", - "demo": "messaging\/create-twilio-provider.md", + "demo": "sites\/list-specifications.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "sites.read", "platforms": [ - "console", - "server" + "server", + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-twilio-provider.md", "auth": { "Project": [], "Key": [] @@ -23377,103 +28331,47 @@ "Project": [], "Key": [] } - ], - "parameters": [ - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "providerId": { - "type": "string", - "description": "Provider ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": null, - "x-example": "<PROVIDER_ID>" - }, - "name": { - "type": "string", - "description": "Provider name.", - "default": null, - "x-example": "<NAME>" - }, - "from": { - "type": "string", - "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "default": "", - "x-example": "+12065550100", - "format": "phone" - }, - "accountSid": { - "type": "string", - "description": "Twilio account secret ID.", - "default": "", - "x-example": "<ACCOUNT_SID>" - }, - "authToken": { - "type": "string", - "description": "Twilio authentication token.", - "default": "", - "x-example": "<AUTH_TOKEN>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "default": null, - "x-example": false, - "x-nullable": true - } - }, - "required": [ - "providerId", - "name" - ] - } - } ] } }, - "\/messaging\/providers\/twilio\/{providerId}": { - "patch": { - "summary": "Update Twilio provider", - "operationId": "messagingUpdateTwilioProvider", - "consumes": [ - "application\/json" - ], + "\/sites\/{siteId}": { + "get": { + "summary": "Get site", + "operationId": "sitesGet", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "sites" ], - "description": "Update a Twilio provider by its unique ID.", + "description": "Get a site by its unique ID.", "responses": { "200": { - "description": "Provider", + "description": "Site", "schema": { - "$ref": "#\/definitions\/provider" + "$ref": "#\/definitions\/site" } } }, "deprecated": false, "x-appwrite": { - "method": "updateTwilioProvider", - "group": "providers", - "weight": 212, + "method": "get", + "group": "sites", + "weight": 530, "cookies": false, "type": "", - "demo": "messaging\/update-twilio-provider.md", + "demo": "sites\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "sites.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-twilio-provider.md", "auth": { "Project": [], "Key": [] @@ -23487,60 +28385,18 @@ ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "type": "string", - "x-example": "<PROVIDER_ID>", + "x-example": "<SITE_ID>", "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "default": "", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "default": null, - "x-example": false, - "x-nullable": true - }, - "accountSid": { - "type": "string", - "description": "Twilio account secret ID.", - "default": "", - "x-example": "<ACCOUNT_SID>" - }, - "authToken": { - "type": "string", - "description": "Twilio authentication token.", - "default": "", - "x-example": "<AUTH_TOKEN>" - }, - "from": { - "type": "string", - "description": "Sender number.", - "default": "", - "x-example": "<FROM>" - } - } - } } ] - } - }, - "\/messaging\/providers\/vonage": { - "post": { - "summary": "Create Vonage provider", - "operationId": "messagingCreateVonageProvider", + }, + "put": { + "summary": "Update site", + "operationId": "sitesUpdate", "consumes": [ "application\/json" ], @@ -23548,36 +28404,35 @@ "application\/json" ], "tags": [ - "messaging" + "sites" ], - "description": "Create a new Vonage provider.", + "description": "Update site by its unique ID.", "responses": { - "201": { - "description": "Provider", + "200": { + "description": "Site", "schema": { - "$ref": "#\/definitions\/provider" + "$ref": "#\/definitions\/site" } } }, "deprecated": false, "x-appwrite": { - "method": "createVonageProvider", - "group": "providers", - "weight": 199, + "method": "update", + "group": "sites", + "weight": 630, "cookies": false, "type": "", - "demo": "messaging\/create-vonage-provider.md", + "demo": "sites\/update.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "sites.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-vonage-provider.md", "auth": { "Project": [], "Key": [] @@ -23590,101 +28445,284 @@ } ], "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "type": "string", + "x-example": "<SITE_ID>", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "providerId": { + "name": { "type": "string", - "description": "Provider 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.", + "description": "Site name. Max length: 128 chars.", "default": null, - "x-example": "<PROVIDER_ID>" + "x-example": "<NAME>" }, - "name": { + "framework": { "type": "string", - "description": "Provider name.", + "description": "Sites framework.", "default": null, - "x-example": "<NAME>" + "x-example": "analog", + "enum": [ + "analog", + "angular", + "nextjs", + "react", + "nuxt", + "vue", + "sveltekit", + "astro", + "tanstack-start", + "remix", + "lynx", + "flutter", + "react-native", + "vite", + "other" + ], + "x-enum-name": null, + "x-enum-keys": [] }, - "from": { + "enabled": { + "type": "boolean", + "description": "Is site enabled? When set to 'disabled', users cannot access the site but Server SDKs with and API key can still access the site. No data is lost when this is toggled.", + "default": true, + "x-example": false + }, + "logging": { + "type": "boolean", + "description": "When disabled, request logs will exclude logs and errors, and site responses will be slightly faster.", + "default": true, + "x-example": false + }, + "timeout": { + "type": "integer", + "description": "Maximum request time in seconds.", + "default": 30, + "x-example": 1, + "format": "int32" + }, + "installCommand": { "type": "string", - "description": "Sender Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "description": "Install Command.", "default": "", - "x-example": "+12065550100", - "format": "phone" + "x-example": "<INSTALL_COMMAND>" }, - "apiKey": { + "buildCommand": { "type": "string", - "description": "Vonage API key.", + "description": "Build Command.", "default": "", - "x-example": "<API_KEY>" + "x-example": "<BUILD_COMMAND>" }, - "apiSecret": { + "outputDirectory": { "type": "string", - "description": "Vonage API secret.", + "description": "Output Directory for site.", "default": "", - "x-example": "<API_SECRET>" + "x-example": "<OUTPUT_DIRECTORY>" }, - "enabled": { + "buildRuntime": { + "type": "string", + "description": "Runtime to use during build step.", + "default": "", + "x-example": "node-14.5", + "enum": [ + "node-14.5", + "node-16.0", + "node-18.0", + "node-19.0", + "node-20.0", + "node-21.0", + "node-22", + "node-23", + "node-24", + "node-25", + "php-8.0", + "php-8.1", + "php-8.2", + "php-8.3", + "php-8.4", + "ruby-3.0", + "ruby-3.1", + "ruby-3.2", + "ruby-3.3", + "ruby-3.4", + "ruby-4.0", + "python-3.8", + "python-3.9", + "python-3.10", + "python-3.11", + "python-3.12", + "python-3.13", + "python-3.14", + "python-ml-3.11", + "python-ml-3.12", + "python-ml-3.13", + "deno-1.21", + "deno-1.24", + "deno-1.35", + "deno-1.40", + "deno-1.46", + "deno-2.0", + "deno-2.5", + "deno-2.6", + "dart-2.15", + "dart-2.16", + "dart-2.17", + "dart-2.18", + "dart-2.19", + "dart-3.0", + "dart-3.1", + "dart-3.3", + "dart-3.5", + "dart-3.8", + "dart-3.9", + "dart-3.10", + "dotnet-6.0", + "dotnet-7.0", + "dotnet-8.0", + "dotnet-10", + "java-8.0", + "java-11.0", + "java-17.0", + "java-18.0", + "java-21.0", + "java-22", + "java-25", + "swift-5.5", + "swift-5.8", + "swift-5.9", + "swift-5.10", + "swift-6.2", + "kotlin-1.6", + "kotlin-1.8", + "kotlin-1.9", + "kotlin-2.0", + "kotlin-2.3", + "cpp-17", + "cpp-20", + "bun-1.0", + "bun-1.1", + "bun-1.2", + "bun-1.3", + "go-1.23", + "go-1.24", + "go-1.25", + "go-1.26", + "static-1", + "flutter-3.24", + "flutter-3.27", + "flutter-3.29", + "flutter-3.32", + "flutter-3.35", + "flutter-3.38" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "adapter": { + "type": "string", + "description": "Framework adapter defining rendering strategy. Allowed values are: static, ssr", + "default": "", + "x-example": "static", + "enum": [ + "static", + "ssr" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "fallbackFile": { + "type": "string", + "description": "Fallback file for single page application sites.", + "default": "", + "x-example": "<FALLBACK_FILE>" + }, + "installationId": { + "type": "string", + "description": "Appwrite Installation ID for VCS (Version Control System) deployment.", + "default": "", + "x-example": "<INSTALLATION_ID>" + }, + "providerRepositoryId": { + "type": "string", + "description": "Repository ID of the repo linked to the site.", + "default": "", + "x-example": "<PROVIDER_REPOSITORY_ID>" + }, + "providerBranch": { + "type": "string", + "description": "Production branch for the repo linked to the site.", + "default": "", + "x-example": "<PROVIDER_BRANCH>" + }, + "providerSilentMode": { "type": "boolean", - "description": "Set as enabled.", - "default": null, - "x-example": false, - "x-nullable": true + "description": "Is the VCS (Version Control System) connection in silent mode for the repo linked to the site? In silent mode, comments will not be made on commits and pull requests.", + "default": false, + "x-example": false + }, + "providerRootDirectory": { + "type": "string", + "description": "Path to site code in the linked repo.", + "default": "", + "x-example": "<PROVIDER_ROOT_DIRECTORY>" + }, + "specification": { + "type": "string", + "description": "Framework specification for the site and builds.", + "default": {}, + "x-example": null } }, "required": [ - "providerId", - "name" + "name", + "framework" ] } } ] - } - }, - "\/messaging\/providers\/vonage\/{providerId}": { - "patch": { - "summary": "Update Vonage provider", - "operationId": "messagingUpdateVonageProvider", + }, + "delete": { + "summary": "Delete site", + "operationId": "sitesDelete", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ - "messaging" + "sites" ], - "description": "Update a Vonage provider by its unique ID.", + "description": "Delete a site by its unique ID.", "responses": { - "200": { - "description": "Provider", - "schema": { - "$ref": "#\/definitions\/provider" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateVonageProvider", - "group": "providers", - "weight": 213, + "method": "delete", + "group": "sites", + "weight": 533, "cookies": false, "type": "", - "demo": "messaging\/update-vonage-provider.md", + "demo": "sites\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "sites.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-vonage-provider.md", "auth": { "Project": [], "Key": [] @@ -23698,95 +28736,56 @@ ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "type": "string", - "x-example": "<PROVIDER_ID>", + "x-example": "<SITE_ID>", "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Provider name.", - "default": "", - "x-example": "<NAME>" - }, - "enabled": { - "type": "boolean", - "description": "Set as enabled.", - "default": null, - "x-example": false, - "x-nullable": true - }, - "apiKey": { - "type": "string", - "description": "Vonage API key.", - "default": "", - "x-example": "<API_KEY>" - }, - "apiSecret": { - "type": "string", - "description": "Vonage API secret.", - "default": "", - "x-example": "<API_SECRET>" - }, - "from": { - "type": "string", - "description": "Sender number.", - "default": "", - "x-example": "<FROM>" - } - } - } } ] } }, - "\/messaging\/providers\/{providerId}": { - "get": { - "summary": "Get provider", - "operationId": "messagingGetProvider", - "consumes": [], + "\/sites\/{siteId}\/deployment": { + "patch": { + "summary": "Update site's deployment", + "operationId": "sitesUpdateSiteDeployment", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "messaging" + "sites" ], - "description": "Get a provider by its unique ID.\n", + "description": "Update the site active deployment. Use this endpoint to switch the code deployment that should be used when visitor opens your site.", "responses": { "200": { - "description": "Provider", + "description": "Site", "schema": { - "$ref": "#\/definitions\/provider" + "$ref": "#\/definitions\/site" } } }, "deprecated": false, "x-appwrite": { - "method": "getProvider", - "group": "providers", - "weight": 204, + "method": "updateSiteDeployment", + "group": "sites", + "weight": 540, "cookies": false, "type": "", - "demo": "messaging\/get-provider.md", + "demo": "sites\/update-site-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.read", + "scope": "sites.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/get-provider.md", "auth": { "Project": [], "Key": [] @@ -23800,50 +28799,72 @@ ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "type": "string", - "x-example": "<PROVIDER_ID>", + "x-example": "<SITE_ID>", "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "deploymentId": { + "type": "string", + "description": "Deployment ID.", + "default": null, + "x-example": "<DEPLOYMENT_ID>" + } + }, + "required": [ + "deploymentId" + ] + } } ] - }, - "delete": { - "summary": "Delete provider", - "operationId": "messagingDeleteProvider", - "consumes": [ + } + }, + "\/sites\/{siteId}\/deployments": { + "get": { + "summary": "List deployments", + "operationId": "sitesListDeployments", + "consumes": [], + "produces": [ "application\/json" ], - "produces": [], "tags": [ - "messaging" + "sites" ], - "description": "Delete a provider by its unique ID.", + "description": "Get a list of all the site's code deployments. You can use the query params to filter your results.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Deployments List", + "schema": { + "$ref": "#\/definitions\/deploymentList" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteProvider", - "group": "providers", - "weight": 216, + "method": "listDeployments", + "group": "deployments", + "weight": 539, "cookies": false, "type": "", - "demo": "messaging\/delete-provider.md", + "demo": "sites\/list-deployments.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.write", + "scope": "sites.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-provider.md", "auth": { "Project": [], "Key": [] @@ -23857,55 +28878,84 @@ ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "type": "string", - "x-example": "<PROVIDER_ID>", + "x-example": "<SITE_ID>", "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, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "type": "string", + "x-example": "<SEARCH>", + "default": "", + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" } ] - } - }, - "\/messaging\/providers\/{providerId}\/logs": { - "get": { - "summary": "List provider logs", - "operationId": "messagingListProviderLogs", - "consumes": [], + }, + "post": { + "summary": "Create deployment", + "operationId": "sitesCreateDeployment", + "consumes": [ + "multipart\/form-data" + ], "produces": [ "application\/json" ], "tags": [ - "messaging" + "sites" ], - "description": "Get the provider activity logs listed by its unique ID.", + "description": "Create a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the site's deployment to use your new deployment ID.", "responses": { - "200": { - "description": "Logs List", + "202": { + "description": "Deployment", "schema": { - "$ref": "#\/definitions\/logList" + "$ref": "#\/definitions\/deployment" } } }, "deprecated": false, "x-appwrite": { - "method": "listProviderLogs", - "group": "providers", - "weight": 203, + "method": "createDeployment", + "group": "deployments", + "weight": 535, "cookies": false, - "type": "", - "demo": "messaging\/list-provider-logs.md", + "type": "upload", + "demo": "sites\/create-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "providers.read", + "scope": "sites.write", "platforms": [ "console", "server" ], - "packaging": false, + "packaging": true, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-provider-logs.md", "auth": { "Project": [], "Key": [] @@ -23919,76 +28969,96 @@ ], "parameters": [ { - "name": "providerId", - "description": "Provider ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "type": "string", - "x-example": "<PROVIDER_ID>", + "x-example": "<SITE_ID>", "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). Only supported methods are limit and offset", + "name": "installCommand", + "description": "Install Commands.", "required": false, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" + "type": "string", + "x-example": "<INSTALL_COMMAND>", + "in": "formData" }, { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "name": "buildCommand", + "description": "Build Commands.", + "required": false, + "type": "string", + "x-example": "<BUILD_COMMAND>", + "in": "formData" + }, + { + "name": "outputDirectory", + "description": "Output Directory.", + "required": false, + "type": "string", + "x-example": "<OUTPUT_DIRECTORY>", + "in": "formData" + }, + { + "name": "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.", + "required": true, + "type": "file", + "in": "formData" + }, + { + "name": "activate", + "description": "Automatically activate the deployment when it is finished building.", "required": false, "type": "boolean", "x-example": false, - "default": true, - "in": "query" + "default": false, + "in": "formData" } ] } }, - "\/messaging\/subscribers\/{subscriberId}\/logs": { - "get": { - "summary": "List subscriber logs", - "operationId": "messagingListSubscriberLogs", - "consumes": [], + "\/sites\/{siteId}\/deployments\/duplicate": { + "post": { + "summary": "Create duplicate deployment", + "operationId": "sitesCreateDuplicateDeployment", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "messaging" + "sites" ], - "description": "Get the subscriber activity logs listed by its unique ID.", + "description": "Create a new build for an existing site deployment. This endpoint allows you to rebuild a deployment with the updated site configuration, including its commands and output directory if they have been modified. The build process will be queued and executed asynchronously. The original deployment's code will be preserved and used for the new build.", "responses": { - "200": { - "description": "Logs List", + "202": { + "description": "Deployment", "schema": { - "$ref": "#\/definitions\/logList" + "$ref": "#\/definitions\/deployment" } } }, "deprecated": false, "x-appwrite": { - "method": "listSubscriberLogs", - "group": "subscribers", - "weight": 225, + "method": "createDuplicateDeployment", + "group": "deployments", + "weight": 543, "cookies": false, "type": "", - "demo": "messaging\/list-subscriber-logs.md", + "demo": "sites\/create-duplicate-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "subscribers.read", + "scope": "sites.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-subscriber-logs.md", "auth": { "Project": [], "Key": [] @@ -24002,76 +29072,74 @@ ], "parameters": [ { - "name": "subscriberId", - "description": "Subscriber ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "type": "string", - "x-example": "<SUBSCRIBER_ID>", + "x-example": "<SITE_ID>", "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). Only supported methods are limit and offset", - "required": false, - "type": "array", - "collectionFormat": "multi", - "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, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "deploymentId": { + "type": "string", + "description": "Deployment ID.", + "default": null, + "x-example": "<DEPLOYMENT_ID>" + } + }, + "required": [ + "deploymentId" + ] + } } ] } }, - "\/messaging\/topics": { - "get": { - "summary": "List topics", - "operationId": "messagingListTopics", - "consumes": [], + "\/sites\/{siteId}\/deployments\/template": { + "post": { + "summary": "Create template deployment", + "operationId": "sitesCreateTemplateDeployment", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "messaging" + "sites" ], - "description": "Get a list of all topics from the current Appwrite project.", + "description": "Create a deployment based on a template.\n\nUse this endpoint with combination of [listTemplates](https:\/\/appwrite.io\/docs\/products\/sites\/templates) to find the template details.", "responses": { - "200": { - "description": "Topic list", + "202": { + "description": "Deployment", "schema": { - "$ref": "#\/definitions\/topicList" + "$ref": "#\/definitions\/deployment" } } }, "deprecated": false, "x-appwrite": { - "method": "listTopics", - "group": "topics", - "weight": 218, + "method": "createTemplateDeployment", + "group": "deployments", + "weight": 536, "cookies": false, "type": "", - "demo": "messaging\/list-topics.md", + "demo": "sites\/create-template-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "topics.read", + "scope": "sites.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-topics.md", "auth": { "Project": [], "Key": [] @@ -24085,40 +29153,79 @@ ], "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, description, emailTotal, smsTotal, pushTotal", - "required": false, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, + "name": "siteId", + "description": "Site ID.", + "required": true, "type": "string", - "x-example": "<SEARCH>", - "default": "", - "in": "query" + "x-example": "<SITE_ID>", + "in": "path" }, { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "repository": { + "type": "string", + "description": "Repository name of the template.", + "default": null, + "x-example": "<REPOSITORY>" + }, + "owner": { + "type": "string", + "description": "The name of the owner of the template.", + "default": null, + "x-example": "<OWNER>" + }, + "rootDirectory": { + "type": "string", + "description": "Path to site code in the template repo.", + "default": null, + "x-example": "<ROOT_DIRECTORY>" + }, + "type": { + "type": "string", + "description": "Type for the reference provided. Can be commit, branch, or tag", + "default": null, + "x-example": "branch", + "enum": [ + "branch", + "commit", + "tag" + ], + "x-enum-name": "TemplateReferenceType", + "x-enum-keys": [] + }, + "reference": { + "type": "string", + "description": "Reference value, can be a commit hash, branch name, or release tag", + "default": null, + "x-example": "<REFERENCE>" + }, + "activate": { + "type": "boolean", + "description": "Automatically activate the deployment when it is finished building.", + "default": false, + "x-example": false + } + }, + "required": [ + "repository", + "owner", + "rootDirectory", + "type", + "reference" + ] + } } ] - }, + } + }, + "\/sites\/{siteId}\/deployments\/vcs": { "post": { - "summary": "Create topic", - "operationId": "messagingCreateTopic", + "summary": "Create VCS deployment", + "operationId": "sitesCreateVcsDeployment", "consumes": [ "application\/json" ], @@ -24126,36 +29233,35 @@ "application\/json" ], "tags": [ - "messaging" + "sites" ], - "description": "Create a new topic.", + "description": "Create a deployment when a site is connected to VCS.\n\nThis endpoint lets you create deployment from a branch, commit, or a tag.", "responses": { - "201": { - "description": "Topic", + "202": { + "description": "Deployment", "schema": { - "$ref": "#\/definitions\/topic" + "$ref": "#\/definitions\/deployment" } } }, "deprecated": false, "x-appwrite": { - "method": "createTopic", - "group": "topics", - "weight": 217, + "method": "createVcsDeployment", + "group": "deployments", + "weight": 537, "cookies": false, "type": "", - "demo": "messaging\/create-topic.md", + "demo": "sites\/create-vcs-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "topics.write", + "scope": "sites.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-topic.md", "auth": { "Project": [], "Key": [] @@ -24168,84 +29274,93 @@ } ], "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "type": "string", + "x-example": "<SITE_ID>", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "topicId": { + "type": { "type": "string", - "description": "Topic ID. Choose a custom Topic ID or a new Topic ID.", + "description": "Type of reference passed. Allowed values are: branch, commit", "default": null, - "x-example": "<TOPIC_ID>" + "x-example": "branch", + "enum": [ + "branch", + "commit", + "tag" + ], + "x-enum-name": "VCSReferenceType", + "x-enum-keys": [] }, - "name": { + "reference": { "type": "string", - "description": "Topic Name.", + "description": "VCS reference to create deployment from. Depending on type this can be: branch name, commit hash", "default": null, - "x-example": "<NAME>" + "x-example": "<REFERENCE>" }, - "subscribe": { - "type": "array", - "description": "An array of role strings with subscribe permission. By default all users are granted with any subscribe permission. [learn more about roles](https:\/\/appwrite.io\/docs\/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.", - "default": [ - "users" - ], - "x-example": "[\"any\"]", - "items": { - "type": "string" - } + "activate": { + "type": "boolean", + "description": "Automatically activate the deployment when it is finished building.", + "default": false, + "x-example": false } }, "required": [ - "topicId", - "name" + "type", + "reference" ] } } ] } }, - "\/messaging\/topics\/{topicId}": { + "\/sites\/{siteId}\/deployments\/{deploymentId}": { "get": { - "summary": "Get topic", - "operationId": "messagingGetTopic", + "summary": "Get deployment", + "operationId": "sitesGetDeployment", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "sites" ], - "description": "Get a topic by its unique ID.\n", + "description": "Get a site deployment by its unique ID.", "responses": { "200": { - "description": "Topic", + "description": "Deployment", "schema": { - "$ref": "#\/definitions\/topic" + "$ref": "#\/definitions\/deployment" } } }, "deprecated": false, "x-appwrite": { - "method": "getTopic", - "group": "topics", - "weight": 220, + "method": "getDeployment", + "group": "deployments", + "weight": 538, "cookies": false, "type": "", - "demo": "messaging\/get-topic.md", + "demo": "sites\/get-deployment.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "topics.read", + "scope": "sites.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/get-topic.md", "auth": { "Project": [], "Key": [] @@ -24259,55 +29374,126 @@ ], "parameters": [ { - "name": "topicId", - "description": "Topic ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "type": "string", - "x-example": "<TOPIC_ID>", + "x-example": "<SITE_ID>", + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "type": "string", + "x-example": "<DEPLOYMENT_ID>", "in": "path" } ] }, - "patch": { - "summary": "Update topic", - "operationId": "messagingUpdateTopic", + "delete": { + "summary": "Delete deployment", + "operationId": "sitesDeleteDeployment", "consumes": [ "application\/json" ], + "produces": [], + "tags": [ + "sites" + ], + "description": "Delete a site deployment by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteDeployment", + "group": "deployments", + "weight": 541, + "cookies": false, + "type": "", + "demo": "sites\/delete-deployment.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site ID.", + "required": true, + "type": "string", + "x-example": "<SITE_ID>", + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "type": "string", + "x-example": "<DEPLOYMENT_ID>", + "in": "path" + } + ] + } + }, + "\/sites\/{siteId}\/deployments\/{deploymentId}\/download": { + "get": { + "summary": "Get deployment download", + "operationId": "sitesGetDeploymentDownload", + "consumes": [], "produces": [ - "application\/json" + "*\/*" ], "tags": [ - "messaging" + "sites" ], - "description": "Update a topic by its unique ID.\n", + "description": "Get a site deployment content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory.", "responses": { "200": { - "description": "Topic", + "description": "File", "schema": { - "$ref": "#\/definitions\/topic" + "type": "file" } } }, "deprecated": false, "x-appwrite": { - "method": "updateTopic", - "group": "topics", - "weight": 221, + "method": "getDeploymentDownload", + "group": "deployments", + "weight": 542, "cookies": false, - "type": "", - "demo": "messaging\/update-topic.md", + "type": "location", + "demo": "sites\/get-deployment-download.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "topics.write", + "scope": "sites.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/update-topic.md", "auth": { "Project": [], "Key": [] @@ -24316,81 +29502,85 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "topicId", - "description": "Topic ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "type": "string", - "x-example": "<TOPIC_ID>", + "x-example": "<SITE_ID>", "in": "path" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "Topic Name.", - "default": null, - "x-example": "<NAME>", - "x-nullable": true - }, - "subscribe": { - "type": "array", - "description": "An array of role strings with subscribe permission. By default all users are granted with any subscribe permission. [learn more about roles](https:\/\/appwrite.io\/docs\/permissions#permission-roles). Maximum of 100 roles are allowed, each 64 characters long.", - "default": null, - "x-example": "[\"any\"]", - "x-nullable": true, - "items": { - "type": "string" - } - } - } - } + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "type": "string", + "x-example": "<DEPLOYMENT_ID>", + "in": "path" + }, + { + "name": "type", + "description": "Deployment file to download. Can be: \"source\", \"output\".", + "required": false, + "type": "string", + "x-example": "source", + "enum": [ + "source", + "output" + ], + "x-enum-name": "DeploymentDownloadType", + "x-enum-keys": [], + "default": "source", + "in": "query" } ] - }, - "delete": { - "summary": "Delete topic", - "operationId": "messagingDeleteTopic", + } + }, + "\/sites\/{siteId}\/deployments\/{deploymentId}\/status": { + "patch": { + "summary": "Update deployment status", + "operationId": "sitesUpdateDeploymentStatus", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ - "messaging" + "sites" ], - "description": "Delete a topic by its unique ID.", + "description": "Cancel an ongoing site deployment build. If the build is already in progress, it will be stopped and marked as canceled. If the build hasn't started yet, it will be marked as canceled without executing. You cannot cancel builds that have already completed (status 'ready') or failed. The response includes the final build status and details.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Deployment", + "schema": { + "$ref": "#\/definitions\/deployment" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteTopic", - "group": "topics", - "weight": 222, + "method": "updateDeploymentStatus", + "group": "deployments", + "weight": 544, "cookies": false, "type": "", - "demo": "messaging\/delete-topic.md", + "demo": "sites\/update-deployment-status.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "topics.write", + "scope": "sites.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-topic.md", "auth": { "Project": [], "Key": [] @@ -24404,55 +29594,62 @@ ], "parameters": [ { - "name": "topicId", - "description": "Topic ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "type": "string", - "x-example": "<TOPIC_ID>", + "x-example": "<SITE_ID>", + "in": "path" + }, + { + "name": "deploymentId", + "description": "Deployment ID.", + "required": true, + "type": "string", + "x-example": "<DEPLOYMENT_ID>", "in": "path" } ] } }, - "\/messaging\/topics\/{topicId}\/logs": { + "\/sites\/{siteId}\/logs": { "get": { - "summary": "List topic logs", - "operationId": "messagingListTopicLogs", + "summary": "List logs", + "operationId": "sitesListLogs", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "sites" ], - "description": "Get the topic activity logs listed by its unique ID.", + "description": "Get a list of all site logs. You can use the query params to filter your results.", "responses": { "200": { - "description": "Logs List", + "description": "Executions List", "schema": { - "$ref": "#\/definitions\/logList" + "$ref": "#\/definitions\/executionList" } } }, "deprecated": false, "x-appwrite": { - "method": "listTopicLogs", - "group": "topics", - "weight": 219, + "method": "listLogs", + "group": "logs", + "weight": 546, "cookies": false, "type": "", - "demo": "messaging\/list-topic-logs.md", + "demo": "sites\/list-logs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "topics.read", + "scope": "log.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-topic-logs.md", "auth": { "Project": [], "Key": [] @@ -24466,16 +29663,16 @@ ], "parameters": [ { - "name": "topicId", - "description": "Topic ID.", + "name": "siteId", + "description": "Site ID.", "required": true, "type": "string", - "x-example": "<TOPIC_ID>", + "x-example": "<SITE_ID>", "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). Only supported methods are limit and offset", + "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, "type": "array", "collectionFormat": "multi", @@ -24497,45 +29694,44 @@ ] } }, - "\/messaging\/topics\/{topicId}\/subscribers": { + "\/sites\/{siteId}\/logs\/{logId}": { "get": { - "summary": "List subscribers", - "operationId": "messagingListSubscribers", + "summary": "Get log", + "operationId": "sitesGetLog", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "sites" ], - "description": "Get a list of all subscribers from the current Appwrite project.", + "description": "Get a site request log by its unique ID.", "responses": { "200": { - "description": "Subscriber list", + "description": "Execution", "schema": { - "$ref": "#\/definitions\/subscriberList" + "$ref": "#\/definitions\/execution" } } }, "deprecated": false, "x-appwrite": { - "method": "listSubscribers", - "group": "subscribers", - "weight": 224, + "method": "getLog", + "group": "logs", + "weight": 545, "cookies": false, "type": "", - "demo": "messaging\/list-subscribers.md", + "demo": "sites\/get-log.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "subscribers.read", + "scope": "log.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/list-subscribers.md", "auth": { "Project": [], "Key": [] @@ -24549,48 +29745,26 @@ ], "parameters": [ { - "name": "topicId", - "description": "Topic ID. The topic ID subscribed to.", + "name": "siteId", + "description": "Site ID.", "required": true, "type": "string", - "x-example": "<TOPIC_ID>", + "x-example": "<SITE_ID>", "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, provider, type, enabled", - "required": false, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, + "name": "logId", + "description": "Log ID.", + "required": true, "type": "string", - "x-example": "<SEARCH>", - "default": "", - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" + "x-example": "<LOG_ID>", + "in": "path" } ] }, - "post": { - "summary": "Create subscriber", - "operationId": "messagingCreateSubscriber", + "delete": { + "summary": "Delete log", + "operationId": "sitesDeleteLog", "consumes": [ "application\/json" ], @@ -24598,126 +29772,101 @@ "application\/json" ], "tags": [ - "messaging" + "sites" ], - "description": "Create a new subscriber.", + "description": "Delete a site log by its unique ID.", "responses": { - "201": { - "description": "Subscriber", - "schema": { - "$ref": "#\/definitions\/subscriber" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "createSubscriber", - "group": "subscribers", - "weight": 223, + "method": "deleteLog", + "group": "logs", + "weight": 547, "cookies": false, "type": "", - "demo": "messaging\/create-subscriber.md", + "demo": "sites\/delete-log.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "subscribers.write", + "scope": "log.write", "platforms": [ - "server", - "client", - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/create-subscriber.md", "auth": { "Project": [], - "JWT": [] + "Key": [] } }, "security": [ { "Project": [], - "JWT": [], - "Session": [], "Key": [] } ], "parameters": [ { - "name": "topicId", - "description": "Topic ID. The topic ID to subscribe to.", + "name": "siteId", + "description": "Site ID.", "required": true, "type": "string", - "x-example": "<TOPIC_ID>", + "x-example": "<SITE_ID>", "in": "path" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "subscriberId": { - "type": "string", - "description": "Subscriber ID. Choose a custom Subscriber ID or a new Subscriber ID.", - "default": null, - "x-example": "<SUBSCRIBER_ID>" - }, - "targetId": { - "type": "string", - "description": "Target ID. The target ID to link to the specified Topic ID.", - "default": null, - "x-example": "<TARGET_ID>" - } - }, - "required": [ - "subscriberId", - "targetId" - ] - } + "name": "logId", + "description": "Log ID.", + "required": true, + "type": "string", + "x-example": "<LOG_ID>", + "in": "path" } ] } }, - "\/messaging\/topics\/{topicId}\/subscribers\/{subscriberId}": { + "\/sites\/{siteId}\/variables": { "get": { - "summary": "Get subscriber", - "operationId": "messagingGetSubscriber", + "summary": "List variables", + "operationId": "sitesListVariables", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "messaging" + "sites" ], - "description": "Get a subscriber by its unique ID.\n", + "description": "Get a list of all variables of a specific site.", "responses": { "200": { - "description": "Subscriber", + "description": "Variables List", "schema": { - "$ref": "#\/definitions\/subscriber" + "$ref": "#\/definitions\/variableList" } } }, "deprecated": false, "x-appwrite": { - "method": "getSubscriber", - "group": "subscribers", - "weight": 226, + "method": "listVariables", + "group": "variables", + "weight": 550, "cookies": false, "type": "", - "demo": "messaging\/get-subscriber.md", + "demo": "sites\/list-variables.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "subscribers.read", + "scope": "sites.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/get-subscriber.md", "auth": { "Project": [], "Key": [] @@ -24731,96 +29880,112 @@ ], "parameters": [ { - "name": "topicId", - "description": "Topic ID. The topic ID subscribed to.", - "required": true, - "type": "string", - "x-example": "<TOPIC_ID>", - "in": "path" - }, - { - "name": "subscriberId", - "description": "Subscriber ID.", + "name": "siteId", + "description": "Site unique ID.", "required": true, "type": "string", - "x-example": "<SUBSCRIBER_ID>", + "x-example": "<SITE_ID>", "in": "path" } ] }, - "delete": { - "summary": "Delete subscriber", - "operationId": "messagingDeleteSubscriber", + "post": { + "summary": "Create variable", + "operationId": "sitesCreateVariable", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ - "messaging" + "sites" ], - "description": "Delete a subscriber by its unique ID.", + "description": "Create a new site variable. These variables can be accessed during build and runtime (server-side rendering) as environment variables.", "responses": { - "204": { - "description": "No content" + "201": { + "description": "Variable", + "schema": { + "$ref": "#\/definitions\/variable" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteSubscriber", - "group": "subscribers", - "weight": 227, + "method": "createVariable", + "group": "variables", + "weight": 631, "cookies": false, "type": "", - "demo": "messaging\/delete-subscriber.md", + "demo": "sites\/create-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "subscribers.write", + "scope": "sites.write", "platforms": [ - "server", - "client", - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/messaging\/delete-subscriber.md", "auth": { "Project": [], - "JWT": [] + "Key": [] } }, "security": [ { "Project": [], - "JWT": [], - "Session": [], "Key": [] } ], "parameters": [ { - "name": "topicId", - "description": "Topic ID. The topic ID subscribed to.", + "name": "siteId", + "description": "Site unique ID.", "required": true, "type": "string", - "x-example": "<TOPIC_ID>", + "x-example": "<SITE_ID>", "in": "path" }, { - "name": "subscriberId", - "description": "Subscriber ID.", - "required": true, - "type": "string", - "x-example": "<SUBSCRIBER_ID>", - "in": "path" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Variable key. Max length: 255 chars.", + "default": null, + "x-example": "<KEY>" + }, + "value": { + "type": "string", + "description": "Variable value. Max length: 8192 chars.", + "default": null, + "x-example": "<VALUE>" + }, + "secret": { + "type": "boolean", + "description": "Secret variables can be updated or deleted, but only sites can read them during build and runtime.", + "default": true, + "x-example": false + } + }, + "required": [ + "key", + "value" + ] + } } ] } }, - "\/sites": { + "\/sites\/{siteId}\/variables\/{variableId}": { "get": { - "summary": "List sites", - "operationId": "sitesList", + "summary": "Get variable", + "operationId": "sitesGetVariable", "consumes": [], "produces": [ "application\/json" @@ -24828,23 +29993,23 @@ "tags": [ "sites" ], - "description": "Get a list of all the project's sites. You can use the query params to filter your results.", + "description": "Get a variable by its unique ID.", "responses": { "200": { - "description": "Sites List", + "description": "Variable", "schema": { - "$ref": "#\/definitions\/siteList" + "$ref": "#\/definitions\/variable" } } }, "deprecated": false, "x-appwrite": { - "method": "list", - "group": "sites", - "weight": 590, + "method": "getVariable", + "group": "variables", + "weight": 549, "cookies": false, "type": "", - "demo": "sites\/list.md", + "demo": "sites\/get-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -24868,40 +30033,26 @@ ], "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, framework, deploymentId, buildCommand, installCommand, outputDirectory, installationId", - "required": false, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, + "name": "siteId", + "description": "Site unique ID.", + "required": true, "type": "string", - "x-example": "<SEARCH>", - "default": "", - "in": "query" + "x-example": "<SITE_ID>", + "in": "path" }, { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "type": "string", + "x-example": "<VARIABLE_ID>", + "in": "path" } ] }, - "post": { - "summary": "Create site", - "operationId": "sitesCreate", + "put": { + "summary": "Update variable", + "operationId": "sitesUpdateVariable", "consumes": [ "application\/json" ], @@ -24911,23 +30062,23 @@ "tags": [ "sites" ], - "description": "Create a new site.", + "description": "Update variable by its unique ID.", "responses": { - "201": { - "description": "Site", + "200": { + "description": "Variable", "schema": { - "$ref": "#\/definitions\/site" + "$ref": "#\/definitions\/variable" } } }, "deprecated": false, "x-appwrite": { - "method": "create", - "group": "sites", - "weight": 588, + "method": "updateVariable", + "group": "variables", + "weight": 551, "cookies": false, "type": "", - "demo": "sites\/create.md", + "demo": "sites\/update-variable.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -24950,289 +30101,160 @@ } ], "parameters": [ + { + "name": "siteId", + "description": "Site unique ID.", + "required": true, + "type": "string", + "x-example": "<SITE_ID>", + "in": "path" + }, + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "type": "string", + "x-example": "<VARIABLE_ID>", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "siteId": { - "type": "string", - "description": "Site ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": null, - "x-example": "<SITE_ID>" - }, - "name": { + "key": { "type": "string", - "description": "Site name. Max length: 128 chars.", + "description": "Variable key. Max length: 255 chars.", "default": null, - "x-example": "<NAME>" + "x-example": "<KEY>" }, - "framework": { + "value": { "type": "string", - "description": "Sites framework.", + "description": "Variable value. Max length: 8192 chars.", "default": null, - "x-example": "analog", - "enum": [ - "analog", - "angular", - "nextjs", - "react", - "nuxt", - "vue", - "sveltekit", - "astro", - "tanstack-start", - "remix", - "lynx", - "flutter", - "react-native", - "vite", - "other" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "enabled": { - "type": "boolean", - "description": "Is site enabled? When set to 'disabled', users cannot access the site but Server SDKs with and API key can still access the site. No data is lost when this is toggled.", - "default": true, - "x-example": false + "x-example": "<VALUE>", + "x-nullable": true }, - "logging": { + "secret": { "type": "boolean", - "description": "When disabled, request logs will exclude logs and errors, and site responses will be slightly faster.", - "default": true, - "x-example": false - }, - "timeout": { - "type": "integer", - "description": "Maximum request time in seconds.", - "default": 30, - "x-example": 1, - "format": "int32" - }, - "installCommand": { - "type": "string", - "description": "Install Command.", - "default": "", - "x-example": "<INSTALL_COMMAND>" - }, - "buildCommand": { - "type": "string", - "description": "Build Command.", - "default": "", - "x-example": "<BUILD_COMMAND>" - }, - "outputDirectory": { - "type": "string", - "description": "Output Directory for site.", - "default": "", - "x-example": "<OUTPUT_DIRECTORY>" - }, - "buildRuntime": { - "type": "string", - "description": "Runtime to use during build step.", + "description": "Secret variables can be updated or deleted, but only sites can read them during build and runtime.", "default": null, - "x-example": "node-14.5", - "enum": [ - "node-14.5", - "node-16.0", - "node-18.0", - "node-19.0", - "node-20.0", - "node-21.0", - "node-22", - "node-23", - "node-24", - "node-25", - "php-8.0", - "php-8.1", - "php-8.2", - "php-8.3", - "php-8.4", - "ruby-3.0", - "ruby-3.1", - "ruby-3.2", - "ruby-3.3", - "ruby-3.4", - "ruby-4.0", - "python-3.8", - "python-3.9", - "python-3.10", - "python-3.11", - "python-3.12", - "python-3.13", - "python-3.14", - "python-ml-3.11", - "python-ml-3.12", - "python-ml-3.13", - "deno-1.21", - "deno-1.24", - "deno-1.35", - "deno-1.40", - "deno-1.46", - "deno-2.0", - "deno-2.5", - "deno-2.6", - "dart-2.15", - "dart-2.16", - "dart-2.17", - "dart-2.18", - "dart-2.19", - "dart-3.0", - "dart-3.1", - "dart-3.3", - "dart-3.5", - "dart-3.8", - "dart-3.9", - "dart-3.10", - "dotnet-6.0", - "dotnet-7.0", - "dotnet-8.0", - "dotnet-10", - "java-8.0", - "java-11.0", - "java-17.0", - "java-18.0", - "java-21.0", - "java-22", - "java-25", - "swift-5.5", - "swift-5.8", - "swift-5.9", - "swift-5.10", - "swift-6.2", - "kotlin-1.6", - "kotlin-1.8", - "kotlin-1.9", - "kotlin-2.0", - "kotlin-2.3", - "cpp-17", - "cpp-20", - "bun-1.0", - "bun-1.1", - "bun-1.2", - "bun-1.3", - "go-1.23", - "go-1.24", - "go-1.25", - "go-1.26", - "static-1", - "flutter-3.24", - "flutter-3.27", - "flutter-3.29", - "flutter-3.32", - "flutter-3.35", - "flutter-3.38" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "adapter": { - "type": "string", - "description": "Framework adapter defining rendering strategy. Allowed values are: static, ssr", - "default": "", - "x-example": "static", - "enum": [ - "static", - "ssr" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "installationId": { - "type": "string", - "description": "Appwrite Installation ID for VCS (Version Control System) deployment.", - "default": "", - "x-example": "<INSTALLATION_ID>" - }, - "fallbackFile": { - "type": "string", - "description": "Fallback file for single page application sites.", - "default": "", - "x-example": "<FALLBACK_FILE>" - }, - "providerRepositoryId": { - "type": "string", - "description": "Repository ID of the repo linked to the site.", - "default": "", - "x-example": "<PROVIDER_REPOSITORY_ID>" - }, - "providerBranch": { - "type": "string", - "description": "Production branch for the repo linked to the site.", - "default": "", - "x-example": "<PROVIDER_BRANCH>" - }, - "providerSilentMode": { - "type": "boolean", - "description": "Is the VCS (Version Control System) connection in silent mode for the repo linked to the site? In silent mode, comments will not be made on commits and pull requests.", - "default": false, - "x-example": false - }, - "providerRootDirectory": { - "type": "string", - "description": "Path to site code in the linked repo.", - "default": "", - "x-example": "<PROVIDER_ROOT_DIRECTORY>" - }, - "specification": { - "type": "string", - "description": "Framework specification for the site and builds.", - "default": {}, - "x-example": null + "x-example": false, + "x-nullable": true } }, "required": [ - "siteId", - "name", - "framework", - "buildRuntime" + "key" ] } } ] + }, + "delete": { + "summary": "Delete variable", + "operationId": "sitesDeleteVariable", + "consumes": [ + "application\/json" + ], + "produces": [], + "tags": [ + "sites" + ], + "description": "Delete a variable by its unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteVariable", + "group": "variables", + "weight": 552, + "cookies": false, + "type": "", + "demo": "sites\/delete-variable.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "sites.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "siteId", + "description": "Site unique ID.", + "required": true, + "type": "string", + "x-example": "<SITE_ID>", + "in": "path" + }, + { + "name": "variableId", + "description": "Variable unique ID.", + "required": true, + "type": "string", + "x-example": "<VARIABLE_ID>", + "in": "path" + } + ] } }, - "\/sites\/frameworks": { + "\/storage\/buckets": { "get": { - "summary": "List frameworks", - "operationId": "sitesListFrameworks", + "summary": "List buckets", + "operationId": "storageListBuckets", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "sites" + "storage" ], - "description": "Get a list of all frameworks that are currently available on the server instance.", + "description": "Get a list of all the storage buckets. You can use the query params to filter your results.", "responses": { "200": { - "description": "Frameworks List", + "description": "Buckets List", "schema": { - "$ref": "#\/definitions\/frameworkList" + "$ref": "#\/definitions\/bucketList" } } }, "deprecated": false, "x-appwrite": { - "method": "listFrameworks", - "group": "frameworks", - "weight": 593, + "method": "listBuckets", + "group": "buckets", + "weight": 598, "cookies": false, "type": "", - "demo": "sites\/list-frameworks.md", + "demo": "storage\/list-buckets.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "buckets.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/list-buckets.md", "auth": { "Project": [], "Key": [] @@ -25243,47 +30265,80 @@ "Project": [], "Key": [] } - ] - } - }, - "\/sites\/specifications": { - "get": { - "summary": "List specifications", - "operationId": "sitesListSpecifications", - "consumes": [], + ], + "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: enabled, name, fileSecurity, maximumFileSize, encryption, antivirus, transformations", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "type": "string", + "x-example": "<SEARCH>", + "default": "", + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" + } + ] + }, + "post": { + "summary": "Create bucket", + "operationId": "storageCreateBucket", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "sites" + "storage" ], - "description": "List allowed site specifications for this instance.", + "description": "Create a new storage bucket.", "responses": { - "200": { - "description": "Specifications List", + "201": { + "description": "Bucket", "schema": { - "$ref": "#\/definitions\/specificationList" + "$ref": "#\/definitions\/bucket" } } }, "deprecated": false, "x-appwrite": { - "method": "listSpecifications", - "group": "frameworks", - "weight": 616, + "method": "createBucket", + "group": "buckets", + "weight": 596, "cookies": false, "type": "", - "demo": "sites\/list-specifications.md", + "demo": "storage\/create-bucket.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": "buckets.write", "platforms": [ - "server", - "console" + "console", + "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/create-bucket.md", "auth": { "Project": [], "Key": [] @@ -25294,47 +30349,144 @@ "Project": [], "Key": [] } + ], + "parameters": [ + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "bucketId": { + "type": "string", + "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.", + "default": null, + "x-example": "<BUCKET_ID>" + }, + "name": { + "type": "string", + "description": "Bucket name", + "default": null, + "x-example": "<NAME>" + }, + "permissions": { + "type": "array", + "description": "An array of permission strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "default": null, + "x-example": "[\"read(\"any\")\"]", + "x-nullable": true, + "items": { + "type": "string" + } + }, + "fileSecurity": { + "type": "boolean", + "description": "Enables configuring permissions for individual file. A user needs one of file or bucket level permissions to access a file. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "default": false, + "x-example": false + }, + "enabled": { + "type": "boolean", + "description": "Is bucket enabled? When set to 'disabled', users cannot access the files in this bucket but Server SDKs with and API key can still access the bucket. No files are lost when this is toggled.", + "default": true, + "x-example": false + }, + "maximumFileSize": { + "type": "integer", + "description": "Maximum file size allowed in bytes. Maximum allowed value is 5GB.", + "default": {}, + "x-example": 1, + "format": "int32" + }, + "allowedFileExtensions": { + "type": "array", + "description": "Allowed file extensions. Maximum of 100 extensions are allowed, each 64 characters long.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "compression": { + "type": "string", + "description": "Compression algorithm chosen for compression. Can be one of none, [gzip](https:\/\/en.wikipedia.org\/wiki\/Gzip), or [zstd](https:\/\/en.wikipedia.org\/wiki\/Zstd), For file size above 20MB compression is skipped even if it's enabled", + "default": "none", + "x-example": "none", + "enum": [ + "none", + "gzip", + "zstd" + ], + "x-enum-name": null, + "x-enum-keys": [] + }, + "encryption": { + "type": "boolean", + "description": "Is encryption enabled? For file size above 20MB encryption is skipped even if it's enabled", + "default": true, + "x-example": false + }, + "antivirus": { + "type": "boolean", + "description": "Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled", + "default": true, + "x-example": false + }, + "transformations": { + "type": "boolean", + "description": "Are image transformations enabled?", + "default": true, + "x-example": false + } + }, + "required": [ + "bucketId", + "name" + ] + } + } ] } }, - "\/sites\/{siteId}": { + "\/storage\/buckets\/{bucketId}": { "get": { - "summary": "Get site", - "operationId": "sitesGet", + "summary": "Get bucket", + "operationId": "storageGetBucket", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "sites" + "storage" ], - "description": "Get a site by its unique ID.", + "description": "Get a storage bucket by its unique ID. This endpoint response returns a JSON object with the storage bucket metadata.", "responses": { "200": { - "description": "Site", + "description": "Bucket", "schema": { - "$ref": "#\/definitions\/site" + "$ref": "#\/definitions\/bucket" } } }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": "sites", - "weight": 589, + "method": "getBucket", + "group": "buckets", + "weight": 597, "cookies": false, "type": "", - "demo": "sites\/get.md", + "demo": "storage\/get-bucket.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": "buckets.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-bucket.md", "auth": { "Project": [], "Key": [] @@ -25348,18 +30500,18 @@ ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "bucketId", + "description": "Bucket unique ID.", "required": true, "type": "string", - "x-example": "<SITE_ID>", + "x-example": "<BUCKET_ID>", "in": "path" } ] }, "put": { - "summary": "Update site", - "operationId": "sitesUpdate", + "summary": "Update bucket", + "operationId": "storageUpdateBucket", "consumes": [ "application\/json" ], @@ -25367,35 +30519,36 @@ "application\/json" ], "tags": [ - "sites" + "storage" ], - "description": "Update site by its unique ID.", + "description": "Update a storage bucket by its unique ID.", "responses": { "200": { - "description": "Site", + "description": "Bucket", "schema": { - "$ref": "#\/definitions\/site" + "$ref": "#\/definitions\/bucket" } } }, "deprecated": false, "x-appwrite": { - "method": "update", - "group": "sites", - "weight": 591, + "method": "updateBucket", + "group": "buckets", + "weight": 599, "cookies": false, "type": "", - "demo": "sites\/update.md", + "demo": "storage\/update-bucket.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "buckets.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/update-bucket.md", "auth": { "Project": [], "Key": [] @@ -25409,11 +30562,11 @@ ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "bucketId", + "description": "Bucket unique ID.", "required": true, "type": "string", - "x-example": "<SITE_ID>", + "x-example": "<BUCKET_ID>", "in": "path" }, { @@ -25424,245 +30577,98 @@ "properties": { "name": { "type": "string", - "description": "Site name. Max length: 128 chars.", + "description": "Bucket name", "default": null, "x-example": "<NAME>" }, - "framework": { - "type": "string", - "description": "Sites framework.", + "permissions": { + "type": "array", + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", "default": null, - "x-example": "analog", - "enum": [ - "analog", - "angular", - "nextjs", - "react", - "nuxt", - "vue", - "sveltekit", - "astro", - "tanstack-start", - "remix", - "lynx", - "flutter", - "react-native", - "vite", - "other" - ], - "x-enum-name": null, - "x-enum-keys": [] + "x-example": "[\"read(\"any\")\"]", + "x-nullable": true, + "items": { + "type": "string" + } }, - "enabled": { + "fileSecurity": { "type": "boolean", - "description": "Is site enabled? When set to 'disabled', users cannot access the site but Server SDKs with and API key can still access the site. No data is lost when this is toggled.", - "default": true, + "description": "Enables configuring permissions for individual file. A user needs one of file or bucket level permissions to access a file. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "default": false, "x-example": false }, - "logging": { + "enabled": { "type": "boolean", - "description": "When disabled, request logs will exclude logs and errors, and site responses will be slightly faster.", + "description": "Is bucket enabled? When set to 'disabled', users cannot access the files in this bucket but Server SDKs with and API key can still access the bucket. No files are lost when this is toggled.", "default": true, "x-example": false }, - "timeout": { + "maximumFileSize": { "type": "integer", - "description": "Maximum request time in seconds.", - "default": 30, + "description": "Maximum file size allowed in bytes. Maximum allowed value is 5GB.", + "default": {}, "x-example": 1, "format": "int32" }, - "installCommand": { - "type": "string", - "description": "Install Command.", - "default": "", - "x-example": "<INSTALL_COMMAND>" - }, - "buildCommand": { - "type": "string", - "description": "Build Command.", - "default": "", - "x-example": "<BUILD_COMMAND>" - }, - "outputDirectory": { - "type": "string", - "description": "Output Directory for site.", - "default": "", - "x-example": "<OUTPUT_DIRECTORY>" - }, - "buildRuntime": { - "type": "string", - "description": "Runtime to use during build step.", - "default": "", - "x-example": "node-14.5", - "enum": [ - "node-14.5", - "node-16.0", - "node-18.0", - "node-19.0", - "node-20.0", - "node-21.0", - "node-22", - "node-23", - "node-24", - "node-25", - "php-8.0", - "php-8.1", - "php-8.2", - "php-8.3", - "php-8.4", - "ruby-3.0", - "ruby-3.1", - "ruby-3.2", - "ruby-3.3", - "ruby-3.4", - "ruby-4.0", - "python-3.8", - "python-3.9", - "python-3.10", - "python-3.11", - "python-3.12", - "python-3.13", - "python-3.14", - "python-ml-3.11", - "python-ml-3.12", - "python-ml-3.13", - "deno-1.21", - "deno-1.24", - "deno-1.35", - "deno-1.40", - "deno-1.46", - "deno-2.0", - "deno-2.5", - "deno-2.6", - "dart-2.15", - "dart-2.16", - "dart-2.17", - "dart-2.18", - "dart-2.19", - "dart-3.0", - "dart-3.1", - "dart-3.3", - "dart-3.5", - "dart-3.8", - "dart-3.9", - "dart-3.10", - "dotnet-6.0", - "dotnet-7.0", - "dotnet-8.0", - "dotnet-10", - "java-8.0", - "java-11.0", - "java-17.0", - "java-18.0", - "java-21.0", - "java-22", - "java-25", - "swift-5.5", - "swift-5.8", - "swift-5.9", - "swift-5.10", - "swift-6.2", - "kotlin-1.6", - "kotlin-1.8", - "kotlin-1.9", - "kotlin-2.0", - "kotlin-2.3", - "cpp-17", - "cpp-20", - "bun-1.0", - "bun-1.1", - "bun-1.2", - "bun-1.3", - "go-1.23", - "go-1.24", - "go-1.25", - "go-1.26", - "static-1", - "flutter-3.24", - "flutter-3.27", - "flutter-3.29", - "flutter-3.32", - "flutter-3.35", - "flutter-3.38" - ], - "x-enum-name": null, - "x-enum-keys": [] + "allowedFileExtensions": { + "type": "array", + "description": "Allowed file extensions. Maximum of 100 extensions are allowed, each 64 characters long.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } }, - "adapter": { + "compression": { "type": "string", - "description": "Framework adapter defining rendering strategy. Allowed values are: static, ssr", - "default": "", - "x-example": "static", + "description": "Compression algorithm chosen for compression. Can be one of none, [gzip](https:\/\/en.wikipedia.org\/wiki\/Gzip), or [zstd](https:\/\/en.wikipedia.org\/wiki\/Zstd), For file size above 20MB compression is skipped even if it's enabled", + "default": "none", + "x-example": "none", "enum": [ - "static", - "ssr" + "none", + "gzip", + "zstd" ], "x-enum-name": null, "x-enum-keys": [] }, - "fallbackFile": { - "type": "string", - "description": "Fallback file for single page application sites.", - "default": "", - "x-example": "<FALLBACK_FILE>" - }, - "installationId": { - "type": "string", - "description": "Appwrite Installation ID for VCS (Version Control System) deployment.", - "default": "", - "x-example": "<INSTALLATION_ID>" - }, - "providerRepositoryId": { - "type": "string", - "description": "Repository ID of the repo linked to the site.", - "default": "", - "x-example": "<PROVIDER_REPOSITORY_ID>" - }, - "providerBranch": { - "type": "string", - "description": "Production branch for the repo linked to the site.", - "default": "", - "x-example": "<PROVIDER_BRANCH>" - }, - "providerSilentMode": { + "encryption": { "type": "boolean", - "description": "Is the VCS (Version Control System) connection in silent mode for the repo linked to the site? In silent mode, comments will not be made on commits and pull requests.", - "default": false, + "description": "Is encryption enabled? For file size above 20MB encryption is skipped even if it's enabled", + "default": true, "x-example": false }, - "providerRootDirectory": { - "type": "string", - "description": "Path to site code in the linked repo.", - "default": "", - "x-example": "<PROVIDER_ROOT_DIRECTORY>" + "antivirus": { + "type": "boolean", + "description": "Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled", + "default": true, + "x-example": false }, - "specification": { - "type": "string", - "description": "Framework specification for the site and builds.", - "default": {}, - "x-example": null + "transformations": { + "type": "boolean", + "description": "Are image transformations enabled?", + "default": true, + "x-example": false } }, "required": [ - "name", - "framework" + "name" ] } } ] }, "delete": { - "summary": "Delete site", - "operationId": "sitesDelete", + "summary": "Delete bucket", + "operationId": "storageDeleteBucket", "consumes": [ "application\/json" ], "produces": [], "tags": [ - "sites" + "storage" ], - "description": "Delete a site by its unique ID.", + "description": "Delete a storage bucket by its unique ID.", "responses": { "204": { "description": "No content" @@ -25670,85 +30676,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": "sites", - "weight": 592, - "cookies": false, - "type": "", - "demo": "sites\/delete.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "siteId", - "description": "Site ID.", - "required": true, - "type": "string", - "x-example": "<SITE_ID>", - "in": "path" - } - ] - } - }, - "\/sites\/{siteId}\/deployment": { - "patch": { - "summary": "Update site's deployment", - "operationId": "sitesUpdateSiteDeployment", - "consumes": [ - "application\/json" - ], - "produces": [ - "application\/json" - ], - "tags": [ - "sites" - ], - "description": "Update the site active deployment. Use this endpoint to switch the code deployment that should be used when visitor opens your site.", - "responses": { - "200": { - "description": "Site", - "schema": { - "$ref": "#\/definitions\/site" - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "updateSiteDeployment", - "group": "sites", - "weight": 599, + "method": "deleteBucket", + "group": "buckets", + "weight": 600, "cookies": false, "type": "", - "demo": "sites\/update-site-deployment.md", + "demo": "storage\/delete-bucket.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "buckets.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/delete-bucket.md", "auth": { "Project": [], "Key": [] @@ -25762,95 +30706,81 @@ ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "bucketId", + "description": "Bucket unique ID.", "required": true, "type": "string", - "x-example": "<SITE_ID>", + "x-example": "<BUCKET_ID>", "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "deploymentId": { - "type": "string", - "description": "Deployment ID.", - "default": null, - "x-example": "<DEPLOYMENT_ID>" - } - }, - "required": [ - "deploymentId" - ] - } } ] } }, - "\/sites\/{siteId}\/deployments": { + "\/storage\/buckets\/{bucketId}\/files": { "get": { - "summary": "List deployments", - "operationId": "sitesListDeployments", + "summary": "List files", + "operationId": "storageListFiles", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "sites" + "storage" ], - "description": "Get a list of all the site's code deployments. You can use the query params to filter your results.", + "description": "Get a list of all the user files. You can use the query params to filter your results.", "responses": { "200": { - "description": "Deployments List", + "description": "Files List", "schema": { - "$ref": "#\/definitions\/deploymentList" + "$ref": "#\/definitions\/fileList" } } }, "deprecated": false, "x-appwrite": { - "method": "listDeployments", - "group": "deployments", - "weight": 598, + "method": "listFiles", + "group": "files", + "weight": 603, "cookies": false, "type": "", - "demo": "sites\/list-deployments.md", + "demo": "storage\/list-files.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": "files.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/list-files.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", "required": true, "type": "string", - "x-example": "<SITE_ID>", + "x-example": "<BUCKET_ID>", "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", + "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, signature, mimeType, sizeOriginal, chunksTotal, chunksUploaded", "required": false, "type": "array", "collectionFormat": "multi", @@ -25881,8 +30811,8 @@ ] }, "post": { - "summary": "Create deployment", - "operationId": "sitesCreateDeployment", + "summary": "Create file", + "operationId": "storageCreateFile", "consumes": [ "multipart\/form-data" ], @@ -25890,182 +30820,165 @@ "application\/json" ], "tags": [ - "sites" + "storage" ], - "description": "Create a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the site's deployment to use your new deployment ID.", + "description": "Create a new file. Before using this route, you should create a new bucket resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/storage#storageCreateBucket) API or directly from your Appwrite console.\n\nLarger files should be uploaded using multiple requests with the [content-range](https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTTP\/Headers\/Content-Range) header to send a partial request with a maximum supported chunk of `5MB`. The `content-range` header values should always be in bytes.\n\nWhen the first request is sent, the server will return the **File** object, and the subsequent part request must include the file's **id** in `x-appwrite-id` header to allow the server to know that the partial upload is for the existing file and not for a new one.\n\nIf you're creating a new file using one of the Appwrite SDKs, all the chunking logic will be managed by the SDK internally.\n", "responses": { - "202": { - "description": "Deployment", + "201": { + "description": "File", "schema": { - "$ref": "#\/definitions\/deployment" + "$ref": "#\/definitions\/file" } } }, "deprecated": false, "x-appwrite": { - "method": "createDeployment", - "group": "deployments", - "weight": 594, + "method": "createFile", + "group": "files", + "weight": 802, "cookies": false, "type": "upload", - "demo": "sites\/create-deployment.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "demo": "storage\/create-file.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId},chunkId:{chunkId}", + "scope": "files.write", "platforms": [ "console", + "client", "server" ], - "packaging": true, + "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/create-file.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", "required": true, "type": "string", - "x-example": "<SITE_ID>", + "x-example": "<BUCKET_ID>", "in": "path" }, { - "name": "installCommand", - "description": "Install Commands.", - "required": false, - "type": "string", - "x-example": "<INSTALL_COMMAND>", - "in": "formData" - }, - { - "name": "buildCommand", - "description": "Build Commands.", - "required": false, - "type": "string", - "x-example": "<BUILD_COMMAND>", - "in": "formData" - }, - { - "name": "outputDirectory", - "description": "Output Directory.", - "required": false, + "name": "fileId", + "description": "File 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, + "x-upload-id": true, "type": "string", - "x-example": "<OUTPUT_DIRECTORY>", + "x-example": "<FILE_ID>", "in": "formData" }, { - "name": "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.", + "name": "file", + "description": "Binary file. Appwrite SDKs provide helpers to handle file input. [Learn about file input](https:\/\/appwrite.io\/docs\/products\/storage\/upload-download#input-file).", "required": true, "type": "file", "in": "formData" }, { - "name": "activate", - "description": "Automatically activate the deployment when it is finished building.", - "required": true, - "type": "boolean", - "x-example": false, + "name": "permissions", + "description": "An array of permission strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "x-example": "[\"read(\"any\")\"]", "in": "formData" } ] } }, - "\/sites\/{siteId}\/deployments\/duplicate": { - "post": { - "summary": "Create duplicate deployment", - "operationId": "sitesCreateDuplicateDeployment", - "consumes": [ - "application\/json" - ], + "\/storage\/buckets\/{bucketId}\/files\/{fileId}": { + "get": { + "summary": "Get file", + "operationId": "storageGetFile", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "sites" + "storage" ], - "description": "Create a new build for an existing site deployment. This endpoint allows you to rebuild a deployment with the updated site configuration, including its commands and output directory if they have been modified. The build process will be queued and executed asynchronously. The original deployment's code will be preserved and used for the new build.", + "description": "Get a file by its unique ID. This endpoint response returns a JSON object with the file metadata.", "responses": { - "202": { - "description": "Deployment", + "200": { + "description": "File", "schema": { - "$ref": "#\/definitions\/deployment" + "$ref": "#\/definitions\/file" } } }, "deprecated": false, "x-appwrite": { - "method": "createDuplicateDeployment", - "group": "deployments", + "method": "getFile", + "group": "files", "weight": 602, "cookies": false, "type": "", - "demo": "sites\/create-duplicate-deployment.md", + "demo": "storage\/get-file.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "files.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", "required": true, "type": "string", - "x-example": "<SITE_ID>", + "x-example": "<BUCKET_ID>", "in": "path" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "deploymentId": { - "type": "string", - "description": "Deployment ID.", - "default": null, - "x-example": "<DEPLOYMENT_ID>" - } - }, - "required": [ - "deploymentId" - ] - } + "name": "fileId", + "description": "File ID.", + "required": true, + "type": "string", + "x-example": "<FILE_ID>", + "in": "path" } ] - } - }, - "\/sites\/{siteId}\/deployments\/template": { - "post": { - "summary": "Create template deployment", - "operationId": "sitesCreateTemplateDeployment", + }, + "put": { + "summary": "Update file", + "operationId": "storageUpdateFile", "consumes": [ "application\/json" ], @@ -26073,175 +30986,65 @@ "application\/json" ], "tags": [ - "sites" + "storage" ], - "description": "Create a deployment based on a template.\n\nUse this endpoint with combination of [listTemplates](https:\/\/appwrite.io\/docs\/products\/sites\/templates) to find the template details.", + "description": "Update a file by its unique ID. Only users with write permissions have access to update this resource.", "responses": { - "202": { - "description": "Deployment", + "200": { + "description": "File", "schema": { - "$ref": "#\/definitions\/deployment" + "$ref": "#\/definitions\/file" } } }, "deprecated": false, "x-appwrite": { - "method": "createTemplateDeployment", - "group": "deployments", - "weight": 595, + "method": "updateFile", + "group": "files", + "weight": 604, "cookies": false, "type": "", - "demo": "sites\/create-template-deployment.md", + "demo": "storage\/update-file.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "files.write", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/update-file.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "bucketId", + "description": "Bucket unique ID.", "required": true, "type": "string", - "x-example": "<SITE_ID>", + "x-example": "<BUCKET_ID>", "in": "path" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "repository": { - "type": "string", - "description": "Repository name of the template.", - "default": null, - "x-example": "<REPOSITORY>" - }, - "owner": { - "type": "string", - "description": "The name of the owner of the template.", - "default": null, - "x-example": "<OWNER>" - }, - "rootDirectory": { - "type": "string", - "description": "Path to site code in the template repo.", - "default": null, - "x-example": "<ROOT_DIRECTORY>" - }, - "type": { - "type": "string", - "description": "Type for the reference provided. Can be commit, branch, or tag", - "default": null, - "x-example": "branch", - "enum": [ - "branch", - "commit", - "tag" - ], - "x-enum-name": "TemplateReferenceType", - "x-enum-keys": [] - }, - "reference": { - "type": "string", - "description": "Reference value, can be a commit hash, branch name, or release tag", - "default": null, - "x-example": "<REFERENCE>" - }, - "activate": { - "type": "boolean", - "description": "Automatically activate the deployment when it is finished building.", - "default": false, - "x-example": false - } - }, - "required": [ - "repository", - "owner", - "rootDirectory", - "type", - "reference" - ] - } - } - ] - } - }, - "\/sites\/{siteId}\/deployments\/vcs": { - "post": { - "summary": "Create VCS deployment", - "operationId": "sitesCreateVcsDeployment", - "consumes": [ - "application\/json" - ], - "produces": [ - "application\/json" - ], - "tags": [ - "sites" - ], - "description": "Create a deployment when a site is connected to VCS.\n\nThis endpoint lets you create deployment from a branch, commit, or a tag.", - "responses": { - "202": { - "description": "Deployment", - "schema": { - "$ref": "#\/definitions\/deployment" - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "createVcsDeployment", - "group": "deployments", - "weight": 596, - "cookies": false, - "type": "", - "demo": "sites\/create-vcs-deployment.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "siteId", - "description": "Site ID.", + "name": "fileId", + "description": "File ID.", "required": true, "type": "string", - "x-example": "<SITE_ID>", + "x-example": "<FILE_ID>", "in": "path" }, { @@ -26250,120 +31053,38 @@ "schema": { "type": "object", "properties": { - "type": { + "name": { "type": "string", - "description": "Type of reference passed. Allowed values are: branch, commit", + "description": "File name.", "default": null, - "x-example": "branch", - "enum": [ - "branch", - "commit", - "tag" - ], - "x-enum-name": "VCSReferenceType", - "x-enum-keys": [] + "x-example": "<NAME>" }, - "reference": { - "type": "string", - "description": "VCS reference to create deployment from. Depending on type this can be: branch name, commit hash", + "permissions": { + "type": "array", + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", "default": null, - "x-example": "<REFERENCE>" - }, - "activate": { - "type": "boolean", - "description": "Automatically activate the deployment when it is finished building.", - "default": false, - "x-example": false + "x-example": "[\"read(\"any\")\"]", + "x-nullable": true, + "items": { + "type": "string" + } } - }, - "required": [ - "type", - "reference" - ] - } - } - ] - } - }, - "\/sites\/{siteId}\/deployments\/{deploymentId}": { - "get": { - "summary": "Get deployment", - "operationId": "sitesGetDeployment", - "consumes": [], - "produces": [ - "application\/json" - ], - "tags": [ - "sites" - ], - "description": "Get a site deployment by its unique ID.", - "responses": { - "200": { - "description": "Deployment", - "schema": { - "$ref": "#\/definitions\/deployment" + } } } - }, - "deprecated": false, - "x-appwrite": { - "method": "getDeployment", - "group": "deployments", - "weight": 597, - "cookies": false, - "type": "", - "demo": "sites\/get-deployment.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "siteId", - "description": "Site ID.", - "required": true, - "type": "string", - "x-example": "<SITE_ID>", - "in": "path" - }, - { - "name": "deploymentId", - "description": "Deployment ID.", - "required": true, - "type": "string", - "x-example": "<DEPLOYMENT_ID>", - "in": "path" - } ] }, "delete": { - "summary": "Delete deployment", - "operationId": "sitesDeleteDeployment", + "summary": "Delete file", + "operationId": "storageDeleteFile", "consumes": [ "application\/json" ], "produces": [], "tags": [ - "sites" + "storage" ], - "description": "Delete a site deployment by its unique ID.", + "description": "Delete a file by its unique ID. Only users with write permissions have access to delete this resource.", "responses": { "204": { "description": "No content" @@ -26371,65 +31092,69 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteDeployment", - "group": "deployments", - "weight": 600, + "method": "deleteFile", + "group": "files", + "weight": 605, "cookies": false, "type": "", - "demo": "sites\/delete-deployment.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "demo": "storage\/delete-file.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "files.write", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/delete-file.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", "required": true, "type": "string", - "x-example": "<SITE_ID>", + "x-example": "<BUCKET_ID>", "in": "path" }, { - "name": "deploymentId", - "description": "Deployment ID.", + "name": "fileId", + "description": "File ID.", "required": true, "type": "string", - "x-example": "<DEPLOYMENT_ID>", + "x-example": "<FILE_ID>", "in": "path" } ] } }, - "\/sites\/{siteId}\/deployments\/{deploymentId}\/download": { + "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/download": { "get": { - "summary": "Get deployment download", - "operationId": "sitesGetDeploymentDownload", + "summary": "Get file for download", + "operationId": "storageGetFileDownload", "consumes": [], "produces": [ "*\/*" ], "tags": [ - "sites" + "storage" ], - "description": "Get a site deployment content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory.", + "description": "Get a file 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", @@ -26440,260 +31165,397 @@ }, "deprecated": false, "x-appwrite": { - "method": "getDeploymentDownload", - "group": "deployments", - "weight": 601, + "method": "getFileDownload", + "group": "files", + "weight": 607, "cookies": false, "type": "location", - "demo": "sites\/get-deployment-download.md", + "demo": "storage\/get-file-download.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": "files.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-download.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], + "Session": [], "Key": [], "JWT": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "bucketId", + "description": "Storage bucket ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", "required": true, "type": "string", - "x-example": "<SITE_ID>", + "x-example": "<BUCKET_ID>", "in": "path" }, { - "name": "deploymentId", - "description": "Deployment ID.", + "name": "fileId", + "description": "File ID.", "required": true, "type": "string", - "x-example": "<DEPLOYMENT_ID>", + "x-example": "<FILE_ID>", "in": "path" }, { - "name": "type", - "description": "Deployment file to download. Can be: \"source\", \"output\".", + "name": "token", + "description": "File token for accessing this file.", "required": false, "type": "string", - "x-example": "source", - "enum": [ - "source", - "output" - ], - "x-enum-name": "DeploymentDownloadType", - "x-enum-keys": [], - "default": "source", + "x-example": "<TOKEN>", + "default": "", "in": "query" } ] } }, - "\/sites\/{siteId}\/deployments\/{deploymentId}\/status": { - "patch": { - "summary": "Update deployment status", - "operationId": "sitesUpdateDeploymentStatus", - "consumes": [ - "application\/json" - ], + "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/preview": { + "get": { + "summary": "Get file preview", + "operationId": "storageGetFilePreview", + "consumes": [], "produces": [ - "application\/json" + "image\/*" ], "tags": [ - "sites" + "storage" ], - "description": "Cancel an ongoing site deployment build. If the build is already in progress, it will be stopped and marked as canceled. If the build hasn't started yet, it will be marked as canceled without executing. You cannot cancel builds that have already completed (status 'ready') or failed. The response includes the final build status and details.", + "description": "Get a file preview image. Currently, this method supports preview for image files (jpg, png, and gif), other supported formats, like pdf, docs, slides, and spreadsheets, will return the file icon image. You can also pass query string arguments for cutting and resizing your preview image. Preview is supported only for image files smaller than 10MB.", "responses": { "200": { - "description": "Deployment", + "description": "Image", "schema": { - "$ref": "#\/definitions\/deployment" + "type": "file" } } }, "deprecated": false, "x-appwrite": { - "method": "updateDeploymentStatus", - "group": "deployments", - "weight": 603, + "method": "getFilePreview", + "group": "files", + "weight": 606, "cookies": false, - "type": "", - "demo": "sites\/update-deployment-status.md", + "type": "location", + "demo": "storage\/get-file-preview.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": "files.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-preview.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", "required": true, "type": "string", - "x-example": "<SITE_ID>", + "x-example": "<BUCKET_ID>", "in": "path" }, { - "name": "deploymentId", - "description": "Deployment ID.", + "name": "fileId", + "description": "File ID", "required": true, "type": "string", - "x-example": "<DEPLOYMENT_ID>", + "x-example": "<FILE_ID>", "in": "path" + }, + { + "name": "width", + "description": "Resize preview image width, Pass an integer between 0 to 4000.", + "required": false, + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0, + "in": "query" + }, + { + "name": "height", + "description": "Resize preview image height, Pass an integer between 0 to 4000.", + "required": false, + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0, + "in": "query" + }, + { + "name": "gravity", + "description": "Image crop gravity. Can be one of center,top-left,top,top-right,left,right,bottom-left,bottom,bottom-right", + "required": false, + "type": "string", + "x-example": "center", + "enum": [ + "center", + "top-left", + "top", + "top-right", + "left", + "right", + "bottom-left", + "bottom", + "bottom-right" + ], + "x-enum-name": "ImageGravity", + "x-enum-keys": [], + "default": "center", + "in": "query" + }, + { + "name": "quality", + "description": "Preview image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", + "required": false, + "type": "integer", + "format": "int32", + "x-example": -1, + "default": -1, + "in": "query" + }, + { + "name": "borderWidth", + "description": "Preview image border in pixels. Pass an integer between 0 to 100. Defaults to 0.", + "required": false, + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0, + "in": "query" + }, + { + "name": "borderColor", + "description": "Preview image border color. Use a valid HEX color, no # is needed for prefix.", + "required": false, + "type": "string", + "default": "", + "in": "query" + }, + { + "name": "borderRadius", + "description": "Preview image border radius in pixels. Pass an integer between 0 to 4000.", + "required": false, + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0, + "in": "query" + }, + { + "name": "opacity", + "description": "Preview image opacity. Only works with images having an alpha channel (like png). Pass a number between 0 to 1.", + "required": false, + "type": "number", + "format": "float", + "x-example": 0, + "default": 1, + "in": "query" + }, + { + "name": "rotation", + "description": "Preview image rotation in degrees. Pass an integer between -360 and 360.", + "required": false, + "type": "integer", + "format": "int32", + "x-example": -360, + "default": 0, + "in": "query" + }, + { + "name": "background", + "description": "Preview image background color. Only works with transparent images (png). Use a valid HEX color, no # is needed for prefix.", + "required": false, + "type": "string", + "default": "", + "in": "query" + }, + { + "name": "output", + "description": "Output format type (jpeg, jpg, png, gif and webp).", + "required": false, + "type": "string", + "x-example": "jpg", + "enum": [ + "jpg", + "jpeg", + "png", + "webp", + "heic", + "avif", + "gif" + ], + "x-enum-name": "ImageFormat", + "x-enum-keys": [], + "default": "", + "in": "query" + }, + { + "name": "token", + "description": "File token for accessing this file.", + "required": false, + "type": "string", + "x-example": "<TOKEN>", + "default": "", + "in": "query" } ] } }, - "\/sites\/{siteId}\/logs": { + "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/view": { "get": { - "summary": "List logs", - "operationId": "sitesListLogs", + "summary": "Get file for view", + "operationId": "storageGetFileView", "consumes": [], "produces": [ - "application\/json" + "*\/*" ], "tags": [ - "sites" + "storage" ], - "description": "Get a list of all site logs. You can use the query params to filter your results.", + "description": "Get a file content by its unique ID. This endpoint is similar to the download method but returns with no 'Content-Disposition: attachment' header.", "responses": { "200": { - "description": "Executions List", + "description": "File", "schema": { - "$ref": "#\/definitions\/executionList" + "type": "file" } } }, "deprecated": false, "x-appwrite": { - "method": "listLogs", - "group": "logs", - "weight": 605, + "method": "getFileView", + "group": "files", + "weight": 608, "cookies": false, - "type": "", - "demo": "sites\/list-logs.md", + "type": "location", + "demo": "storage\/get-file-view.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "log.read", + "scope": "files.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-view.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", "required": true, "type": "string", - "x-example": "<SITE_ID>", + "x-example": "<BUCKET_ID>", "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, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" + "name": "fileId", + "description": "File ID.", + "required": true, + "type": "string", + "x-example": "<FILE_ID>", + "in": "path" }, { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "name": "token", + "description": "File token for accessing this file.", "required": false, - "type": "boolean", - "x-example": false, - "default": true, + "type": "string", + "x-example": "<TOKEN>", + "default": "", "in": "query" } ] } }, - "\/sites\/{siteId}\/logs\/{logId}": { + "\/tablesdb": { "get": { - "summary": "Get log", - "operationId": "sitesGetLog", + "summary": "List databases", + "operationId": "tablesDBList", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "sites" + "tablesDB" ], - "description": "Get a site request log by its unique ID.", + "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": "Execution", + "description": "Databases List", "schema": { - "$ref": "#\/definitions\/execution" + "$ref": "#\/definitions\/databaseList" } } }, "deprecated": false, "x-appwrite": { - "method": "getLog", - "group": "logs", - "weight": 604, + "method": "list", + "group": "tablesdb", + "weight": 322, "cookies": false, "type": "", - "demo": "sites\/get-log.md", + "demo": "tablesdb\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "log.read", + "scope": "databases.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list.md", "auth": { "Project": [], "Key": [] @@ -26707,26 +31569,40 @@ ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", - "required": true, - "type": "string", - "x-example": "<SITE_ID>", - "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 columns: name", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" }, { - "name": "logId", - "description": "Log ID.", - "required": true, + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, "type": "string", - "x-example": "<LOG_ID>", - "in": "path" + "x-example": "<SEARCH>", + "default": "", + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" } ] }, - "delete": { - "summary": "Delete log", - "operationId": "sitesDeleteLog", + "post": { + "summary": "Create database", + "operationId": "tablesDBCreate", "consumes": [ "application\/json" ], @@ -26734,32 +31610,36 @@ "application\/json" ], "tags": [ - "sites" + "tablesDB" ], - "description": "Delete a site log by its unique ID.", + "description": "Create a new Database.\n", "responses": { - "204": { - "description": "No content" + "201": { + "description": "Database", + "schema": { + "$ref": "#\/definitions\/database" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteLog", - "group": "logs", - "weight": 606, + "method": "create", + "group": "tablesdb", + "weight": 318, "cookies": false, "type": "", - "demo": "sites\/delete-log.md", + "demo": "tablesdb\/create.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "log.write", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create.md", "auth": { "Project": [], "Key": [] @@ -26773,62 +31653,82 @@ ], "parameters": [ { - "name": "siteId", - "description": "Site ID.", - "required": true, - "type": "string", - "x-example": "<SITE_ID>", - "in": "path" - }, - { - "name": "logId", - "description": "Log ID.", - "required": true, - "type": "string", - "x-example": "<LOG_ID>", - "in": "path" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "databaseId": { + "type": "string", + "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.", + "default": null, + "x-example": "<DATABASE_ID>" + }, + "name": { + "type": "string", + "description": "Database name. Max length: 128 chars.", + "default": null, + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "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.", + "default": true, + "x-example": false + } + }, + "required": [ + "databaseId", + "name" + ] + } } ] } }, - "\/sites\/{siteId}\/variables": { + "\/tablesdb\/transactions": { "get": { - "summary": "List variables", - "operationId": "sitesListVariables", + "summary": "List transactions", + "operationId": "tablesDBListTransactions", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "sites" + "tablesDB" ], - "description": "Get a list of all variables of a specific site.", + "description": "List transactions across all databases.", "responses": { "200": { - "description": "Variables List", + "description": "Transaction List", "schema": { - "$ref": "#\/definitions\/variableList" + "$ref": "#\/definitions\/transactionList" } } }, "deprecated": false, "x-appwrite": { - "method": "listVariables", - "group": "variables", - "weight": 609, + "method": "listTransactions", + "group": "transactions", + "weight": 389, "cookies": false, "type": "", - "demo": "sites\/list-variables.md", + "demo": "tablesdb\/list-transactions.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": [ + "documents.read", + "rows.read" + ], "platforms": [ "console", - "server" + "server", + "client" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-transactions.md", "auth": { "Project": [], "Key": [] @@ -26837,23 +31737,29 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site unique ID.", - "required": true, - "type": "string", - "x-example": "<SITE_ID>", - "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).", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" } ] }, "post": { - "summary": "Create variable", - "operationId": "sitesCreateVariable", + "summary": "Create transaction", + "operationId": "tablesDBCreateTransaction", "consumes": [ "application\/json" ], @@ -26861,35 +31767,40 @@ "application\/json" ], "tags": [ - "sites" + "tablesDB" ], - "description": "Create a new site variable. These variables can be accessed during build and runtime (server-side rendering) as environment variables.", + "description": "Create a new transaction.", "responses": { "201": { - "description": "Variable", + "description": "Transaction", "schema": { - "$ref": "#\/definitions\/variable" + "$ref": "#\/definitions\/transaction" } } }, "deprecated": false, "x-appwrite": { - "method": "createVariable", - "group": "variables", - "weight": 607, + "method": "createTransaction", + "group": "transactions", + "weight": 385, "cookies": false, "type": "", - "demo": "sites\/create-variable.md", + "demo": "tablesdb\/create-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "console", - "server" + "server", + "client" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-transaction.md", "auth": { "Project": [], "Key": [] @@ -26898,90 +31809,74 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "Session": [], + "JWT": [] } ], "parameters": [ - { - "name": "siteId", - "description": "Site unique ID.", - "required": true, - "type": "string", - "x-example": "<SITE_ID>", - "in": "path" - }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "key": { - "type": "string", - "description": "Variable key. Max length: 255 chars.", - "default": null, - "x-example": "<KEY>" - }, - "value": { - "type": "string", - "description": "Variable value. Max length: 8192 chars.", - "default": null, - "x-example": "<VALUE>" - }, - "secret": { - "type": "boolean", - "description": "Secret variables can be updated or deleted, but only sites can read them during build and runtime.", - "default": true, - "x-example": false + "ttl": { + "type": "integer", + "description": "Seconds before the transaction expires.", + "default": 300, + "x-example": 60, + "format": "int32" } - }, - "required": [ - "key", - "value" - ] + } } } ] } }, - "\/sites\/{siteId}\/variables\/{variableId}": { + "\/tablesdb\/transactions\/{transactionId}": { "get": { - "summary": "Get variable", - "operationId": "sitesGetVariable", + "summary": "Get transaction", + "operationId": "tablesDBGetTransaction", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "sites" + "tablesDB" ], - "description": "Get a variable by its unique ID.", + "description": "Get a transaction by its unique ID.", "responses": { "200": { - "description": "Variable", + "description": "Transaction", "schema": { - "$ref": "#\/definitions\/variable" + "$ref": "#\/definitions\/transaction" } } }, "deprecated": false, "x-appwrite": { - "method": "getVariable", - "group": "variables", - "weight": 608, + "method": "getTransaction", + "group": "transactions", + "weight": 386, "cookies": false, "type": "", - "demo": "sites\/get-variable.md", + "demo": "tablesdb\/get-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.read", + "scope": [ + "documents.read", + "rows.read" + ], "platforms": [ "console", - "server" + "server", + "client" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-transaction.md", "auth": { "Project": [], "Key": [] @@ -26990,31 +31885,25 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site unique ID.", - "required": true, - "type": "string", - "x-example": "<SITE_ID>", - "in": "path" - }, - { - "name": "variableId", - "description": "Variable unique ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "type": "string", - "x-example": "<VARIABLE_ID>", + "x-example": "<TRANSACTION_ID>", "in": "path" } ] }, - "put": { - "summary": "Update variable", - "operationId": "sitesUpdateVariable", + "patch": { + "summary": "Update transaction", + "operationId": "tablesDBUpdateTransaction", "consumes": [ "application\/json" ], @@ -27022,35 +31911,40 @@ "application\/json" ], "tags": [ - "sites" + "tablesDB" ], - "description": "Update variable by its unique ID.", + "description": "Update a transaction, to either commit or roll back its operations.", "responses": { "200": { - "description": "Variable", + "description": "Transaction", "schema": { - "$ref": "#\/definitions\/variable" + "$ref": "#\/definitions\/transaction" } } }, "deprecated": false, "x-appwrite": { - "method": "updateVariable", - "group": "variables", - "weight": 610, + "method": "updateTransaction", + "group": "transactions", + "weight": 387, "cookies": false, "type": "", - "demo": "sites\/update-variable.md", + "demo": "tablesdb\/update-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "console", - "server" + "server", + "client" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-transaction.md", "auth": { "Project": [], "Key": [] @@ -27059,24 +31953,18 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site unique ID.", - "required": true, - "type": "string", - "x-example": "<SITE_ID>", - "in": "path" - }, - { - "name": "variableId", - "description": "Variable unique ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "type": "string", - "x-example": "<VARIABLE_ID>", + "x-example": "<TRANSACTION_ID>", "in": "path" }, { @@ -27085,45 +31973,34 @@ "schema": { "type": "object", "properties": { - "key": { - "type": "string", - "description": "Variable key. Max length: 255 chars.", - "default": null, - "x-example": "<KEY>" - }, - "value": { - "type": "string", - "description": "Variable value. Max length: 8192 chars.", - "default": null, - "x-example": "<VALUE>", - "x-nullable": true + "commit": { + "type": "boolean", + "description": "Commit transaction?", + "default": false, + "x-example": false }, - "secret": { + "rollback": { "type": "boolean", - "description": "Secret variables can be updated or deleted, but only sites can read them during build and runtime.", - "default": null, - "x-example": false, - "x-nullable": true + "description": "Rollback transaction?", + "default": false, + "x-example": false } - }, - "required": [ - "key" - ] + } } } ] }, "delete": { - "summary": "Delete variable", - "operationId": "sitesDeleteVariable", + "summary": "Delete transaction", + "operationId": "tablesDBDeleteTransaction", "consumes": [ "application\/json" ], "produces": [], "tags": [ - "sites" + "tablesDB" ], - "description": "Delete a variable by its unique ID.", + "description": "Delete a transaction by its unique ID.", "responses": { "204": { "description": "No content" @@ -27131,22 +32008,27 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteVariable", - "group": "variables", - "weight": 611, + "method": "deleteTransaction", + "group": "transactions", + "weight": 388, "cookies": false, "type": "", - "demo": "sites\/delete-variable.md", + "demo": "tablesdb\/delete-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "sites.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "console", - "server" + "server", + "client" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-transaction.md", "auth": { "Project": [], "Key": [] @@ -27155,115 +32037,27 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "siteId", - "description": "Site unique ID.", - "required": true, - "type": "string", - "x-example": "<SITE_ID>", - "in": "path" - }, - { - "name": "variableId", - "description": "Variable unique ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "type": "string", - "x-example": "<VARIABLE_ID>", + "x-example": "<TRANSACTION_ID>", "in": "path" } ] } }, - "\/storage\/buckets": { - "get": { - "summary": "List buckets", - "operationId": "storageListBuckets", - "consumes": [], - "produces": [ - "application\/json" - ], - "tags": [ - "storage" - ], - "description": "Get a list of all the storage buckets. You can use the query params to filter your results.", - "responses": { - "200": { - "description": "Buckets List", - "schema": { - "$ref": "#\/definitions\/bucketList" - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "listBuckets", - "group": "buckets", - "weight": 530, - "cookies": false, - "type": "", - "demo": "storage\/list-buckets.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "buckets.read", - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/list-buckets.md", - "auth": { - "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: enabled, name, fileSecurity, maximumFileSize, encryption, antivirus, transformations", - "required": false, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "type": "string", - "x-example": "<SEARCH>", - "default": "", - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" - } - ] - }, + "\/tablesdb\/transactions\/{transactionId}\/operations": { "post": { - "summary": "Create bucket", - "operationId": "storageCreateBucket", + "summary": "Create operations", + "operationId": "tablesDBCreateOperations", "consumes": [ "application\/json" ], @@ -27271,36 +32065,40 @@ "application\/json" ], "tags": [ - "storage" + "tablesDB" ], - "description": "Create a new storage bucket.", + "description": "Create multiple operations in a single transaction.", "responses": { "201": { - "description": "Bucket", + "description": "Transaction", "schema": { - "$ref": "#\/definitions\/bucket" + "$ref": "#\/definitions\/transaction" } } }, "deprecated": false, "x-appwrite": { - "method": "createBucket", - "group": "buckets", - "weight": 528, + "method": "createOperations", + "group": "transactions", + "weight": 390, "cookies": false, "type": "", - "demo": "storage\/create-bucket.md", + "demo": "tablesdb\/create-operations.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "buckets.write", + "scope": [ + "documents.write", + "rows.write" + ], "platforms": [ "console", - "server" + "server", + "client" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/create-bucket.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-operations.md", "auth": { "Project": [], "Key": [] @@ -27309,146 +32107,80 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "Session": [], + "JWT": [] } ], "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "type": "string", + "x-example": "<TRANSACTION_ID>", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "bucketId": { - "type": "string", - "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.", - "default": null, - "x-example": "<BUCKET_ID>" - }, - "name": { - "type": "string", - "description": "Bucket name", - "default": null, - "x-example": "<NAME>" - }, - "permissions": { - "type": "array", - "description": "An array of permission strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "default": null, - "x-example": "[\"read(\"any\")\"]", - "x-nullable": true, - "items": { - "type": "string" - } - }, - "fileSecurity": { - "type": "boolean", - "description": "Enables configuring permissions for individual file. A user needs one of file or bucket level permissions to access a file. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "default": false, - "x-example": false - }, - "enabled": { - "type": "boolean", - "description": "Is bucket enabled? When set to 'disabled', users cannot access the files in this bucket but Server SDKs with and API key can still access the bucket. No files are lost when this is toggled.", - "default": true, - "x-example": false - }, - "maximumFileSize": { - "type": "integer", - "description": "Maximum file size allowed in bytes. Maximum allowed value is 5GB.", - "default": {}, - "x-example": 1, - "format": "int32" - }, - "allowedFileExtensions": { + "operations": { "type": "array", - "description": "Allowed file extensions. Maximum of 100 extensions are allowed, each 64 characters long.", + "description": "Array of staged operations.", "default": [], - "x-example": null, + "x-example": "[\n\t {\n\t \"action\": \"create\",\n\t \"databaseId\": \"<DATABASE_ID>\",\n\t \"tableId\": \"<TABLE_ID>\",\n\t \"rowId\": \"<ROW_ID>\",\n\t \"data\": {\n\t \"name\": \"Walter O'Brien\"\n\t }\n\t }\n\t]", "items": { - "type": "string" + "type": "object" } - }, - "compression": { - "type": "string", - "description": "Compression algorithm chosen for compression. Can be one of none, [gzip](https:\/\/en.wikipedia.org\/wiki\/Gzip), or [zstd](https:\/\/en.wikipedia.org\/wiki\/Zstd), For file size above 20MB compression is skipped even if it's enabled", - "default": "none", - "x-example": "none", - "enum": [ - "none", - "gzip", - "zstd" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "encryption": { - "type": "boolean", - "description": "Is encryption enabled? For file size above 20MB encryption is skipped even if it's enabled", - "default": true, - "x-example": false - }, - "antivirus": { - "type": "boolean", - "description": "Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled", - "default": true, - "x-example": false - }, - "transformations": { - "type": "boolean", - "description": "Are image transformations enabled?", - "default": true, - "x-example": false } - }, - "required": [ - "bucketId", - "name" - ] + } } } ] } }, - "\/storage\/buckets\/{bucketId}": { + "\/tablesdb\/{databaseId}": { "get": { - "summary": "Get bucket", - "operationId": "storageGetBucket", + "summary": "Get database", + "operationId": "tablesDBGet", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "storage" + "tablesDB" ], - "description": "Get a storage bucket by its unique ID. This endpoint response returns a JSON object with the storage bucket metadata.", + "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", "responses": { "200": { - "description": "Bucket", + "description": "Database", "schema": { - "$ref": "#\/definitions\/bucket" + "$ref": "#\/definitions\/database" } } }, "deprecated": false, "x-appwrite": { - "method": "getBucket", - "group": "buckets", - "weight": 529, + "method": "get", + "group": "tablesdb", + "weight": 319, "cookies": false, "type": "", - "demo": "storage\/get-bucket.md", + "demo": "tablesdb\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "buckets.read", + "scope": "databases.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-bucket.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get.md", "auth": { "Project": [], "Key": [] @@ -27462,18 +32194,18 @@ ], "parameters": [ { - "name": "bucketId", - "description": "Bucket unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<BUCKET_ID>", + "x-example": "<DATABASE_ID>", "in": "path" } ] }, "put": { - "summary": "Update bucket", - "operationId": "storageUpdateBucket", + "summary": "Update database", + "operationId": "tablesDBUpdate", "consumes": [ "application\/json" ], @@ -27481,36 +32213,36 @@ "application\/json" ], "tags": [ - "storage" + "tablesDB" ], - "description": "Update a storage bucket by its unique ID.", + "description": "Update a database by its unique ID.", "responses": { "200": { - "description": "Bucket", + "description": "Database", "schema": { - "$ref": "#\/definitions\/bucket" + "$ref": "#\/definitions\/database" } } }, "deprecated": false, "x-appwrite": { - "method": "updateBucket", - "group": "buckets", - "weight": 531, + "method": "update", + "group": "tablesdb", + "weight": 320, "cookies": false, "type": "", - "demo": "storage\/update-bucket.md", + "demo": "tablesdb\/update.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "buckets.write", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/update-bucket.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update.md", "auth": { "Project": [], "Key": [] @@ -27524,11 +32256,11 @@ ], "parameters": [ { - "name": "bucketId", - "description": "Bucket unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<BUCKET_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { @@ -27539,98 +32271,32 @@ "properties": { "name": { "type": "string", - "description": "Bucket name", + "description": "Database name. Max length: 128 chars.", "default": null, "x-example": "<NAME>" }, - "permissions": { - "type": "array", - "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "default": null, - "x-example": "[\"read(\"any\")\"]", - "x-nullable": true, - "items": { - "type": "string" - } - }, - "fileSecurity": { - "type": "boolean", - "description": "Enables configuring permissions for individual file. A user needs one of file or bucket level permissions to access a file. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "default": false, - "x-example": false - }, "enabled": { "type": "boolean", - "description": "Is bucket enabled? When set to 'disabled', users cannot access the files in this bucket but Server SDKs with and API key can still access the bucket. No files are lost when this is toggled.", - "default": true, - "x-example": false - }, - "maximumFileSize": { - "type": "integer", - "description": "Maximum file size allowed in bytes. Maximum allowed value is 5GB.", - "default": {}, - "x-example": 1, - "format": "int32" - }, - "allowedFileExtensions": { - "type": "array", - "description": "Allowed file extensions. Maximum of 100 extensions are allowed, each 64 characters long.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "compression": { - "type": "string", - "description": "Compression algorithm chosen for compression. Can be one of none, [gzip](https:\/\/en.wikipedia.org\/wiki\/Gzip), or [zstd](https:\/\/en.wikipedia.org\/wiki\/Zstd), For file size above 20MB compression is skipped even if it's enabled", - "default": "none", - "x-example": "none", - "enum": [ - "none", - "gzip", - "zstd" - ], - "x-enum-name": null, - "x-enum-keys": [] - }, - "encryption": { - "type": "boolean", - "description": "Is encryption enabled? For file size above 20MB encryption is skipped even if it's enabled", - "default": true, - "x-example": false - }, - "antivirus": { - "type": "boolean", - "description": "Is virus scanning enabled? For file size above 20MB AntiVirus scanning is skipped even if it's enabled", - "default": true, - "x-example": false - }, - "transformations": { - "type": "boolean", - "description": "Are image transformations 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.", "default": true, "x-example": false } - }, - "required": [ - "name" - ] + } } } ] }, "delete": { - "summary": "Delete bucket", - "operationId": "storageDeleteBucket", + "summary": "Delete database", + "operationId": "tablesDBDelete", "consumes": [ "application\/json" ], "produces": [], "tags": [ - "storage" + "tablesDB" ], - "description": "Delete a storage bucket by its unique ID.", + "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" @@ -27638,23 +32304,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteBucket", - "group": "buckets", - "weight": 532, + "method": "delete", + "group": "tablesdb", + "weight": 321, "cookies": false, "type": "", - "demo": "storage\/delete-bucket.md", + "demo": "tablesdb\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "buckets.write", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/delete-bucket.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete.md", "auth": { "Project": [], "Key": [] @@ -27668,81 +32334,81 @@ ], "parameters": [ { - "name": "bucketId", - "description": "Bucket unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<BUCKET_ID>", + "x-example": "<DATABASE_ID>", "in": "path" } ] } }, - "\/storage\/buckets\/{bucketId}\/files": { + "\/tablesdb\/{databaseId}\/tables": { "get": { - "summary": "List files", - "operationId": "storageListFiles", + "summary": "List tables", + "operationId": "tablesDBListTables", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "storage" + "tablesDB" ], - "description": "Get a list of all the user files. You can use the query params to filter your results.", + "description": "Get a list of all tables that belong to the provided databaseId. You can use the search parameter to filter your results.", "responses": { "200": { - "description": "Files List", + "description": "Tables List", "schema": { - "$ref": "#\/definitions\/fileList" + "$ref": "#\/definitions\/tableList" } } }, "deprecated": false, "x-appwrite": { - "method": "listFiles", - "group": "files", - "weight": 535, + "method": "listTables", + "group": "tables", + "weight": 329, "cookies": false, "type": "", - "demo": "storage\/list-files.md", + "demo": "tablesdb\/list-tables.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", + "scope": [ + "tables.read", + "collections.read" + ], "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/list-files.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-tables.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<BUCKET_ID>", + "x-example": "<DATABASE_ID>", "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, signature, mimeType, sizeOriginal, chunksTotal, chunksUploaded", + "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, enabled, rowSecurity", "required": false, "type": "array", "collectionFormat": "multi", @@ -27773,174 +32439,211 @@ ] }, "post": { - "summary": "Create file", - "operationId": "storageCreateFile", + "summary": "Create table", + "operationId": "tablesDBCreateTable", "consumes": [ - "multipart\/form-data" + "application\/json" ], "produces": [ "application\/json" ], "tags": [ - "storage" + "tablesDB" ], - "description": "Create a new file. Before using this route, you should create a new bucket resource using either a [server integration](https:\/\/appwrite.io\/docs\/server\/storage#storageCreateBucket) API or directly from your Appwrite console.\n\nLarger files should be uploaded using multiple requests with the [content-range](https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTTP\/Headers\/Content-Range) header to send a partial request with a maximum supported chunk of `5MB`. The `content-range` header values should always be in bytes.\n\nWhen the first request is sent, the server will return the **File** object, and the subsequent part request must include the file's **id** in `x-appwrite-id` header to allow the server to know that the partial upload is for the existing file and not for a new one.\n\nIf you're creating a new file using one of the Appwrite SDKs, all the chunking logic will be managed by the SDK internally.\n", + "description": "Create a new Table. Before using this route, you should create a new database resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", "responses": { "201": { - "description": "File", + "description": "Table", "schema": { - "$ref": "#\/definitions\/file" + "$ref": "#\/definitions\/table" } } }, "deprecated": false, "x-appwrite": { - "method": "createFile", - "group": "files", - "weight": 781, + "method": "createTable", + "group": "tables", + "weight": 325, "cookies": false, - "type": "upload", - "demo": "storage\/create-file.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId},chunkId:{chunkId}", - "scope": "files.write", + "type": "", + "demo": "tablesdb\/create-table.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/create-file.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-table.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<BUCKET_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "fileId", - "description": "File 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, - "x-upload-id": true, - "type": "string", - "x-example": "<FILE_ID>", - "in": "formData" - }, - { - "name": "file", - "description": "Binary file. Appwrite SDKs provide helpers to handle file input. [Learn about file input](https:\/\/appwrite.io\/docs\/products\/storage\/upload-download#input-file).", - "required": true, - "type": "file", - "in": "formData" - }, - { - "name": "permissions", - "description": "An array of permission strings. By default, only the current user is granted all permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "required": false, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "x-example": "[\"read(\"any\")\"]", - "in": "formData" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "tableId": { + "type": "string", + "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.", + "default": null, + "x-example": "<TABLE_ID>" + }, + "name": { + "type": "string", + "description": "Table name. Max length: 128 chars.", + "default": null, + "x-example": "<NAME>" + }, + "permissions": { + "type": "array", + "description": "An array of permissions strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "default": null, + "x-example": "[\"read(\"any\")\"]", + "x-nullable": true, + "items": { + "type": "string" + } + }, + "rowSecurity": { + "type": "boolean", + "description": "Enables configuring permissions for individual rows. A user needs one of row or table level permissions to access a row. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "default": false, + "x-example": false + }, + "enabled": { + "type": "boolean", + "description": "Is table enabled? When set to 'disabled', users cannot access the table but Server SDKs with and API key can still read and write to the table. No data is lost when this is toggled.", + "default": true, + "x-example": false + }, + "columns": { + "type": "array", + "description": "Array of column definitions to create. Each column should contain: key (string), type (string: string, integer, float, boolean, datetime, relationship), size (integer, required for string type), required (boolean, optional), default (mixed, optional), array (boolean, optional), and type-specific options.", + "default": [], + "x-example": null, + "items": { + "type": "object" + } + }, + "indexes": { + "type": "array", + "description": "Array of index definitions to create. Each index should contain: key (string), type (string: key, fulltext, unique, spatial), attributes (array of column keys), orders (array of ASC\/DESC, optional), and lengths (array of integers, optional).", + "default": [], + "x-example": null, + "items": { + "type": "object" + } + } + }, + "required": [ + "tableId", + "name" + ] + } } ] } }, - "\/storage\/buckets\/{bucketId}\/files\/{fileId}": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}": { "get": { - "summary": "Get file", - "operationId": "storageGetFile", + "summary": "Get table", + "operationId": "tablesDBGetTable", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "storage" + "tablesDB" ], - "description": "Get a file by its unique ID. This endpoint response returns a JSON object with the file metadata.", + "description": "Get a table by its unique ID. This endpoint response returns a JSON object with the table metadata.", "responses": { "200": { - "description": "File", + "description": "Table", "schema": { - "$ref": "#\/definitions\/file" + "$ref": "#\/definitions\/table" } } }, "deprecated": false, "x-appwrite": { - "method": "getFile", - "group": "files", - "weight": 534, + "method": "getTable", + "group": "tables", + "weight": 326, "cookies": false, "type": "", - "demo": "storage\/get-file.md", + "demo": "tablesdb\/get-table.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", + "scope": [ + "tables.read", + "collections.read" + ], "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-table.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<BUCKET_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "fileId", - "description": "File ID.", + "name": "tableId", + "description": "Table ID.", "required": true, "type": "string", - "x-example": "<FILE_ID>", + "x-example": "<TABLE_ID>", "in": "path" } ] }, "put": { - "summary": "Update file", - "operationId": "storageUpdateFile", + "summary": "Update table", + "operationId": "tablesDBUpdateTable", "consumes": [ "application\/json" ], @@ -27948,65 +32651,65 @@ "application\/json" ], "tags": [ - "storage" + "tablesDB" ], - "description": "Update a file by its unique ID. Only users with write permissions have access to update this resource.", + "description": "Update a table by its unique ID.", "responses": { "200": { - "description": "File", + "description": "Table", "schema": { - "$ref": "#\/definitions\/file" + "$ref": "#\/definitions\/table" } } }, "deprecated": false, "x-appwrite": { - "method": "updateFile", - "group": "files", - "weight": 536, + "method": "updateTable", + "group": "tables", + "weight": 327, "cookies": false, "type": "", - "demo": "storage\/update-file.md", + "demo": "tablesdb\/update-table.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "files.write", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/update-file.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-table.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "bucketId", - "description": "Bucket unique ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<BUCKET_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "fileId", - "description": "File ID.", + "name": "tableId", + "description": "Table ID.", "required": true, "type": "string", - "x-example": "<FILE_ID>", + "x-example": "<TABLE_ID>", "in": "path" }, { @@ -28017,7 +32720,7 @@ "properties": { "name": { "type": "string", - "description": "File name.", + "description": "Table name. Max length: 128 chars.", "default": null, "x-example": "<NAME>" }, @@ -28030,6 +32733,18 @@ "items": { "type": "string" } + }, + "rowSecurity": { + "type": "boolean", + "description": "Enables configuring permissions for individual rows. A user needs one of row or table-level permissions to access a row. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "default": false, + "x-example": false + }, + "enabled": { + "type": "boolean", + "description": "Is table enabled? When set to 'disabled', users cannot access the table but Server SDKs with and API key can still read and write to the table. No data is lost when this is toggled.", + "default": true, + "x-example": false } } } @@ -28037,16 +32752,16 @@ ] }, "delete": { - "summary": "Delete file", - "operationId": "storageDeleteFile", + "summary": "Delete table", + "operationId": "tablesDBDeleteTable", "consumes": [ "application\/json" ], "produces": [], "tags": [ - "storage" + "tablesDB" ], - "description": "Delete a file by its unique ID. Only users with write permissions have access to delete this resource.", + "description": "Delete a table by its unique ID. Only users with write permissions have access to delete this resource.", "responses": { "204": { "description": "No content" @@ -28054,470 +32769,308 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteFile", - "group": "files", - "weight": 537, + "method": "deleteTable", + "group": "tables", + "weight": 328, "cookies": false, "type": "", - "demo": "storage\/delete-file.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "files.write", - "platforms": [ - "console", - "client", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/delete-file.md", - "auth": { - "Project": [], - "Session": [] - } - }, - "security": [ - { - "Project": [], - "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", - "required": true, - "type": "string", - "x-example": "<BUCKET_ID>", - "in": "path" - }, - { - "name": "fileId", - "description": "File ID.", - "required": true, - "type": "string", - "x-example": "<FILE_ID>", - "in": "path" - } - ] - } - }, - "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/download": { - "get": { - "summary": "Get file for download", - "operationId": "storageGetFileDownload", - "consumes": [], - "produces": [ - "*\/*" - ], - "tags": [ - "storage" - ], - "description": "Get a file 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", - "schema": { - "type": "file" - } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "getFileDownload", - "group": "files", - "weight": 539, - "cookies": false, - "type": "location", - "demo": "storage\/get-file-download.md", + "demo": "tablesdb\/delete-table.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-download.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-table.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "bucketId", - "description": "Storage bucket ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<BUCKET_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "fileId", - "description": "File ID.", + "name": "tableId", + "description": "Table ID.", "required": true, "type": "string", - "x-example": "<FILE_ID>", - "in": "path" - }, - { - "name": "token", - "description": "File token for accessing this file.", - "required": false, - "type": "string", - "x-example": "<TOKEN>", - "default": "", - "in": "query" + "x-example": "<TABLE_ID>", + "in": "path" } ] } }, - "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/preview": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns": { "get": { - "summary": "Get file preview", - "operationId": "storageGetFilePreview", + "summary": "List columns", + "operationId": "tablesDBListColumns", "consumes": [], "produces": [ - "image\/*" + "application\/json" ], "tags": [ - "storage" + "tablesDB" ], - "description": "Get a file preview image. Currently, this method supports preview for image files (jpg, png, and gif), other supported formats, like pdf, docs, slides, and spreadsheets, will return the file icon image. You can also pass query string arguments for cutting and resizing your preview image. Preview is supported only for image files smaller than 10MB.", + "description": "List columns in the table.", "responses": { "200": { - "description": "Image", + "description": "Columns List", "schema": { - "type": "file" + "$ref": "#\/definitions\/columnList" } } }, "deprecated": false, "x-appwrite": { - "method": "getFilePreview", - "group": "files", - "weight": 538, + "method": "listColumns", + "group": "columns", + "weight": 334, "cookies": false, - "type": "location", - "demo": "storage\/get-file-preview.md", + "type": "", + "demo": "tablesdb\/list-columns.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", + "scope": [ + "tables.read", + "collections.read" + ], "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-preview.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-columns.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<BUCKET_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "fileId", - "description": "File ID", + "name": "tableId", + "description": "Table ID.", "required": true, "type": "string", - "x-example": "<FILE_ID>", + "x-example": "<TABLE_ID>", "in": "path" }, { - "name": "width", - "description": "Resize preview image width, Pass an integer between 0 to 4000.", - "required": false, - "type": "integer", - "format": "int32", - "x-example": 0, - "default": 0, - "in": "query" - }, - { - "name": "height", - "description": "Resize preview image height, Pass an integer between 0 to 4000.", - "required": false, - "type": "integer", - "format": "int32", - "x-example": 0, - "default": 0, - "in": "query" - }, - { - "name": "gravity", - "description": "Image crop gravity. Can be one of center,top-left,top,top-right,left,right,bottom-left,bottom,bottom-right", - "required": false, - "type": "string", - "x-example": "center", - "enum": [ - "center", - "top-left", - "top", - "top-right", - "left", - "right", - "bottom-left", - "bottom", - "bottom-right" - ], - "x-enum-name": "ImageGravity", - "x-enum-keys": [], - "default": "center", - "in": "query" - }, - { - "name": "quality", - "description": "Preview image quality. Pass an integer between 0 to 100. Defaults to keep existing image quality.", - "required": false, - "type": "integer", - "format": "int32", - "x-example": -1, - "default": -1, - "in": "query" - }, - { - "name": "borderWidth", - "description": "Preview image border in pixels. Pass an integer between 0 to 100. Defaults to 0.", - "required": false, - "type": "integer", - "format": "int32", - "x-example": 0, - "default": 0, - "in": "query" - }, - { - "name": "borderColor", - "description": "Preview image border color. Use a valid HEX color, no # is needed for prefix.", - "required": false, - "type": "string", - "default": "", - "in": "query" - }, - { - "name": "borderRadius", - "description": "Preview image border radius in pixels. Pass an integer between 0 to 4000.", - "required": false, - "type": "integer", - "format": "int32", - "x-example": 0, - "default": 0, - "in": "query" - }, - { - "name": "opacity", - "description": "Preview image opacity. Only works with images having an alpha channel (like png). Pass a number between 0 to 1.", - "required": false, - "type": "number", - "format": "float", - "x-example": 0, - "default": 1, - "in": "query" - }, - { - "name": "rotation", - "description": "Preview image rotation in degrees. Pass an integer between -360 and 360.", - "required": false, - "type": "integer", - "format": "int32", - "x-example": -360, - "default": 0, - "in": "query" - }, - { - "name": "background", - "description": "Preview image background color. Only works with transparent images (png). Use a valid HEX color, no # is needed for prefix.", - "required": false, - "type": "string", - "default": "", - "in": "query" - }, - { - "name": "output", - "description": "Output format type (jpeg, jpg, png, gif and webp).", + "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: key, type, size, required, array, status, error", "required": false, - "type": "string", - "x-example": "jpg", - "enum": [ - "jpg", - "jpeg", - "png", - "webp", - "heic", - "avif", - "gif" - ], - "x-enum-name": "ImageFormat", - "x-enum-keys": [], - "default": "", + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], "in": "query" }, { - "name": "token", - "description": "File token for accessing this file.", + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", "required": false, - "type": "string", - "x-example": "<TOKEN>", - "default": "", + "type": "boolean", + "x-example": false, + "default": true, "in": "query" } ] } }, - "\/storage\/buckets\/{bucketId}\/files\/{fileId}\/view": { - "get": { - "summary": "Get file for view", - "operationId": "storageGetFileView", - "consumes": [], + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/boolean": { + "post": { + "summary": "Create boolean column", + "operationId": "tablesDBCreateBooleanColumn", + "consumes": [ + "application\/json" + ], "produces": [ - "*\/*" + "application\/json" ], "tags": [ - "storage" + "tablesDB" ], - "description": "Get a file content by its unique ID. This endpoint is similar to the download method but returns with no 'Content-Disposition: attachment' header.", + "description": "Create a boolean column.\n", "responses": { - "200": { - "description": "File", + "202": { + "description": "ColumnBoolean", "schema": { - "type": "file" + "$ref": "#\/definitions\/columnBoolean" } } }, "deprecated": false, "x-appwrite": { - "method": "getFileView", - "group": "files", - "weight": 540, + "method": "createBooleanColumn", + "group": "columns", + "weight": 335, "cookies": false, - "type": "location", - "demo": "storage\/get-file-view.md", + "type": "", + "demo": "tablesdb\/create-boolean-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "files.read", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/storage\/get-file-view.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-boolean-column.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<BUCKET_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "fileId", - "description": "File ID.", + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "type": "string", - "x-example": "<FILE_ID>", + "x-example": "<TABLE_ID>", "in": "path" }, { - "name": "token", - "description": "File token for accessing this file.", - "required": false, - "type": "string", - "x-example": "<TOKEN>", - "default": "", - "in": "query" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "default": null, + "x-example": null + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "default": null, + "x-example": false + }, + "default": { + "type": "boolean", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "default": null, + "x-example": false, + "x-nullable": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "default": false, + "x-example": false + } + }, + "required": [ + "key", + "required" + ] + } } ] } }, - "\/tablesdb": { - "get": { - "summary": "List databases", - "operationId": "tablesDBList", - "consumes": [], + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/boolean\/{key}": { + "patch": { + "summary": "Update boolean column", + "operationId": "tablesDBUpdateBooleanColumn", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ "tablesDB" ], - "description": "Get a list of all databases from the current Appwrite project. You can use the search parameter to filter your results.", + "description": "Update a boolean column. Changing the `default` value will not update already existing rows.", "responses": { "200": { - "description": "Databases List", + "description": "ColumnBoolean", "schema": { - "$ref": "#\/definitions\/databaseList" + "$ref": "#\/definitions\/columnBoolean" } } }, "deprecated": false, "x-appwrite": { - "method": "list", - "group": "tablesdb", - "weight": 338, + "method": "updateBooleanColumn", + "group": "columns", + "weight": 336, "cookies": false, "type": "", - "demo": "tablesdb\/list.md", + "demo": "tablesdb\/update-boolean-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-boolean-column.md", "auth": { "Project": [], "Key": [] @@ -28531,40 +33084,68 @@ ], "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, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "in": "path" }, { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, + "name": "tableId", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, "type": "string", - "x-example": "<SEARCH>", - "default": "", - "in": "query" + "x-example": "<TABLE_ID>", + "in": "path" }, { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" + "name": "key", + "description": "Column Key.", + "required": true, + "type": "string", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "required": { + "type": "boolean", + "description": "Is column required?", + "default": null, + "x-example": false + }, + "default": { + "type": "boolean", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "default": null, + "x-example": false, + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "default": null, + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required", + "default" + ] + } } ] - }, + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/datetime": { "post": { - "summary": "Create database", - "operationId": "tablesDBCreate", + "summary": "Create datetime column", + "operationId": "tablesDBCreateDatetimeColumn", "consumes": [ "application\/json" ], @@ -28574,34 +33155,37 @@ "tags": [ "tablesDB" ], - "description": "Create a new Database.\n", + "description": "Create a date time column according to the ISO 8601 standard.", "responses": { - "201": { - "description": "Database", + "202": { + "description": "ColumnDatetime", "schema": { - "$ref": "#\/definitions\/database" + "$ref": "#\/definitions\/columnDatetime" } } }, "deprecated": false, "x-appwrite": { - "method": "create", - "group": "tablesdb", - "weight": 334, + "method": "createDatetimeColumn", + "group": "columns", + "weight": 337, "cookies": false, "type": "", - "demo": "tablesdb\/create.md", + "demo": "tablesdb\/create-datetime-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-datetime-column.md", "auth": { "Project": [], "Key": [] @@ -28614,83 +33198,107 @@ } ], "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "type": "string", + "x-example": "<TABLE_ID>", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "databaseId": { + "key": { "type": "string", - "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.", + "description": "Column Key.", "default": null, - "x-example": "<DATABASE_ID>" + "x-example": null }, - "name": { + "required": { + "type": "boolean", + "description": "Is column required?", + "default": null, + "x-example": false + }, + "default": { "type": "string", - "description": "Database name. Max length: 128 chars.", + "description": "Default value for the column in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Cannot be set when column is required.", "default": null, - "x-example": "<NAME>" + "x-example": null, + "x-nullable": true }, - "enabled": { + "array": { "type": "boolean", - "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.", - "default": true, + "description": "Is column an array?", + "default": false, "x-example": false } }, "required": [ - "databaseId", - "name" + "key", + "required" ] } } ] } }, - "\/tablesdb\/transactions": { - "get": { - "summary": "List transactions", - "operationId": "tablesDBListTransactions", - "consumes": [], + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/datetime\/{key}": { + "patch": { + "summary": "Update dateTime column", + "operationId": "tablesDBUpdateDatetimeColumn", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ "tablesDB" ], - "description": "List transactions across all databases.", + "description": "Update a date time column. Changing the `default` value will not update already existing rows.", "responses": { "200": { - "description": "Transaction List", + "description": "ColumnDatetime", "schema": { - "$ref": "#\/definitions\/transactionList" + "$ref": "#\/definitions\/columnDatetime" } } }, "deprecated": false, "x-appwrite": { - "method": "listTransactions", - "group": "transactions", - "weight": 405, + "method": "updateDatetimeColumn", + "group": "columns", + "weight": 338, "cookies": false, "type": "", - "demo": "tablesdb\/list-transactions.md", + "demo": "tablesdb\/update-datetime-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "documents.read", - "rows.read" + "tables.write", + "collections.write" ], "platforms": [ "console", - "server", - "client" + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-transactions.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-datetime-column.md", "auth": { "Project": [], "Key": [] @@ -28699,29 +33307,73 @@ "security": [ { "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "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).", - "required": false, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "type": "string", + "x-example": "<TABLE_ID>", + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "type": "string", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "required": { + "type": "boolean", + "description": "Is column required?", + "default": null, + "x-example": false + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "default": null, + "x-example": null, + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "default": null, + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required", + "default" + ] + } } ] - }, + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/email": { "post": { - "summary": "Create transaction", - "operationId": "tablesDBCreateTransaction", + "summary": "Create email column", + "operationId": "tablesDBCreateEmailColumn", "consumes": [ "application\/json" ], @@ -28731,38 +33383,37 @@ "tags": [ "tablesDB" ], - "description": "Create a new transaction.", + "description": "Create an email column.\n", "responses": { - "201": { - "description": "Transaction", + "202": { + "description": "ColumnEmail", "schema": { - "$ref": "#\/definitions\/transaction" + "$ref": "#\/definitions\/columnEmail" } } }, "deprecated": false, "x-appwrite": { - "method": "createTransaction", - "group": "transactions", - "weight": 401, + "method": "createEmailColumn", + "group": "columns", + "weight": 339, "cookies": false, "type": "", - "demo": "tablesdb\/create-transaction.md", + "demo": "tablesdb\/create-email-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "documents.write", - "rows.write" + "tables.write", + "collections.write" ], "platforms": [ "console", - "server", - "client" + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-transaction.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-email-column.md", "auth": { "Project": [], "Key": [] @@ -28771,74 +33422,112 @@ "security": [ { "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Key": [] } ], "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "type": "string", + "x-example": "<TABLE_ID>", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "ttl": { - "type": "integer", - "description": "Seconds before the transaction expires.", - "default": 300, - "x-example": 60, - "format": "int32" + "key": { + "type": "string", + "description": "Column Key.", + "default": null, + "x-example": null + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "default": null, + "x-example": false + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "default": null, + "x-example": "email@example.com", + "format": "email", + "x-nullable": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "default": false, + "x-example": false } - } + }, + "required": [ + "key", + "required" + ] } } ] } }, - "\/tablesdb\/transactions\/{transactionId}": { - "get": { - "summary": "Get transaction", - "operationId": "tablesDBGetTransaction", - "consumes": [], + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/email\/{key}": { + "patch": { + "summary": "Update email column", + "operationId": "tablesDBUpdateEmailColumn", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ "tablesDB" ], - "description": "Get a transaction by its unique ID.", + "description": "Update an email column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "Transaction", + "description": "ColumnEmail", "schema": { - "$ref": "#\/definitions\/transaction" + "$ref": "#\/definitions\/columnEmail" } } }, "deprecated": false, "x-appwrite": { - "method": "getTransaction", - "group": "transactions", - "weight": 402, + "method": "updateEmailColumn", + "group": "columns", + "weight": 340, "cookies": false, "type": "", - "demo": "tablesdb\/get-transaction.md", + "demo": "tablesdb\/update-email-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "documents.read", - "rows.read" + "tables.write", + "collections.write" ], "platforms": [ "console", - "server", - "client" + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-transaction.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-email-column.md", "auth": { "Project": [], "Key": [] @@ -28847,25 +33536,74 @@ "security": [ { "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "transactionId", - "description": "Transaction ID.", + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "type": "string", + "x-example": "<TABLE_ID>", + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", "required": true, "type": "string", - "x-example": "<TRANSACTION_ID>", "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "required": { + "type": "boolean", + "description": "Is column required?", + "default": null, + "x-example": false + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "default": null, + "x-example": "email@example.com", + "format": "email", + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "default": null, + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required", + "default" + ] + } } ] - }, - "patch": { - "summary": "Update transaction", - "operationId": "tablesDBUpdateTransaction", + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/enum": { + "post": { + "summary": "Create enum column", + "operationId": "tablesDBCreateEnumColumn", "consumes": [ "application\/json" ], @@ -28875,38 +33613,37 @@ "tags": [ "tablesDB" ], - "description": "Update a transaction, to either commit or roll back its operations.", + "description": "Create an enumeration column. The `elements` param acts as a white-list of accepted values for this column.", "responses": { - "200": { - "description": "Transaction", + "202": { + "description": "ColumnEnum", "schema": { - "$ref": "#\/definitions\/transaction" + "$ref": "#\/definitions\/columnEnum" } } }, "deprecated": false, "x-appwrite": { - "method": "updateTransaction", - "group": "transactions", - "weight": 403, + "method": "createEnumColumn", + "group": "columns", + "weight": 341, "cookies": false, "type": "", - "demo": "tablesdb\/update-transaction.md", + "demo": "tablesdb\/create-enum-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "documents.write", - "rows.write" + "tables.write", + "collections.write" ], "platforms": [ "console", - "server", - "client" + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-transaction.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-enum-column.md", "auth": { "Project": [], "Key": [] @@ -28915,18 +33652,24 @@ "security": [ { "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "transactionId", - "description": "Transaction ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<TRANSACTION_ID>", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "type": "string", + "x-example": "<TABLE_ID>", "in": "path" }, { @@ -28935,62 +33678,95 @@ "schema": { "type": "object", "properties": { - "commit": { + "key": { + "type": "string", + "description": "Column Key.", + "default": null, + "x-example": null + }, + "elements": { + "type": "array", + "description": "Array of enum values.", + "default": null, + "x-example": null, + "items": { + "type": "string" + } + }, + "required": { "type": "boolean", - "description": "Commit transaction?", - "default": false, + "description": "Is column required?", + "default": null, "x-example": false }, - "rollback": { + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "default": null, + "x-example": "<DEFAULT>", + "x-nullable": true + }, + "array": { "type": "boolean", - "description": "Rollback transaction?", + "description": "Is column an array?", "default": false, "x-example": false } - } + }, + "required": [ + "key", + "elements", + "required" + ] } } ] - }, - "delete": { - "summary": "Delete transaction", - "operationId": "tablesDBDeleteTransaction", + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/enum\/{key}": { + "patch": { + "summary": "Update enum column", + "operationId": "tablesDBUpdateEnumColumn", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ "tablesDB" ], - "description": "Delete a transaction by its unique ID.", + "description": "Update an enum column. Changing the `default` value will not update already existing rows.\n", "responses": { - "204": { - "description": "No content" + "200": { + "description": "ColumnEnum", + "schema": { + "$ref": "#\/definitions\/columnEnum" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteTransaction", - "group": "transactions", - "weight": 404, + "method": "updateEnumColumn", + "group": "columns", + "weight": 342, "cookies": false, "type": "", - "demo": "tablesdb\/delete-transaction.md", + "demo": "tablesdb\/update-enum-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "documents.write", - "rows.write" + "tables.write", + "collections.write" ], "platforms": [ "console", - "server", - "client" + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-transaction.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-enum-column.md", "auth": { "Project": [], "Key": [] @@ -28999,27 +33775,83 @@ "security": [ { "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "transactionId", - "description": "Transaction ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<TRANSACTION_ID>", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "type": "string", + "x-example": "<TABLE_ID>", "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "type": "string", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "elements": { + "type": "array", + "description": "Updated list of enum values.", + "default": null, + "x-example": null, + "items": { + "type": "string" + } + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "default": null, + "x-example": false + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "default": null, + "x-example": "<DEFAULT>", + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "default": null, + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "elements", + "required", + "default" + ] + } } ] } }, - "\/tablesdb\/transactions\/{transactionId}\/operations": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/float": { "post": { - "summary": "Create operations", - "operationId": "tablesDBCreateOperations", + "summary": "Create float column", + "operationId": "tablesDBCreateFloatColumn", "consumes": [ "application\/json" ], @@ -29029,38 +33861,37 @@ "tags": [ "tablesDB" ], - "description": "Create multiple operations in a single transaction.", + "description": "Create a float column. Optionally, minimum and maximum values can be provided.\n", "responses": { - "201": { - "description": "Transaction", + "202": { + "description": "ColumnFloat", "schema": { - "$ref": "#\/definitions\/transaction" + "$ref": "#\/definitions\/columnFloat" } } }, "deprecated": false, "x-appwrite": { - "method": "createOperations", - "group": "transactions", - "weight": 406, + "method": "createFloatColumn", + "group": "columns", + "weight": 343, "cookies": false, "type": "", - "demo": "tablesdb\/create-operations.md", + "demo": "tablesdb\/create-float-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "documents.write", - "rows.write" + "tables.write", + "collections.write" ], "platforms": [ "console", - "server", - "client" + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-operations.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-float-column.md", "auth": { "Project": [], "Key": [] @@ -29069,18 +33900,24 @@ "security": [ { "Project": [], - "Key": [], - "Session": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "transactionId", - "description": "Transaction ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<TRANSACTION_ID>", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "type": "string", + "x-example": "<TABLE_ID>", "in": "path" }, { @@ -29089,60 +33926,102 @@ "schema": { "type": "object", "properties": { - "operations": { - "type": "array", - "description": "Array of staged operations.", - "default": [], - "x-example": "[\n\t {\n\t \"action\": \"create\",\n\t \"databaseId\": \"<DATABASE_ID>\",\n\t \"tableId\": \"<TABLE_ID>\",\n\t \"rowId\": \"<ROW_ID>\",\n\t \"data\": {\n\t \"name\": \"Walter O'Brien\"\n\t }\n\t }\n\t]", - "items": { - "type": "object" - } + "key": { + "type": "string", + "description": "Column Key.", + "default": null, + "x-example": null + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "default": null, + "x-example": false + }, + "min": { + "type": "number", + "description": "Minimum value", + "default": null, + "x-example": null, + "format": "float", + "x-nullable": true + }, + "max": { + "type": "number", + "description": "Maximum value", + "default": null, + "x-example": null, + "format": "float", + "x-nullable": true + }, + "default": { + "type": "number", + "description": "Default value. Cannot be set when required.", + "default": null, + "x-example": null, + "format": "float", + "x-nullable": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "default": false, + "x-example": false } - } + }, + "required": [ + "key", + "required" + ] } } ] } }, - "\/tablesdb\/{databaseId}": { - "get": { - "summary": "Get database", - "operationId": "tablesDBGet", - "consumes": [], + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/float\/{key}": { + "patch": { + "summary": "Update float column", + "operationId": "tablesDBUpdateFloatColumn", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ "tablesDB" ], - "description": "Get a database by its unique ID. This endpoint response returns a JSON object with the database metadata.", + "description": "Update a float column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "Database", + "description": "ColumnFloat", "schema": { - "$ref": "#\/definitions\/database" + "$ref": "#\/definitions\/columnFloat" } } }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": "tablesdb", - "weight": 335, + "method": "updateFloatColumn", + "group": "columns", + "weight": 344, "cookies": false, "type": "", - "demo": "tablesdb\/get.md", + "demo": "tablesdb\/update-float-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.read", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-float-column.md", "auth": { "Project": [], "Key": [] @@ -29162,12 +34041,79 @@ "type": "string", "x-example": "<DATABASE_ID>", "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "type": "string", + "x-example": "<TABLE_ID>", + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "type": "string", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "required": { + "type": "boolean", + "description": "Is column required?", + "default": null, + "x-example": false + }, + "min": { + "type": "number", + "description": "Minimum value", + "default": null, + "x-example": null, + "format": "float", + "x-nullable": true + }, + "max": { + "type": "number", + "description": "Maximum value", + "default": null, + "x-example": null, + "format": "float", + "x-nullable": true + }, + "default": { + "type": "number", + "description": "Default value. Cannot be set when required.", + "default": null, + "x-example": null, + "format": "float", + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "default": null, + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required", + "default" + ] + } } ] - }, - "put": { - "summary": "Update database", - "operationId": "tablesDBUpdate", + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/integer": { + "post": { + "summary": "Create integer column", + "operationId": "tablesDBCreateIntegerColumn", "consumes": [ "application\/json" ], @@ -29177,34 +34123,37 @@ "tags": [ "tablesDB" ], - "description": "Update a database by its unique ID.", + "description": "Create an integer column. Optionally, minimum and maximum values can be provided.\n", "responses": { - "200": { - "description": "Database", + "202": { + "description": "ColumnInteger", "schema": { - "$ref": "#\/definitions\/database" + "$ref": "#\/definitions\/columnInteger" } } }, "deprecated": false, "x-appwrite": { - "method": "update", - "group": "tablesdb", - "weight": 336, + "method": "createIntegerColumn", + "group": "columns", + "weight": 345, "cookies": false, "type": "", - "demo": "tablesdb\/update.md", + "demo": "tablesdb\/create-integer-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-integer-column.md", "auth": { "Project": [], "Key": [] @@ -29225,64 +34174,116 @@ "x-example": "<DATABASE_ID>", "in": "path" }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "type": "string", + "x-example": "<TABLE_ID>", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "name": { + "key": { "type": "string", - "description": "Database name. Max length: 128 chars.", + "description": "Column Key.", "default": null, - "x-example": "<NAME>" + "x-example": null }, - "enabled": { + "required": { "type": "boolean", - "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.", - "default": true, + "description": "Is column required?", + "default": null, + "x-example": false + }, + "min": { + "type": "integer", + "description": "Minimum value", + "default": null, + "x-example": null, + "format": "int64", + "x-nullable": true + }, + "max": { + "type": "integer", + "description": "Maximum value", + "default": null, + "x-example": null, + "format": "int64", + "x-nullable": true + }, + "default": { + "type": "integer", + "description": "Default value. Cannot be set when column is required.", + "default": null, + "x-example": null, + "format": "int64", + "x-nullable": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "default": false, "x-example": false } - } + }, + "required": [ + "key", + "required" + ] } } ] - }, - "delete": { - "summary": "Delete database", - "operationId": "tablesDBDelete", + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/integer\/{key}": { + "patch": { + "summary": "Update integer column", + "operationId": "tablesDBUpdateIntegerColumn", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ "tablesDB" ], - "description": "Delete a database by its unique ID. Only API keys with with databases.write scope can delete a database.", + "description": "Update an integer column. Changing the `default` value will not update already existing rows.\n", "responses": { - "204": { - "description": "No content" + "200": { + "description": "ColumnInteger", + "schema": { + "$ref": "#\/definitions\/columnInteger" + } } }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": "tablesdb", - "weight": 337, + "method": "updateIntegerColumn", + "group": "columns", + "weight": 346, "cookies": false, "type": "", - "demo": "tablesdb\/delete.md", + "demo": "tablesdb\/update-integer-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "databases.write", + "scope": [ + "tables.write", + "collections.write" + ], "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-integer-column.md", "auth": { "Project": [], "Key": [] @@ -29302,44 +34303,111 @@ "type": "string", "x-example": "<DATABASE_ID>", "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "type": "string", + "x-example": "<TABLE_ID>", + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "type": "string", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "required": { + "type": "boolean", + "description": "Is column required?", + "default": null, + "x-example": false + }, + "min": { + "type": "integer", + "description": "Minimum value", + "default": null, + "x-example": null, + "format": "int64", + "x-nullable": true + }, + "max": { + "type": "integer", + "description": "Maximum value", + "default": null, + "x-example": null, + "format": "int64", + "x-nullable": true + }, + "default": { + "type": "integer", + "description": "Default value. Cannot be set when column is required.", + "default": null, + "x-example": null, + "format": "int64", + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "default": null, + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required", + "default" + ] + } } ] } }, - "\/tablesdb\/{databaseId}\/tables": { - "get": { - "summary": "List tables", - "operationId": "tablesDBListTables", - "consumes": [], + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/ip": { + "post": { + "summary": "Create IP address column", + "operationId": "tablesDBCreateIpColumn", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ "tablesDB" ], - "description": "Get a list of all tables that belong to the provided databaseId. You can use the search parameter to filter your results.", + "description": "Create IP address column.\n", "responses": { - "200": { - "description": "Tables List", + "202": { + "description": "ColumnIP", "schema": { - "$ref": "#\/definitions\/tableList" + "$ref": "#\/definitions\/columnIp" } } }, "deprecated": false, "x-appwrite": { - "method": "listTables", - "group": "tables", - "weight": 345, + "method": "createIpColumn", + "group": "columns", + "weight": 347, "cookies": false, "type": "", - "demo": "tablesdb\/list-tables.md", + "demo": "tablesdb\/create-ip-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.read", - "collections.read" + "tables.write", + "collections.write" ], "platforms": [ "console", @@ -29347,7 +34415,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-tables.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-ip-column.md", "auth": { "Project": [], "Key": [] @@ -29369,40 +34437,58 @@ "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 columns: name, enabled, rowSecurity", - "required": false, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, + "name": "tableId", + "description": "Table ID.", + "required": true, "type": "string", - "x-example": "<SEARCH>", - "default": "", - "in": "query" + "x-example": "<TABLE_ID>", + "in": "path" }, { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "default": null, + "x-example": null + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "default": null, + "x-example": false + }, + "default": { + "type": "string", + "description": "Default value. Cannot be set when column is required.", + "default": null, + "x-example": null, + "x-nullable": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "default": false, + "x-example": false + } + }, + "required": [ + "key", + "required" + ] + } } ] - }, - "post": { - "summary": "Create table", - "operationId": "tablesDBCreateTable", + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/ip\/{key}": { + "patch": { + "summary": "Update IP address column", + "operationId": "tablesDBUpdateIpColumn", "consumes": [ "application\/json" ], @@ -29412,23 +34498,23 @@ "tags": [ "tablesDB" ], - "description": "Create a new Table. Before using this route, you should create a new database resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "description": "Update an ip column. Changing the `default` value will not update already existing rows.\n", "responses": { - "201": { - "description": "Table", + "200": { + "description": "ColumnIP", "schema": { - "$ref": "#\/definitions\/table" + "$ref": "#\/definitions\/columnIp" } } }, "deprecated": false, "x-appwrite": { - "method": "createTable", - "group": "tables", - "weight": 341, + "method": "updateIpColumn", + "group": "columns", + "weight": 348, "cookies": false, "type": "", - "demo": "tablesdb\/create-table.md", + "demo": "tablesdb\/update-ip-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -29442,7 +34528,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-table.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-ip-column.md", "auth": { "Project": [], "Key": [] @@ -29463,108 +34549,93 @@ "x-example": "<DATABASE_ID>", "in": "path" }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "type": "string", + "x-example": "<TABLE_ID>", + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "type": "string", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "tableId": { - "type": "string", - "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.", - "default": null, - "x-example": "<TABLE_ID>" - }, - "name": { - "type": "string", - "description": "Table name. Max length: 128 chars.", - "default": null, - "x-example": "<NAME>" - }, - "permissions": { - "type": "array", - "description": "An array of permissions strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "default": null, - "x-example": "[\"read(\"any\")\"]", - "x-nullable": true, - "items": { - "type": "string" - } - }, - "rowSecurity": { - "type": "boolean", - "description": "Enables configuring permissions for individual rows. A user needs one of row or table level permissions to access a row. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "default": false, - "x-example": false - }, - "enabled": { + "required": { "type": "boolean", - "description": "Is table enabled? When set to 'disabled', users cannot access the table but Server SDKs with and API key can still read and write to the table. No data is lost when this is toggled.", - "default": true, + "description": "Is column required?", + "default": null, "x-example": false }, - "columns": { - "type": "array", - "description": "Array of column definitions to create. Each column should contain: key (string), type (string: string, integer, float, boolean, datetime, relationship), size (integer, required for string type), required (boolean, optional), default (mixed, optional), array (boolean, optional), and type-specific options.", - "default": [], + "default": { + "type": "string", + "description": "Default value. Cannot be set when column is required.", + "default": null, "x-example": null, - "items": { - "type": "object" - } + "x-nullable": true }, - "indexes": { - "type": "array", - "description": "Array of index definitions to create. Each index should contain: key (string), type (string: key, fulltext, unique, spatial), attributes (array of column keys), orders (array of ASC\/DESC, optional), and lengths (array of integers, optional).", - "default": [], + "newKey": { + "type": "string", + "description": "New Column Key.", + "default": null, "x-example": null, - "items": { - "type": "object" - } + "x-nullable": true } }, "required": [ - "tableId", - "name" + "required", + "default" ] } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}": { - "get": { - "summary": "Get table", - "operationId": "tablesDBGetTable", - "consumes": [], + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/line": { + "post": { + "summary": "Create line column", + "operationId": "tablesDBCreateLineColumn", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ "tablesDB" ], - "description": "Get a table by its unique ID. This endpoint response returns a JSON object with the table metadata.", + "description": "Create a geometric line column.", "responses": { - "200": { - "description": "Table", + "202": { + "description": "ColumnLine", "schema": { - "$ref": "#\/definitions\/table" + "$ref": "#\/definitions\/columnLine" } } }, "deprecated": false, "x-appwrite": { - "method": "getTable", - "group": "tables", - "weight": 342, + "method": "createLineColumn", + "group": "columns", + "weight": 349, "cookies": false, "type": "", - "demo": "tablesdb\/get-table.md", + "demo": "tablesdb\/create-line-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.read", - "collections.read" + "tables.write", + "collections.write" ], "platforms": [ "console", @@ -29572,7 +34643,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-table.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-line-column.md", "auth": { "Project": [], "Key": [] @@ -29595,17 +34666,51 @@ }, { "name": "tableId", - "description": "Table ID.", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "type": "string", "x-example": "<TABLE_ID>", "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "default": null, + "x-example": null + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "default": null, + "x-example": false + }, + "default": { + "type": "array", + "description": "Default value for column 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 column is required.", + "default": null, + "x-example": "[[1, 2], [3, 4], [5, 6]]", + "x-nullable": true + } + }, + "required": [ + "key", + "required" + ] + } } ] - }, - "put": { - "summary": "Update table", - "operationId": "tablesDBUpdateTable", + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/line\/{key}": { + "patch": { + "summary": "Update line column", + "operationId": "tablesDBUpdateLineColumn", "consumes": [ "application\/json" ], @@ -29615,23 +34720,23 @@ "tags": [ "tablesDB" ], - "description": "Update a table by its unique ID.", + "description": "Update a line column. Changing the `default` value will not update already existing rows.", "responses": { "200": { - "description": "Table", + "description": "ColumnLine", "schema": { - "$ref": "#\/definitions\/table" + "$ref": "#\/definitions\/columnLine" } } }, "deprecated": false, "x-appwrite": { - "method": "updateTable", - "group": "tables", - "weight": 343, + "method": "updateLineColumn", + "group": "columns", + "weight": 350, "cookies": false, "type": "", - "demo": "tablesdb\/update-table.md", + "demo": "tablesdb\/update-line-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -29645,7 +34750,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-table.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-line-column.md", "auth": { "Project": [], "Key": [] @@ -29668,75 +34773,84 @@ }, { "name": "tableId", - "description": "Table ID.", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "type": "string", "x-example": "<TABLE_ID>", "in": "path" }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "type": "string", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "Table name. Max length: 128 chars.", + "required": { + "type": "boolean", + "description": "Is column required?", "default": null, - "x-example": "<NAME>" + "x-example": false }, - "permissions": { + "default": { "type": "array", - "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "description": "Default value for column 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 column is required.", "default": null, - "x-example": "[\"read(\"any\")\"]", - "x-nullable": true, - "items": { - "type": "string" - } - }, - "rowSecurity": { - "type": "boolean", - "description": "Enables configuring permissions for individual rows. A user needs one of row or table-level permissions to access a row. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "default": false, - "x-example": false + "x-example": "[[1, 2], [3, 4], [5, 6]]", + "x-nullable": true }, - "enabled": { - "type": "boolean", - "description": "Is table enabled? When set to 'disabled', users cannot access the table but Server SDKs with and API key can still read and write to the table. No data is lost when this is toggled.", - "default": true, - "x-example": false + "newKey": { + "type": "string", + "description": "New Column Key.", + "default": null, + "x-example": null, + "x-nullable": true } - } + }, + "required": [ + "required" + ] } } ] - }, - "delete": { - "summary": "Delete table", - "operationId": "tablesDBDeleteTable", + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/longtext": { + "post": { + "summary": "Create longtext column", + "operationId": "tablesDBCreateLongtextColumn", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ "tablesDB" ], - "description": "Delete a table by its unique ID. Only users with write permissions have access to delete this resource.", + "description": "Create a longtext column.\n", "responses": { - "204": { - "description": "No content" + "202": { + "description": "ColumnLongtext", + "schema": { + "$ref": "#\/definitions\/columnLongtext" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteTable", - "group": "tables", - "weight": 344, + "method": "createLongtextColumn", + "group": "columns", + "weight": 367, "cookies": false, "type": "", - "demo": "tablesdb\/delete-table.md", + "demo": "tablesdb\/create-longtext-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -29750,7 +34864,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-table.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-longtext-column.md", "auth": { "Project": [], "Key": [] @@ -29773,49 +34887,95 @@ }, { "name": "tableId", - "description": "Table ID.", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "type": "string", "x-example": "<TABLE_ID>", "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "default": null, + "x-example": null + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "default": null, + "x-example": false + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "default": null, + "x-example": "<DEFAULT>", + "x-nullable": true + }, + "array": { + "type": "boolean", + "description": "Is column an array?", + "default": false, + "x-example": false + }, + "encrypt": { + "type": "boolean", + "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", + "default": false, + "x-example": false + } + }, + "required": [ + "key", + "required" + ] + } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns": { - "get": { - "summary": "List columns", - "operationId": "tablesDBListColumns", - "consumes": [], + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/longtext\/{key}": { + "patch": { + "summary": "Update longtext column", + "operationId": "tablesDBUpdateLongtextColumn", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ "tablesDB" ], - "description": "List columns in the table.", + "description": "Update a longtext column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "Columns List", + "description": "ColumnLongtext", "schema": { - "$ref": "#\/definitions\/columnList" + "$ref": "#\/definitions\/columnLongtext" } } }, "deprecated": false, "x-appwrite": { - "method": "listColumns", + "method": "updateLongtextColumn", "group": "columns", - "weight": 350, + "weight": 368, "cookies": false, "type": "", - "demo": "tablesdb\/list-columns.md", + "demo": "tablesdb\/update-longtext-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.read", - "collections.read" + "tables.write", + "collections.write" ], "platforms": [ "console", @@ -29823,7 +34983,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-columns.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-longtext-column.md", "auth": { "Project": [], "Key": [] @@ -29846,40 +35006,59 @@ }, { "name": "tableId", - "description": "Table ID.", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "type": "string", "x-example": "<TABLE_ID>", "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 columns: key, type, size, required, array, status, error", - "required": false, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" + "name": "key", + "description": "Column Key.", + "required": true, + "type": "string", + "in": "path" }, { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "required": { + "type": "boolean", + "description": "Is column required?", + "default": null, + "x-example": false + }, + "default": { + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", + "default": null, + "x-example": "<DEFAULT>", + "x-nullable": true + }, + "newKey": { + "type": "string", + "description": "New Column Key.", + "default": null, + "x-example": null, + "x-nullable": true + } + }, + "required": [ + "required", + "default" + ] + } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/boolean": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/mediumtext": { "post": { - "summary": "Create boolean column", - "operationId": "tablesDBCreateBooleanColumn", + "summary": "Create mediumtext column", + "operationId": "tablesDBCreateMediumtextColumn", "consumes": [ "application\/json" ], @@ -29889,23 +35068,23 @@ "tags": [ "tablesDB" ], - "description": "Create a boolean column.\n", + "description": "Create a mediumtext column.\n", "responses": { "202": { - "description": "ColumnBoolean", + "description": "ColumnMediumtext", "schema": { - "$ref": "#\/definitions\/columnBoolean" + "$ref": "#\/definitions\/columnMediumtext" } } }, "deprecated": false, "x-appwrite": { - "method": "createBooleanColumn", + "method": "createMediumtextColumn", "group": "columns", - "weight": 351, + "weight": 365, "cookies": false, "type": "", - "demo": "tablesdb\/create-boolean-column.md", + "demo": "tablesdb\/create-mediumtext-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -29919,7 +35098,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-boolean-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-mediumtext-column.md", "auth": { "Project": [], "Key": [] @@ -29967,10 +35146,10 @@ "x-example": false }, "default": { - "type": "boolean", + "type": "string", "description": "Default value for column when not provided. Cannot be set when column is required.", "default": null, - "x-example": false, + "x-example": "<DEFAULT>", "x-nullable": true }, "array": { @@ -29978,6 +35157,12 @@ "description": "Is column an array?", "default": false, "x-example": false + }, + "encrypt": { + "type": "boolean", + "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", + "default": false, + "x-example": false } }, "required": [ @@ -29989,10 +35174,10 @@ ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/boolean\/{key}": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/mediumtext\/{key}": { "patch": { - "summary": "Update boolean column", - "operationId": "tablesDBUpdateBooleanColumn", + "summary": "Update mediumtext column", + "operationId": "tablesDBUpdateMediumtextColumn", "consumes": [ "application\/json" ], @@ -30002,23 +35187,23 @@ "tags": [ "tablesDB" ], - "description": "Update a boolean column. Changing the `default` value will not update already existing rows.", + "description": "Update a mediumtext column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "ColumnBoolean", + "description": "ColumnMediumtext", "schema": { - "$ref": "#\/definitions\/columnBoolean" + "$ref": "#\/definitions\/columnMediumtext" } } }, "deprecated": false, "x-appwrite": { - "method": "updateBooleanColumn", + "method": "updateMediumtextColumn", "group": "columns", - "weight": 352, + "weight": 366, "cookies": false, "type": "", - "demo": "tablesdb\/update-boolean-column.md", + "demo": "tablesdb\/update-mediumtext-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -30032,7 +35217,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-boolean-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-mediumtext-column.md", "auth": { "Project": [], "Key": [] @@ -30081,10 +35266,10 @@ "x-example": false }, "default": { - "type": "boolean", + "type": "string", "description": "Default value for column when not provided. Cannot be set when column is required.", "default": null, - "x-example": false, + "x-example": "<DEFAULT>", "x-nullable": true }, "newKey": { @@ -30104,10 +35289,10 @@ ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/datetime": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/point": { "post": { - "summary": "Create datetime column", - "operationId": "tablesDBCreateDatetimeColumn", + "summary": "Create point column", + "operationId": "tablesDBCreatePointColumn", "consumes": [ "application\/json" ], @@ -30117,23 +35302,23 @@ "tags": [ "tablesDB" ], - "description": "Create a date time column according to the ISO 8601 standard.", + "description": "Create a geometric point column.", "responses": { "202": { - "description": "ColumnDatetime", + "description": "ColumnPoint", "schema": { - "$ref": "#\/definitions\/columnDatetime" + "$ref": "#\/definitions\/columnPoint" } } }, "deprecated": false, "x-appwrite": { - "method": "createDatetimeColumn", + "method": "createPointColumn", "group": "columns", - "weight": 353, + "weight": 351, "cookies": false, "type": "", - "demo": "tablesdb\/create-datetime-column.md", + "demo": "tablesdb\/create-point-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -30147,7 +35332,114 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-datetime-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-point-column.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "required": true, + "type": "string", + "x-example": "<TABLE_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "default": null, + "x-example": null + }, + "required": { + "type": "boolean", + "description": "Is column required?", + "default": null, + "x-example": false + }, + "default": { + "type": "array", + "description": "Default value for column when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when column is required.", + "default": null, + "x-example": "[1, 2]", + "x-nullable": true + } + }, + "required": [ + "key", + "required" + ] + } + } + ] + } + }, + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/point\/{key}": { + "patch": { + "summary": "Update point column", + "operationId": "tablesDBUpdatePointColumn", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "tablesDB" + ], + "description": "Update a point column. Changing the `default` value will not update already existing rows.", + "responses": { + "200": { + "description": "ColumnPoint", + "schema": { + "$ref": "#\/definitions\/columnPoint" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updatePointColumn", + "group": "columns", + "weight": 352, + "cookies": false, + "type": "", + "demo": "tablesdb\/update-point-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.write", + "collections.write" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-point-column.md", "auth": { "Project": [], "Key": [] @@ -30170,24 +35462,25 @@ }, { "name": "tableId", - "description": "Table ID.", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "type": "string", "x-example": "<TABLE_ID>", "in": "path" }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "type": "string", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "default": null, - "x-example": null - }, "required": { "type": "boolean", "description": "Is column required?", @@ -30195,21 +35488,21 @@ "x-example": false }, "default": { + "type": "array", + "description": "Default value for column when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when column is required.", + "default": null, + "x-example": "[1, 2]", + "x-nullable": true + }, + "newKey": { "type": "string", - "description": "Default value for the column in [ISO 8601](https:\/\/www.iso.org\/iso-8601-date-and-time-format.html) format. Cannot be set when column is required.", + "description": "New Column Key.", "default": null, "x-example": null, "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "default": false, - "x-example": false } }, "required": [ - "key", "required" ] } @@ -30217,10 +35510,10 @@ ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/datetime\/{key}": { - "patch": { - "summary": "Update dateTime column", - "operationId": "tablesDBUpdateDatetimeColumn", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/polygon": { + "post": { + "summary": "Create polygon column", + "operationId": "tablesDBCreatePolygonColumn", "consumes": [ "application\/json" ], @@ -30230,23 +35523,23 @@ "tags": [ "tablesDB" ], - "description": "Update a date time column. Changing the `default` value will not update already existing rows.", + "description": "Create a geometric polygon column.", "responses": { - "200": { - "description": "ColumnDatetime", + "202": { + "description": "ColumnPolygon", "schema": { - "$ref": "#\/definitions\/columnDatetime" + "$ref": "#\/definitions\/columnPolygon" } } }, "deprecated": false, "x-appwrite": { - "method": "updateDatetimeColumn", + "method": "createPolygonColumn", "group": "columns", - "weight": 354, + "weight": 353, "cookies": false, "type": "", - "demo": "tablesdb\/update-datetime-column.md", + "demo": "tablesdb\/create-polygon-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -30260,7 +35553,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-datetime-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-polygon-column.md", "auth": { "Project": [], "Key": [] @@ -30283,25 +35576,24 @@ }, { "name": "tableId", - "description": "Table ID.", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "type": "string", "x-example": "<TABLE_ID>", "in": "path" }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "type": "string", - "in": "path" - }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { + "key": { + "type": "string", + "description": "Column Key.", + "default": null, + "x-example": null + }, "required": { "type": "boolean", "description": "Is column required?", @@ -30309,33 +35601,26 @@ "x-example": false }, "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "default": null, - "x-example": null, - "x-nullable": true - }, - "newKey": { - "type": "string", - "description": "New Column Key.", + "type": "array", + "description": "Default value for column 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 column is required.", "default": null, - "x-example": null, + "x-example": "[[[1, 2], [3, 4], [5, 6], [1, 2]]]", "x-nullable": true } }, "required": [ - "required", - "default" + "key", + "required" ] } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/email": { - "post": { - "summary": "Create email column", - "operationId": "tablesDBCreateEmailColumn", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/polygon\/{key}": { + "patch": { + "summary": "Update polygon column", + "operationId": "tablesDBUpdatePolygonColumn", "consumes": [ "application\/json" ], @@ -30345,23 +35630,23 @@ "tags": [ "tablesDB" ], - "description": "Create an email column.\n", + "description": "Update a polygon column. Changing the `default` value will not update already existing rows.", "responses": { - "202": { - "description": "ColumnEmail", + "200": { + "description": "ColumnPolygon", "schema": { - "$ref": "#\/definitions\/columnEmail" + "$ref": "#\/definitions\/columnPolygon" } } }, "deprecated": false, "x-appwrite": { - "method": "createEmailColumn", + "method": "updatePolygonColumn", "group": "columns", - "weight": 355, + "weight": 354, "cookies": false, "type": "", - "demo": "tablesdb\/create-email-column.md", + "demo": "tablesdb\/update-polygon-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -30375,7 +35660,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-email-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-polygon-column.md", "auth": { "Project": [], "Key": [] @@ -30398,24 +35683,25 @@ }, { "name": "tableId", - "description": "Table ID.", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "type": "string", "x-example": "<TABLE_ID>", "in": "path" }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "type": "string", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "default": null, - "x-example": null - }, "required": { "type": "boolean", "description": "Is column required?", @@ -30423,22 +35709,21 @@ "x-example": false }, "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", + "type": "array", + "description": "Default value for column 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 column is required.", "default": null, - "x-example": "email@example.com", - "format": "email", + "x-example": "[[[1, 2], [3, 4], [5, 6], [1, 2]]]", "x-nullable": true }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "default": false, - "x-example": false + "newKey": { + "type": "string", + "description": "New Column Key.", + "default": null, + "x-example": null, + "x-nullable": true } }, "required": [ - "key", "required" ] } @@ -30446,10 +35731,10 @@ ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/email\/{key}": { - "patch": { - "summary": "Update email column", - "operationId": "tablesDBUpdateEmailColumn", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/relationship": { + "post": { + "summary": "Create relationship column", + "operationId": "tablesDBCreateRelationshipColumn", "consumes": [ "application\/json" ], @@ -30459,23 +35744,23 @@ "tags": [ "tablesDB" ], - "description": "Update an email column. Changing the `default` value will not update already existing rows.\n", + "description": "Create relationship column. [Learn more about relationship columns](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-columns).\n", "responses": { - "200": { - "description": "ColumnEmail", + "202": { + "description": "ColumnRelationship", "schema": { - "$ref": "#\/definitions\/columnEmail" + "$ref": "#\/definitions\/columnRelationship" } } }, "deprecated": false, "x-appwrite": { - "method": "updateEmailColumn", + "method": "createRelationshipColumn", "group": "columns", - "weight": 356, + "weight": 355, "cookies": false, "type": "", - "demo": "tablesdb\/update-email-column.md", + "demo": "tablesdb\/create-relationship-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -30489,7 +35774,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-email-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-relationship-column.md", "auth": { "Project": [], "Key": [] @@ -30518,54 +35803,79 @@ "x-example": "<TABLE_ID>", "in": "path" }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "type": "string", - "in": "path" - }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "required": { - "type": "boolean", - "description": "Is column required?", + "relatedTableId": { + "type": "string", + "description": "Related Table ID.", "default": null, + "x-example": "<RELATED_TABLE_ID>" + }, + "type": { + "type": "string", + "description": "Relation type", + "default": null, + "x-example": "oneToOne", + "enum": [ + "oneToOne", + "manyToOne", + "manyToMany", + "oneToMany" + ], + "x-enum-name": "RelationshipType", + "x-enum-keys": [] + }, + "twoWay": { + "type": "boolean", + "description": "Is Two Way?", + "default": false, "x-example": false }, - "default": { + "key": { "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", + "description": "Column Key.", "default": null, - "x-example": "email@example.com", - "format": "email", + "x-example": null, "x-nullable": true }, - "newKey": { + "twoWayKey": { "type": "string", - "description": "New Column Key.", + "description": "Two Way Column Key.", "default": null, "x-example": null, "x-nullable": true + }, + "onDelete": { + "type": "string", + "description": "Constraints option", + "default": "restrict", + "x-example": "cascade", + "enum": [ + "cascade", + "restrict", + "setNull" + ], + "x-enum-name": "RelationMutate", + "x-enum-keys": [] } }, "required": [ - "required", - "default" + "relatedTableId", + "type" ] } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/enum": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/string": { "post": { - "summary": "Create enum column", - "operationId": "tablesDBCreateEnumColumn", + "summary": "Create string column", + "operationId": "tablesDBCreateStringColumn", "consumes": [ "application\/json" ], @@ -30575,23 +35885,23 @@ "tags": [ "tablesDB" ], - "description": "Create an enumeration column. The `elements` param acts as a white-list of accepted values for this column.", + "description": "Create a string column.\n", "responses": { "202": { - "description": "ColumnEnum", + "description": "ColumnString", "schema": { - "$ref": "#\/definitions\/columnEnum" + "$ref": "#\/definitions\/columnString" } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "createEnumColumn", + "method": "createStringColumn", "group": "columns", "weight": 357, "cookies": false, "type": "", - "demo": "tablesdb\/create-enum-column.md", + "demo": "tablesdb\/create-string-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -30605,7 +35915,11 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-enum-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-string-column.md", + "deprecated": { + "since": "1.9.0", + "replaceWith": "tablesDB.createTextColumn" + }, "auth": { "Project": [], "Key": [] @@ -30628,7 +35942,7 @@ }, { "name": "tableId", - "description": "Table ID.", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "type": "string", "x-example": "<TABLE_ID>", @@ -30646,14 +35960,12 @@ "default": null, "x-example": null }, - "elements": { - "type": "array", - "description": "Array of enum values.", + "size": { + "type": "integer", + "description": "Column size for text columns, in number of characters.", "default": null, - "x-example": null, - "items": { - "type": "string" - } + "x-example": 1, + "format": "int32" }, "required": { "type": "boolean", @@ -30673,11 +35985,17 @@ "description": "Is column an array?", "default": false, "x-example": false + }, + "encrypt": { + "type": "boolean", + "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", + "default": false, + "x-example": false } }, "required": [ "key", - "elements", + "size", "required" ] } @@ -30685,10 +36003,10 @@ ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/enum\/{key}": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/string\/{key}": { "patch": { - "summary": "Update enum column", - "operationId": "tablesDBUpdateEnumColumn", + "summary": "Update string column", + "operationId": "tablesDBUpdateStringColumn", "consumes": [ "application\/json" ], @@ -30698,23 +36016,23 @@ "tags": [ "tablesDB" ], - "description": "Update an enum column. Changing the `default` value will not update already existing rows.\n", + "description": "Update a string column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "ColumnEnum", + "description": "ColumnString", "schema": { - "$ref": "#\/definitions\/columnEnum" + "$ref": "#\/definitions\/columnString" } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "updateEnumColumn", + "method": "updateStringColumn", "group": "columns", "weight": 358, "cookies": false, "type": "", - "demo": "tablesdb\/update-enum-column.md", + "demo": "tablesdb\/update-string-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -30728,7 +36046,11 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-enum-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-string-column.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "tablesDB.updateTextColumn" + }, "auth": { "Project": [], "Key": [] @@ -30751,7 +36073,7 @@ }, { "name": "tableId", - "description": "Table ID.", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "type": "string", "x-example": "<TABLE_ID>", @@ -30770,15 +36092,6 @@ "schema": { "type": "object", "properties": { - "elements": { - "type": "array", - "description": "Updated list of enum values.", - "default": null, - "x-example": null, - "items": { - "type": "string" - } - }, "required": { "type": "boolean", "description": "Is column required?", @@ -30792,6 +36105,14 @@ "x-example": "<DEFAULT>", "x-nullable": true }, + "size": { + "type": "integer", + "description": "Maximum size of the string column.", + "default": null, + "x-example": 1, + "format": "int32", + "x-nullable": true + }, "newKey": { "type": "string", "description": "New Column Key.", @@ -30801,7 +36122,6 @@ } }, "required": [ - "elements", "required", "default" ] @@ -30810,10 +36130,10 @@ ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/float": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/text": { "post": { - "summary": "Create float column", - "operationId": "tablesDBCreateFloatColumn", + "summary": "Create text column", + "operationId": "tablesDBCreateTextColumn", "consumes": [ "application\/json" ], @@ -30823,23 +36143,23 @@ "tags": [ "tablesDB" ], - "description": "Create a float column. Optionally, minimum and maximum values can be provided.\n", + "description": "Create a text column.\n", "responses": { "202": { - "description": "ColumnFloat", + "description": "ColumnText", "schema": { - "$ref": "#\/definitions\/columnFloat" + "$ref": "#\/definitions\/columnText" } } }, "deprecated": false, "x-appwrite": { - "method": "createFloatColumn", + "method": "createTextColumn", "group": "columns", - "weight": 359, + "weight": 363, "cookies": false, "type": "", - "demo": "tablesdb\/create-float-column.md", + "demo": "tablesdb\/create-text-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -30853,7 +36173,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-float-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-text-column.md", "auth": { "Project": [], "Key": [] @@ -30876,7 +36196,7 @@ }, { "name": "tableId", - "description": "Table ID.", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "type": "string", "x-example": "<TABLE_ID>", @@ -30900,28 +36220,11 @@ "default": null, "x-example": false }, - "min": { - "type": "number", - "description": "Minimum value", - "default": null, - "x-example": null, - "format": "float", - "x-nullable": true - }, - "max": { - "type": "number", - "description": "Maximum value", - "default": null, - "x-example": null, - "format": "float", - "x-nullable": true - }, "default": { - "type": "number", - "description": "Default value. Cannot be set when required.", + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", "default": null, - "x-example": null, - "format": "float", + "x-example": "<DEFAULT>", "x-nullable": true }, "array": { @@ -30929,6 +36232,12 @@ "description": "Is column an array?", "default": false, "x-example": false + }, + "encrypt": { + "type": "boolean", + "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", + "default": false, + "x-example": false } }, "required": [ @@ -30940,10 +36249,10 @@ ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/float\/{key}": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/text\/{key}": { "patch": { - "summary": "Update float column", - "operationId": "tablesDBUpdateFloatColumn", + "summary": "Update text column", + "operationId": "tablesDBUpdateTextColumn", "consumes": [ "application\/json" ], @@ -30953,23 +36262,23 @@ "tags": [ "tablesDB" ], - "description": "Update a float column. Changing the `default` value will not update already existing rows.\n", + "description": "Update a text column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "ColumnFloat", + "description": "ColumnText", "schema": { - "$ref": "#\/definitions\/columnFloat" + "$ref": "#\/definitions\/columnText" } } }, "deprecated": false, "x-appwrite": { - "method": "updateFloatColumn", + "method": "updateTextColumn", "group": "columns", - "weight": 360, + "weight": 364, "cookies": false, "type": "", - "demo": "tablesdb\/update-float-column.md", + "demo": "tablesdb\/update-text-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -30983,7 +36292,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-float-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-text-column.md", "auth": { "Project": [], "Key": [] @@ -31006,7 +36315,7 @@ }, { "name": "tableId", - "description": "Table ID.", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "type": "string", "x-example": "<TABLE_ID>", @@ -31031,28 +36340,11 @@ "default": null, "x-example": false }, - "min": { - "type": "number", - "description": "Minimum value", - "default": null, - "x-example": null, - "format": "float", - "x-nullable": true - }, - "max": { - "type": "number", - "description": "Maximum value", - "default": null, - "x-example": null, - "format": "float", - "x-nullable": true - }, "default": { - "type": "number", - "description": "Default value. Cannot be set when required.", + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", "default": null, - "x-example": null, - "format": "float", + "x-example": "<DEFAULT>", "x-nullable": true }, "newKey": { @@ -31072,10 +36364,10 @@ ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/integer": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/url": { "post": { - "summary": "Create integer column", - "operationId": "tablesDBCreateIntegerColumn", + "summary": "Create URL column", + "operationId": "tablesDBCreateUrlColumn", "consumes": [ "application\/json" ], @@ -31085,23 +36377,23 @@ "tags": [ "tablesDB" ], - "description": "Create an integer column. Optionally, minimum and maximum values can be provided.\n", + "description": "Create a URL column.\n", "responses": { "202": { - "description": "ColumnInteger", + "description": "ColumnURL", "schema": { - "$ref": "#\/definitions\/columnInteger" + "$ref": "#\/definitions\/columnUrl" } } }, "deprecated": false, "x-appwrite": { - "method": "createIntegerColumn", + "method": "createUrlColumn", "group": "columns", - "weight": 361, + "weight": 359, "cookies": false, "type": "", - "demo": "tablesdb\/create-integer-column.md", + "demo": "tablesdb\/create-url-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -31115,7 +36407,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-integer-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-url-column.md", "auth": { "Project": [], "Key": [] @@ -31162,28 +36454,12 @@ "default": null, "x-example": false }, - "min": { - "type": "integer", - "description": "Minimum value", - "default": null, - "x-example": null, - "format": "int64", - "x-nullable": true - }, - "max": { - "type": "integer", - "description": "Maximum value", - "default": null, - "x-example": null, - "format": "int64", - "x-nullable": true - }, "default": { - "type": "integer", - "description": "Default value. Cannot be set when column is required.", + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", "default": null, - "x-example": null, - "format": "int64", + "x-example": "https:\/\/example.com", + "format": "url", "x-nullable": true }, "array": { @@ -31202,10 +36478,10 @@ ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/integer\/{key}": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/url\/{key}": { "patch": { - "summary": "Update integer column", - "operationId": "tablesDBUpdateIntegerColumn", + "summary": "Update URL column", + "operationId": "tablesDBUpdateUrlColumn", "consumes": [ "application\/json" ], @@ -31215,23 +36491,23 @@ "tags": [ "tablesDB" ], - "description": "Update an integer column. Changing the `default` value will not update already existing rows.\n", + "description": "Update an url column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "ColumnInteger", + "description": "ColumnURL", "schema": { - "$ref": "#\/definitions\/columnInteger" + "$ref": "#\/definitions\/columnUrl" } } }, "deprecated": false, "x-appwrite": { - "method": "updateIntegerColumn", + "method": "updateUrlColumn", "group": "columns", - "weight": 362, + "weight": 360, "cookies": false, "type": "", - "demo": "tablesdb\/update-integer-column.md", + "demo": "tablesdb\/update-url-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -31245,7 +36521,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-integer-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-url-column.md", "auth": { "Project": [], "Key": [] @@ -31293,28 +36569,12 @@ "default": null, "x-example": false }, - "min": { - "type": "integer", - "description": "Minimum value", - "default": null, - "x-example": null, - "format": "int64", - "x-nullable": true - }, - "max": { - "type": "integer", - "description": "Maximum value", - "default": null, - "x-example": null, - "format": "int64", - "x-nullable": true - }, "default": { - "type": "integer", - "description": "Default value. Cannot be set when column is required.", + "type": "string", + "description": "Default value for column when not provided. Cannot be set when column is required.", "default": null, - "x-example": null, - "format": "int64", + "x-example": "https:\/\/example.com", + "format": "url", "x-nullable": true }, "newKey": { @@ -31334,10 +36594,10 @@ ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/ip": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/varchar": { "post": { - "summary": "Create IP address column", - "operationId": "tablesDBCreateIpColumn", + "summary": "Create varchar column", + "operationId": "tablesDBCreateVarcharColumn", "consumes": [ "application\/json" ], @@ -31347,23 +36607,23 @@ "tags": [ "tablesDB" ], - "description": "Create IP address column.\n", + "description": "Create a varchar column.\n", "responses": { "202": { - "description": "ColumnIP", + "description": "ColumnVarchar", "schema": { - "$ref": "#\/definitions\/columnIp" + "$ref": "#\/definitions\/columnVarchar" } } }, "deprecated": false, "x-appwrite": { - "method": "createIpColumn", + "method": "createVarcharColumn", "group": "columns", - "weight": 363, + "weight": 361, "cookies": false, "type": "", - "demo": "tablesdb\/create-ip-column.md", + "demo": "tablesdb\/create-varchar-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -31377,7 +36637,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-ip-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-varchar-column.md", "auth": { "Project": [], "Key": [] @@ -31400,7 +36660,7 @@ }, { "name": "tableId", - "description": "Table ID.", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "type": "string", "x-example": "<TABLE_ID>", @@ -31418,6 +36678,13 @@ "default": null, "x-example": null }, + "size": { + "type": "integer", + "description": "Column size for varchar columns, in number of characters. Maximum size is 16381.", + "default": null, + "x-example": 1, + "format": "int32" + }, "required": { "type": "boolean", "description": "Is column required?", @@ -31426,9 +36693,9 @@ }, "default": { "type": "string", - "description": "Default value. Cannot be set when column is required.", + "description": "Default value for column when not provided. Cannot be set when column is required.", "default": null, - "x-example": null, + "x-example": "<DEFAULT>", "x-nullable": true }, "array": { @@ -31436,10 +36703,17 @@ "description": "Is column an array?", "default": false, "x-example": false + }, + "encrypt": { + "type": "boolean", + "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", + "default": false, + "x-example": false } }, "required": [ "key", + "size", "required" ] } @@ -31447,10 +36721,10 @@ ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/ip\/{key}": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/varchar\/{key}": { "patch": { - "summary": "Update IP address column", - "operationId": "tablesDBUpdateIpColumn", + "summary": "Update varchar column", + "operationId": "tablesDBUpdateVarcharColumn", "consumes": [ "application\/json" ], @@ -31460,23 +36734,23 @@ "tags": [ "tablesDB" ], - "description": "Update an ip column. Changing the `default` value will not update already existing rows.\n", + "description": "Update a varchar column. Changing the `default` value will not update already existing rows.\n", "responses": { "200": { - "description": "ColumnIP", + "description": "ColumnVarchar", "schema": { - "$ref": "#\/definitions\/columnIp" + "$ref": "#\/definitions\/columnVarchar" } } }, "deprecated": false, "x-appwrite": { - "method": "updateIpColumn", + "method": "updateVarcharColumn", "group": "columns", - "weight": 364, + "weight": 362, "cookies": false, "type": "", - "demo": "tablesdb\/update-ip-column.md", + "demo": "tablesdb\/update-varchar-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -31490,7 +36764,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-ip-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-varchar-column.md", "auth": { "Project": [], "Key": [] @@ -31513,7 +36787,7 @@ }, { "name": "tableId", - "description": "Table ID.", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "type": "string", "x-example": "<TABLE_ID>", @@ -31540,9 +36814,17 @@ }, "default": { "type": "string", - "description": "Default value. Cannot be set when column is required.", + "description": "Default value for column when not provided. Cannot be set when column is required.", "default": null, - "x-example": null, + "x-example": "<DEFAULT>", + "x-nullable": true + }, + "size": { + "type": "integer", + "description": "Maximum size of the varchar column.", + "default": null, + "x-example": 1, + "format": "int32", "x-nullable": true }, "newKey": { @@ -31562,36 +36844,140 @@ ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/line": { - "post": { - "summary": "Create line column", - "operationId": "tablesDBCreateLineColumn", - "consumes": [ - "application\/json" - ], + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/{key}": { + "get": { + "summary": "Get column", + "operationId": "tablesDBGetColumn", + "consumes": [], "produces": [ "application\/json" ], "tags": [ "tablesDB" ], - "description": "Create a geometric line column.", + "description": "Get column by ID.", "responses": { - "202": { - "description": "ColumnLine", + "200": { + "description": "ColumnBoolean, or ColumnInteger, or ColumnFloat, or ColumnEmail, or ColumnEnum, or ColumnURL, or ColumnIP, or ColumnDatetime, or ColumnRelationship, or ColumnString", "schema": { - "$ref": "#\/definitions\/columnLine" + "x-oneOf": [ + { + "$ref": "#\/definitions\/columnBoolean" + }, + { + "$ref": "#\/definitions\/columnInteger" + }, + { + "$ref": "#\/definitions\/columnFloat" + }, + { + "$ref": "#\/definitions\/columnEmail" + }, + { + "$ref": "#\/definitions\/columnEnum" + }, + { + "$ref": "#\/definitions\/columnUrl" + }, + { + "$ref": "#\/definitions\/columnIp" + }, + { + "$ref": "#\/definitions\/columnDatetime" + }, + { + "$ref": "#\/definitions\/columnRelationship" + }, + { + "$ref": "#\/definitions\/columnString" + } + ] } } }, "deprecated": false, "x-appwrite": { - "method": "createLineColumn", + "method": "getColumn", "group": "columns", - "weight": 365, + "weight": 332, "cookies": false, "type": "", - "demo": "tablesdb\/create-line-column.md", + "demo": "tablesdb\/get-column.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": [ + "tables.read", + "collections.read" + ], + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-column.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "tableId", + "description": "Table ID.", + "required": true, + "type": "string", + "x-example": "<TABLE_ID>", + "in": "path" + }, + { + "name": "key", + "description": "Column Key.", + "required": true, + "type": "string", + "in": "path" + } + ] + }, + "delete": { + "summary": "Delete column", + "operationId": "tablesDBDeleteColumn", + "consumes": [ + "application\/json" + ], + "produces": [], + "tags": [ + "tablesDB" + ], + "description": "Deletes a column.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteColumn", + "group": "columns", + "weight": 333, + "cookies": false, + "type": "", + "demo": "tablesdb\/delete-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -31605,7 +36991,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-line-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-column.md", "auth": { "Project": [], "Key": [] @@ -31628,51 +37014,26 @@ }, { "name": "tableId", - "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "description": "Table ID.", "required": true, "type": "string", "x-example": "<TABLE_ID>", "in": "path" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "default": null, - "x-example": null - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "default": null, - "x-example": false - }, - "default": { - "type": "array", - "description": "Default value for column 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 column is required.", - "default": null, - "x-example": "[[1, 2], [3, 4], [5, 6]]", - "x-nullable": true - } - }, - "required": [ - "key", - "required" - ] - } + "name": "key", + "description": "Column Key.", + "required": true, + "type": "string", + "in": "path" } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/line\/{key}": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/{key}\/relationship": { "patch": { - "summary": "Update line column", - "operationId": "tablesDBUpdateLineColumn", + "summary": "Update relationship column", + "operationId": "tablesDBUpdateRelationshipColumn", "consumes": [ "application\/json" ], @@ -31682,23 +37043,23 @@ "tags": [ "tablesDB" ], - "description": "Update a line column. Changing the `default` value will not update already existing rows.", + "description": "Update relationship column. [Learn more about relationship columns](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-columns).\n", "responses": { "200": { - "description": "ColumnLine", + "description": "ColumnRelationship", "schema": { - "$ref": "#\/definitions\/columnLine" + "$ref": "#\/definitions\/columnRelationship" } } }, "deprecated": false, "x-appwrite": { - "method": "updateLineColumn", + "method": "updateRelationshipColumn", "group": "columns", - "weight": 366, + "weight": 356, "cookies": false, "type": "", - "demo": "tablesdb\/update-line-column.md", + "demo": "tablesdb\/update-relationship-column.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -31712,7 +37073,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-line-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-relationship-column.md", "auth": { "Project": [], "Key": [] @@ -31735,7 +37096,7 @@ }, { "name": "tableId", - "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "description": "Table ID.", "required": true, "type": "string", "x-example": "<TABLE_ID>", @@ -31754,17 +37115,18 @@ "schema": { "type": "object", "properties": { - "required": { - "type": "boolean", - "description": "Is column required?", - "default": null, - "x-example": false - }, - "default": { - "type": "array", - "description": "Default value for column 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 column is required.", + "onDelete": { + "type": "string", + "description": "Constraints option", "default": null, - "x-example": "[[1, 2], [3, 4], [5, 6]]", + "x-example": "cascade", + "enum": [ + "cascade", + "restrict", + "setNull" + ], + "x-enum-name": "RelationMutate", + "x-enum-keys": [], "x-nullable": true }, "newKey": { @@ -31774,51 +37136,46 @@ "x-example": null, "x-nullable": true } - }, - "required": [ - "required" - ] + } } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/longtext": { - "post": { - "summary": "Create longtext column", - "operationId": "tablesDBCreateLongtextColumn", - "consumes": [ - "application\/json" - ], + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/indexes": { + "get": { + "summary": "List indexes", + "operationId": "tablesDBListIndexes", + "consumes": [], "produces": [ "application\/json" ], "tags": [ "tablesDB" ], - "description": "Create a longtext column.\n", + "description": "List indexes on the table.", "responses": { - "202": { - "description": "ColumnLongtext", + "200": { + "description": "Column Indexes List", "schema": { - "$ref": "#\/definitions\/columnLongtext" + "$ref": "#\/definitions\/columnIndexList" } } }, "deprecated": false, "x-appwrite": { - "method": "createLongtextColumn", - "group": "columns", - "weight": 383, + "method": "listIndexes", + "group": "indexes", + "weight": 372, "cookies": false, "type": "", - "demo": "tablesdb\/create-longtext-column.md", + "demo": "tablesdb\/list-indexes.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.write", - "collections.write" + "tables.read", + "collections.read" ], "platforms": [ "console", @@ -31826,7 +37183,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-longtext-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-indexes.md", "auth": { "Project": [], "Key": [] @@ -31856,56 +37213,31 @@ "in": "path" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "default": null, - "x-example": null - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "default": null, - "x-example": false - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "default": null, - "x-example": "<DEFAULT>", - "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "default": false, - "x-example": false - }, - "encrypt": { - "type": "boolean", - "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", - "default": false, - "x-example": false - } - }, - "required": [ - "key", - "required" - ] - } + "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: key, type, status, attributes, error", + "required": false, + "type": "array", + "collectionFormat": "multi", + "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, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" } ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/longtext\/{key}": { - "patch": { - "summary": "Update longtext column", - "operationId": "tablesDBUpdateLongtextColumn", + }, + "post": { + "summary": "Create index", + "operationId": "tablesDBCreateIndex", "consumes": [ "application\/json" ], @@ -31915,23 +37247,23 @@ "tags": [ "tablesDB" ], - "description": "Update a longtext column. Changing the `default` value will not update already existing rows.\n", + "description": "Creates an index on the columns listed. Your index should include all the columns you will query in a single request.\nType can be `key`, `fulltext`, or `unique`.", "responses": { - "200": { - "description": "ColumnLongtext", + "202": { + "description": "Index", "schema": { - "$ref": "#\/definitions\/columnLongtext" + "$ref": "#\/definitions\/columnIndex" } } }, "deprecated": false, "x-appwrite": { - "method": "updateLongtextColumn", - "group": "columns", - "weight": 384, + "method": "createIndex", + "group": "indexes", + "weight": 369, "cookies": false, "type": "", - "demo": "tablesdb\/update-longtext-column.md", + "demo": "tablesdb\/create-index.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -31945,7 +37277,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-longtext-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-index.md", "auth": { "Project": [], "Key": [] @@ -31974,85 +37306,110 @@ "x-example": "<TABLE_ID>", "in": "path" }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "type": "string", - "in": "path" - }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "required": { - "type": "boolean", - "description": "Is column required?", + "key": { + "type": "string", + "description": "Index Key.", "default": null, - "x-example": false + "x-example": null }, - "default": { + "type": { "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", + "description": "Index type.", "default": null, - "x-example": "<DEFAULT>", - "x-nullable": true + "x-example": "key", + "enum": [ + "key", + "fulltext", + "unique", + "spatial" + ], + "x-enum-name": "IndexType", + "x-enum-keys": [] }, - "newKey": { - "type": "string", - "description": "New Column Key.", + "columns": { + "type": "array", + "description": "Array of columns to index. Maximum of 100 columns are allowed, each 32 characters long.", "default": null, "x-example": null, - "x-nullable": true + "items": { + "type": "string" + } + }, + "orders": { + "type": "array", + "description": "Array of index orders. Maximum of 100 orders are allowed.", + "default": [], + "x-example": null, + "items": { + "type": "string", + "enum": [ + "asc", + "desc" + ], + "x-enum-name": "OrderBy", + "x-enum-keys": [] + } + }, + "lengths": { + "type": "array", + "description": "Length of index. Maximum of 100", + "default": [], + "x-example": null, + "items": { + "type": "integer" + } } }, "required": [ - "required", - "default" + "key", + "type", + "columns" ] } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/mediumtext": { - "post": { - "summary": "Create mediumtext column", - "operationId": "tablesDBCreateMediumtextColumn", - "consumes": [ - "application\/json" - ], + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/indexes\/{key}": { + "get": { + "summary": "Get index", + "operationId": "tablesDBGetIndex", + "consumes": [], "produces": [ "application\/json" ], "tags": [ "tablesDB" ], - "description": "Create a mediumtext column.\n", + "description": "Get index by ID.", "responses": { - "202": { - "description": "ColumnMediumtext", + "200": { + "description": "Index", "schema": { - "$ref": "#\/definitions\/columnMediumtext" + "$ref": "#\/definitions\/columnIndex" } } }, "deprecated": false, "x-appwrite": { - "method": "createMediumtextColumn", - "group": "columns", - "weight": 381, + "method": "getIndex", + "group": "indexes", + "weight": 370, "cookies": false, "type": "", - "demo": "tablesdb\/create-mediumtext-column.md", + "demo": "tablesdb\/get-index.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.write", - "collections.write" + "tables.read", + "collections.read" ], "platforms": [ "console", @@ -32060,7 +37417,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-mediumtext-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-index.md", "auth": { "Project": [], "Key": [] @@ -32090,82 +37447,38 @@ "in": "path" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "default": null, - "x-example": null - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "default": null, - "x-example": false - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "default": null, - "x-example": "<DEFAULT>", - "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "default": false, - "x-example": false - }, - "encrypt": { - "type": "boolean", - "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", - "default": false, - "x-example": false - } - }, - "required": [ - "key", - "required" - ] - } + "name": "key", + "description": "Index Key.", + "required": true, + "type": "string", + "in": "path" } ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/mediumtext\/{key}": { - "patch": { - "summary": "Update mediumtext column", - "operationId": "tablesDBUpdateMediumtextColumn", + }, + "delete": { + "summary": "Delete index", + "operationId": "tablesDBDeleteIndex", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ "tablesDB" ], - "description": "Update a mediumtext column. Changing the `default` value will not update already existing rows.\n", + "description": "Delete an index.", "responses": { - "200": { - "description": "ColumnMediumtext", - "schema": { - "$ref": "#\/definitions\/columnMediumtext" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateMediumtextColumn", - "group": "columns", - "weight": 382, + "method": "deleteIndex", + "group": "indexes", + "weight": 371, "cookies": false, "type": "", - "demo": "tablesdb\/update-mediumtext-column.md", + "demo": "tablesdb\/delete-index.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -32179,7 +37492,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-mediumtext-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-index.md", "auth": { "Project": [], "Key": [] @@ -32202,7 +37515,7 @@ }, { "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "type": "string", "x-example": "<TABLE_ID>", @@ -32210,100 +37523,68 @@ }, { "name": "key", - "description": "Column Key.", + "description": "Index Key.", "required": true, "type": "string", "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "required": { - "type": "boolean", - "description": "Is column required?", - "default": null, - "x-example": false - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "default": null, - "x-example": "<DEFAULT>", - "x-nullable": true - }, - "newKey": { - "type": "string", - "description": "New Column Key.", - "default": null, - "x-example": null, - "x-nullable": true - } - }, - "required": [ - "required", - "default" - ] - } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/point": { - "post": { - "summary": "Create point column", - "operationId": "tablesDBCreatePointColumn", - "consumes": [ - "application\/json" - ], + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows": { + "get": { + "summary": "List rows", + "operationId": "tablesDBListRows", + "consumes": [], "produces": [ "application\/json" ], "tags": [ "tablesDB" ], - "description": "Create a geometric point column.", + "description": "Get a list of all the user's rows in a given table. You can use the query params to filter your results.", "responses": { - "202": { - "description": "ColumnPoint", + "200": { + "description": "Rows List", "schema": { - "$ref": "#\/definitions\/columnPoint" + "$ref": "#\/definitions\/rowList" } } }, "deprecated": false, "x-appwrite": { - "method": "createPointColumn", - "group": "columns", - "weight": 367, + "method": "listRows", + "group": "rows", + "weight": 381, "cookies": false, "type": "", - "demo": "tablesdb\/create-point-column.md", + "demo": "tablesdb\/list-rows.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.write", - "collections.write" + "rows.read", + "documents.read" ], "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-point-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-rows.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ @@ -32317,51 +37598,56 @@ }, { "name": "tableId", - "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/products\/databases\/tables#create-table).", "required": true, "type": "string", "x-example": "<TABLE_ID>", "in": "path" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "default": null, - "x-example": null - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "default": null, - "x-example": false - }, - "default": { - "type": "array", - "description": "Default value for column when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when column is required.", - "default": null, - "x-example": "[1, 2]", - "x-nullable": true - } - }, - "required": [ - "key", - "required" - ] - } + "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, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", + "required": false, + "type": "string", + "x-example": "<TRANSACTION_ID>", + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "type": "boolean", + "x-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, + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0, + "in": "query" } ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/point\/{key}": { - "patch": { - "summary": "Update point column", - "operationId": "tablesDBUpdatePointColumn", + }, + "post": { + "summary": "Create row", + "operationId": "tablesDBCreateRow", "consumes": [ "application\/json" ], @@ -32371,46 +37657,112 @@ "tags": [ "tablesDB" ], - "description": "Update a point column. Changing the `default` value will not update already existing rows.", + "description": "Create a new Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", "responses": { - "200": { - "description": "ColumnPoint", + "201": { + "description": "Row", "schema": { - "$ref": "#\/definitions\/columnPoint" + "$ref": "#\/definitions\/row" } } }, "deprecated": false, "x-appwrite": { - "method": "updatePointColumn", - "group": "columns", - "weight": 368, + "method": "createRow", + "group": "rows", + "weight": 373, "cookies": false, "type": "", - "demo": "tablesdb\/update-point-column.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", + "demo": "tablesdb\/create-row.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", "scope": [ - "tables.write", - "collections.write" + "rows.write", + "documents.write" ], "platforms": [ "console", + "client", "server" ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-point-column.md", + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-row.md", + "methods": [ + { + "name": "createRow", + "namespace": "tablesDB", + "desc": "Create row", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "databaseId", + "tableId", + "rowId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "tableId", + "rowId", + "data" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/row" + } + ], + "description": "Create a new Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "demo": "tablesdb\/create-row.md", + "public": true + }, + { + "name": "createRows", + "namespace": "tablesDB", + "desc": "Create rows", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "databaseId", + "tableId", + "rows", + "transactionId" + ], + "required": [ + "databaseId", + "tableId", + "rows" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/rowList" + } + ], + "description": "Create new Rows. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "demo": "tablesdb\/create-rows.md", + "public": true + } + ], "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ @@ -32424,58 +37776,64 @@ }, { "name": "tableId", - "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable). Make sure to define columns before creating rows.", "required": true, "type": "string", "x-example": "<TABLE_ID>", "in": "path" }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "type": "string", - "in": "path" - }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "required": { - "type": "boolean", - "description": "Is column required?", - "default": null, - "x-example": false + "rowId": { + "type": "string", + "description": "Row ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "default": "", + "x-example": "<ROW_ID>" }, - "default": { + "data": { + "type": "object", + "description": "Row data as JSON object.", + "default": [], + "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":30,\"isAdmin\":false}" + }, + "permissions": { "type": "array", - "description": "Default value for column when not provided, array of two numbers [longitude, latitude], representing a single coordinate. Cannot be set when column is required.", + "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).", "default": null, - "x-example": "[1, 2]", - "x-nullable": true + "x-example": "[\"read(\"any\")\"]", + "x-nullable": true, + "items": { + "type": "string" + } }, - "newKey": { + "rows": { + "type": "array", + "description": "Array of rows data as JSON objects.", + "default": [], + "x-example": null, + "items": { + "type": "object" + } + }, + "transactionId": { "type": "string", - "description": "New Column Key.", + "description": "Transaction ID for staging the operation.", "default": null, - "x-example": null, + "x-example": "<TRANSACTION_ID>", "x-nullable": true } - }, - "required": [ - "required" - ] + } } } ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/polygon": { - "post": { - "summary": "Create polygon column", - "operationId": "tablesDBCreatePolygonColumn", + }, + "put": { + "summary": "Upsert rows", + "operationId": "tablesDBUpsertRows", "consumes": [ "application\/json" ], @@ -32485,29 +37843,29 @@ "tags": [ "tablesDB" ], - "description": "Create a geometric polygon column.", + "description": "Create or update Rows. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.\n", "responses": { - "202": { - "description": "ColumnPolygon", + "201": { + "description": "Rows List", "schema": { - "$ref": "#\/definitions\/columnPolygon" + "$ref": "#\/definitions\/rowList" } } }, "deprecated": false, "x-appwrite": { - "method": "createPolygonColumn", - "group": "columns", - "weight": 369, + "method": "upsertRows", + "group": "rows", + "weight": 378, "cookies": false, "type": "", - "demo": "tablesdb\/create-polygon-column.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", + "demo": "tablesdb\/upsert-rows.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", "scope": [ - "tables.write", - "collections.write" + "rows.write", + "documents.write" ], "platforms": [ "console", @@ -32515,7 +37873,38 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-polygon-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/upsert-rows.md", + "methods": [ + { + "name": "upsertRows", + "namespace": "tablesDB", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "databaseId", + "tableId", + "rows", + "transactionId" + ], + "required": [ + "databaseId", + "tableId", + "rows" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/rowList" + } + ], + "description": "Create or update Rows. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.\n", + "demo": "tablesdb\/upsert-rows.md", + "public": true + } + ], "auth": { "Project": [], "Key": [] @@ -32538,7 +37927,7 @@ }, { "name": "tableId", - "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "description": "Table ID.", "required": true, "type": "string", "x-example": "<TABLE_ID>", @@ -32550,39 +37939,33 @@ "schema": { "type": "object", "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "default": null, - "x-example": null - }, - "required": { - "type": "boolean", - "description": "Is column required?", + "rows": { + "type": "array", + "description": "Array of row data as JSON objects. May contain partial rows.", "default": null, - "x-example": false + "x-example": null, + "items": { + "type": "object" + } }, - "default": { - "type": "array", - "description": "Default value for column 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 column is required.", + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", "default": null, - "x-example": "[[[1, 2], [3, 4], [5, 6], [1, 2]]]", + "x-example": "<TRANSACTION_ID>", "x-nullable": true } }, "required": [ - "key", - "required" + "rows" ] } } ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/polygon\/{key}": { + }, "patch": { - "summary": "Update polygon column", - "operationId": "tablesDBUpdatePolygonColumn", + "summary": "Update rows", + "operationId": "tablesDBUpdateRows", "consumes": [ "application\/json" ], @@ -32592,29 +37975,29 @@ "tags": [ "tablesDB" ], - "description": "Update a polygon column. Changing the `default` value will not update already existing rows.", + "description": "Update all rows that match your queries, if no queries are submitted then all rows are updated. You can pass only specific fields to be updated.", "responses": { "200": { - "description": "ColumnPolygon", + "description": "Rows List", "schema": { - "$ref": "#\/definitions\/columnPolygon" + "$ref": "#\/definitions\/rowList" } } }, "deprecated": false, "x-appwrite": { - "method": "updatePolygonColumn", - "group": "columns", - "weight": 370, + "method": "updateRows", + "group": "rows", + "weight": 376, "cookies": false, "type": "", - "demo": "tablesdb\/update-polygon-column.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", + "demo": "tablesdb\/update-rows.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", "scope": [ - "tables.write", - "collections.write" + "rows.write", + "documents.write" ], "platforms": [ "console", @@ -32622,7 +38005,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-polygon-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-rows.md", "auth": { "Project": [], "Key": [] @@ -32645,58 +38028,48 @@ }, { "name": "tableId", - "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "description": "Table ID.", "required": true, "type": "string", "x-example": "<TABLE_ID>", "in": "path" }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "type": "string", - "in": "path" - }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "required": { - "type": "boolean", - "description": "Is column required?", - "default": null, - "x-example": false + "data": { + "type": "object", + "description": "Row data as JSON object. Include only column and value pairs to be updated.", + "default": [], + "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":33,\"isAdmin\":false}" }, - "default": { + "queries": { "type": "array", - "description": "Default value for column 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 column is required.", - "default": null, - "x-example": "[[[1, 2], [3, 4], [5, 6], [1, 2]]]", - "x-nullable": true + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } }, - "newKey": { + "transactionId": { "type": "string", - "description": "New Column Key.", + "description": "Transaction ID for staging the operation.", "default": null, - "x-example": null, + "x-example": "<TRANSACTION_ID>", "x-nullable": true } - }, - "required": [ - "required" - ] + } } } ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/relationship": { - "post": { - "summary": "Create relationship column", - "operationId": "tablesDBCreateRelationshipColumn", + }, + "delete": { + "summary": "Delete rows", + "operationId": "tablesDBDeleteRows", "consumes": [ "application\/json" ], @@ -32706,29 +38079,29 @@ "tags": [ "tablesDB" ], - "description": "Create relationship column. [Learn more about relationship columns](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-columns).\n", + "description": "Bulk delete rows using queries, if no queries are passed then all rows are deleted.", "responses": { - "202": { - "description": "ColumnRelationship", + "200": { + "description": "Rows List", "schema": { - "$ref": "#\/definitions\/columnRelationship" + "$ref": "#\/definitions\/rowList" } } }, "deprecated": false, "x-appwrite": { - "method": "createRelationshipColumn", - "group": "columns", - "weight": 371, + "method": "deleteRows", + "group": "rows", + "weight": 380, "cookies": false, "type": "", - "demo": "tablesdb\/create-relationship-column.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", + "demo": "tablesdb\/delete-rows.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", "scope": [ - "tables.write", - "collections.write" + "rows.write", + "documents.write" ], "platforms": [ "console", @@ -32736,7 +38109,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-relationship-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-rows.md", "auth": { "Project": [], "Key": [] @@ -32759,7 +38132,7 @@ }, { "name": "tableId", - "description": "Table ID.", + "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", "required": true, "type": "string", "x-example": "<TABLE_ID>", @@ -32771,126 +38144,82 @@ "schema": { "type": "object", "properties": { - "relatedTableId": { - "type": "string", - "description": "Related Table ID.", - "default": null, - "x-example": "<RELATED_TABLE_ID>" - }, - "type": { - "type": "string", - "description": "Relation type", - "default": null, - "x-example": "oneToOne", - "enum": [ - "oneToOne", - "manyToOne", - "manyToMany", - "oneToMany" - ], - "x-enum-name": "RelationshipType", - "x-enum-keys": [] - }, - "twoWay": { - "type": "boolean", - "description": "Is Two Way?", - "default": false, - "x-example": false - }, - "key": { - "type": "string", - "description": "Column Key.", - "default": null, + "queries": { + "type": "array", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "default": [], "x-example": null, - "x-nullable": true + "items": { + "type": "string" + } }, - "twoWayKey": { + "transactionId": { "type": "string", - "description": "Two Way Column Key.", + "description": "Transaction ID for staging the operation.", "default": null, - "x-example": null, + "x-example": "<TRANSACTION_ID>", "x-nullable": true - }, - "onDelete": { - "type": "string", - "description": "Constraints option", - "default": "restrict", - "x-example": "cascade", - "enum": [ - "cascade", - "restrict", - "setNull" - ], - "x-enum-name": "RelationMutate", - "x-enum-keys": [] } - }, - "required": [ - "relatedTableId", - "type" - ] + } } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/string": { - "post": { - "summary": "Create string column", - "operationId": "tablesDBCreateStringColumn", - "consumes": [ - "application\/json" - ], + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}": { + "get": { + "summary": "Get row", + "operationId": "tablesDBGetRow", + "consumes": [], "produces": [ "application\/json" ], "tags": [ "tablesDB" ], - "description": "Create a string column.\n", + "description": "Get a row by its unique ID. This endpoint response returns a JSON object with the row data.", "responses": { - "202": { - "description": "ColumnString", + "200": { + "description": "Row", "schema": { - "$ref": "#\/definitions\/columnString" + "$ref": "#\/definitions\/row" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createStringColumn", - "group": "columns", - "weight": 373, + "method": "getRow", + "group": "rows", + "weight": 374, "cookies": false, "type": "", - "demo": "tablesdb\/create-string-column.md", + "demo": "tablesdb\/get-row.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", "scope": [ - "tables.write", - "collections.write" + "rows.read", + "documents.read" ], "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-string-column.md", - "deprecated": { - "since": "1.9.0", - "replaceWith": "tablesDB.createTextColumn" - }, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-row.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ @@ -32911,64 +38240,38 @@ "in": "path" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "default": null, - "x-example": null - }, - "size": { - "type": "integer", - "description": "Column size for text columns, in number of characters.", - "default": null, - "x-example": 1, - "format": "int32" - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "default": null, - "x-example": false - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "default": null, - "x-example": "<DEFAULT>", - "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "default": false, - "x-example": false - }, - "encrypt": { - "type": "boolean", - "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", - "default": false, - "x-example": false - } - }, - "required": [ - "key", - "size", - "required" - ] - } + "name": "rowId", + "description": "Row ID.", + "required": true, + "type": "string", + "x-example": "<ROW_ID>", + "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, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", + "required": false, + "type": "string", + "x-example": "<TRANSACTION_ID>", + "in": "query" } ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/string\/{key}": { - "patch": { - "summary": "Update string column", - "operationId": "tablesDBUpdateStringColumn", + }, + "put": { + "summary": "Upsert a row", + "operationId": "tablesDBUpsertRow", "consumes": [ "application\/json" ], @@ -32978,50 +38281,82 @@ "tags": [ "tablesDB" ], - "description": "Update a string column. Changing the `default` value will not update already existing rows.\n", + "description": "Create or update a Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", "responses": { - "200": { - "description": "ColumnString", + "201": { + "description": "Row", "schema": { - "$ref": "#\/definitions\/columnString" + "$ref": "#\/definitions\/row" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateStringColumn", - "group": "columns", - "weight": 374, + "method": "upsertRow", + "group": "rows", + "weight": 377, "cookies": false, - "type": "", - "demo": "tablesdb\/update-string-column.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", + "type": "", + "demo": "tablesdb\/upsert-row.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", "scope": [ - "tables.write", - "collections.write" + "rows.write", + "documents.write" ], "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-string-column.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "tablesDB.updateTextColumn" - }, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/upsert-row.md", + "methods": [ + { + "name": "upsertRow", + "namespace": "tablesDB", + "desc": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "databaseId", + "tableId", + "rowId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "tableId", + "rowId" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/row" + } + ], + "description": "Create or update a Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "demo": "tablesdb\/upsert-row.md", + "public": true + } + ], "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ @@ -33035,17 +38370,18 @@ }, { "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "description": "Table ID.", "required": true, "type": "string", "x-example": "<TABLE_ID>", "in": "path" }, { - "name": "key", - "description": "Column Key.", + "name": "rowId", + "description": "Row ID.", "required": true, "type": "string", + "x-example": "<ROW_ID>", "in": "path" }, { @@ -33054,48 +38390,37 @@ "schema": { "type": "object", "properties": { - "required": { - "type": "boolean", - "description": "Is column required?", - "default": null, - "x-example": false - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "default": null, - "x-example": "<DEFAULT>", - "x-nullable": true + "data": { + "type": "object", + "description": "Row data as JSON object. Include all required columns of the row to be created or updated.", + "default": [], + "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":33,\"isAdmin\":false}" }, - "size": { - "type": "integer", - "description": "Maximum size of the string column.", + "permissions": { + "type": "array", + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", "default": null, - "x-example": 1, - "format": "int32", - "x-nullable": true + "x-example": "[\"read(\"any\")\"]", + "x-nullable": true, + "items": { + "type": "string" + } }, - "newKey": { + "transactionId": { "type": "string", - "description": "New Column Key.", + "description": "Transaction ID for staging the operation.", "default": null, - "x-example": null, + "x-example": "<TRANSACTION_ID>", "x-nullable": true } - }, - "required": [ - "required", - "default" - ] + } } } ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/text": { - "post": { - "summary": "Create text column", - "operationId": "tablesDBCreateTextColumn", + }, + "patch": { + "summary": "Update row", + "operationId": "tablesDBUpdateRow", "consumes": [ "application\/json" ], @@ -33105,46 +38430,49 @@ "tags": [ "tablesDB" ], - "description": "Create a text column.\n", + "description": "Update a row by its unique ID. Using the patch method you can pass only specific fields that will get updated.", "responses": { - "202": { - "description": "ColumnText", + "200": { + "description": "Row", "schema": { - "$ref": "#\/definitions\/columnText" + "$ref": "#\/definitions\/row" } } }, "deprecated": false, "x-appwrite": { - "method": "createTextColumn", - "group": "columns", - "weight": 379, + "method": "updateRow", + "group": "rows", + "weight": 375, "cookies": false, "type": "", - "demo": "tablesdb\/create-text-column.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", + "demo": "tablesdb\/update-row.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", "scope": [ - "tables.write", - "collections.write" + "rows.write", + "documents.write" ], "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-text-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-row.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ @@ -33158,112 +38486,104 @@ }, { "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "description": "Table ID.", "required": true, "type": "string", "x-example": "<TABLE_ID>", "in": "path" }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "type": "string", + "x-example": "<ROW_ID>", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "default": null, - "x-example": null + "data": { + "type": "object", + "description": "Row data as JSON object. Include only columns and value pairs to be updated.", + "default": [], + "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":33,\"isAdmin\":false}" }, - "required": { - "type": "boolean", - "description": "Is column required?", + "permissions": { + "type": "array", + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", "default": null, - "x-example": false + "x-example": "[\"read(\"any\")\"]", + "x-nullable": true, + "items": { + "type": "string" + } }, - "default": { + "transactionId": { "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", + "description": "Transaction ID for staging the operation.", "default": null, - "x-example": "<DEFAULT>", + "x-example": "<TRANSACTION_ID>", "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "default": false, - "x-example": false - }, - "encrypt": { - "type": "boolean", - "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", - "default": false, - "x-example": false } - }, - "required": [ - "key", - "required" - ] + } } } ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/text\/{key}": { - "patch": { - "summary": "Update text column", - "operationId": "tablesDBUpdateTextColumn", + }, + "delete": { + "summary": "Delete row", + "operationId": "tablesDBDeleteRow", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ "tablesDB" ], - "description": "Update a text column. Changing the `default` value will not update already existing rows.\n", + "description": "Delete a row by its unique ID.", "responses": { - "200": { - "description": "ColumnText", - "schema": { - "$ref": "#\/definitions\/columnText" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateTextColumn", - "group": "columns", - "weight": 380, + "method": "deleteRow", + "group": "rows", + "weight": 379, "cookies": false, "type": "", - "demo": "tablesdb\/update-text-column.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", + "demo": "tablesdb\/delete-row.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", "scope": [ - "tables.write", - "collections.write" + "rows.write", + "documents.write" ], "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-text-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-row.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ @@ -33284,10 +38604,11 @@ "in": "path" }, { - "name": "key", - "description": "Column Key.", + "name": "rowId", + "description": "Row ID.", "required": true, "type": "string", + "x-example": "<ROW_ID>", "in": "path" }, { @@ -33296,40 +38617,23 @@ "schema": { "type": "object", "properties": { - "required": { - "type": "boolean", - "description": "Is column required?", - "default": null, - "x-example": false - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "default": null, - "x-example": "<DEFAULT>", - "x-nullable": true - }, - "newKey": { + "transactionId": { "type": "string", - "description": "New Column Key.", + "description": "Transaction ID for staging the operation.", "default": null, - "x-example": null, + "x-example": "<TRANSACTION_ID>", "x-nullable": true } - }, - "required": [ - "required", - "default" - ] + } } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/url": { - "post": { - "summary": "Create URL column", - "operationId": "tablesDBCreateUrlColumn", + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}\/{column}\/decrement": { + "patch": { + "summary": "Decrement row column", + "operationId": "tablesDBDecrementRowColumn", "consumes": [ "application\/json" ], @@ -33339,45 +38643,48 @@ "tags": [ "tablesDB" ], - "description": "Create a URL column.\n", + "description": "Decrement a specific column of a row by a given value.", "responses": { - "202": { - "description": "ColumnURL", + "200": { + "description": "Row", "schema": { - "$ref": "#\/definitions\/columnUrl" + "$ref": "#\/definitions\/row" } } }, "deprecated": false, "x-appwrite": { - "method": "createUrlColumn", - "group": "columns", - "weight": 375, + "method": "decrementRowColumn", + "group": "rows", + "weight": 384, "cookies": false, "type": "", - "demo": "tablesdb\/create-url-column.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", + "demo": "tablesdb\/decrement-row-column.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", "scope": [ - "tables.write", - "collections.write" + "rows.write", + "documents.write" ], "platforms": [ - "console", - "server" + "client", + "server", + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-url-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/decrement-row-column.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], + "Session": [], + "JWT": [], "Key": [] } ], @@ -33398,52 +38705,59 @@ "x-example": "<TABLE_ID>", "in": "path" }, + { + "name": "rowId", + "description": "Row ID.", + "required": true, + "type": "string", + "x-example": "<ROW_ID>", + "in": "path" + }, + { + "name": "column", + "description": "Column key.", + "required": true, + "type": "string", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "default": null, - "x-example": null + "value": { + "type": "number", + "description": "Value to increment the column by. The value must be a number.", + "default": 1, + "x-example": null, + "format": "float" }, - "required": { - "type": "boolean", - "description": "Is column required?", + "min": { + "type": "number", + "description": "Minimum value for the column. If the current value is lesser than this value, an exception will be thrown.", "default": null, - "x-example": false + "x-example": null, + "format": "float", + "x-nullable": true }, - "default": { + "transactionId": { "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", + "description": "Transaction ID for staging the operation.", "default": null, - "x-example": "https:\/\/example.com", - "format": "url", + "x-example": "<TRANSACTION_ID>", "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "default": false, - "x-example": false } - }, - "required": [ - "key", - "required" - ] + } } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/url\/{key}": { + "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}\/{column}\/increment": { "patch": { - "summary": "Update URL column", - "operationId": "tablesDBUpdateUrlColumn", + "summary": "Increment row column", + "operationId": "tablesDBIncrementRowColumn", "consumes": [ "application\/json" ], @@ -33453,45 +38767,48 @@ "tags": [ "tablesDB" ], - "description": "Update an url column. Changing the `default` value will not update already existing rows.\n", + "description": "Increment a specific column of a row by a given value.", "responses": { "200": { - "description": "ColumnURL", + "description": "Row", "schema": { - "$ref": "#\/definitions\/columnUrl" + "$ref": "#\/definitions\/row" } } }, "deprecated": false, "x-appwrite": { - "method": "updateUrlColumn", - "group": "columns", - "weight": 376, + "method": "incrementRowColumn", + "group": "rows", + "weight": 383, "cookies": false, "type": "", - "demo": "tablesdb\/update-url-column.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", + "demo": "tablesdb\/increment-row-column.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", "scope": [ - "tables.write", - "collections.write" + "rows.write", + "documents.write" ], "platforms": [ - "console", - "server" + "client", + "server", + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-url-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/increment-row-column.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], + "Session": [], + "JWT": [], "Key": [] } ], @@ -33513,8 +38830,16 @@ "in": "path" }, { - "name": "key", - "description": "Column Key.", + "name": "rowId", + "description": "Row ID.", + "required": true, + "type": "string", + "x-example": "<ROW_ID>", + "in": "path" + }, + { + "name": "column", + "description": "Column key.", "required": true, "type": "string", "in": "path" @@ -33525,168 +38850,123 @@ "schema": { "type": "object", "properties": { - "required": { - "type": "boolean", - "description": "Is column required?", - "default": null, - "x-example": false + "value": { + "type": "number", + "description": "Value to increment the column by. The value must be a number.", + "default": 1, + "x-example": null, + "format": "float" }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", + "max": { + "type": "number", + "description": "Maximum value for the column. If the current value is greater than this value, an error will be thrown.", "default": null, - "x-example": "https:\/\/example.com", - "format": "url", + "x-example": null, + "format": "float", "x-nullable": true }, - "newKey": { + "transactionId": { "type": "string", - "description": "New Column Key.", + "description": "Transaction ID for staging the operation.", "default": null, - "x-example": null, + "x-example": "<TRANSACTION_ID>", "x-nullable": true } - }, - "required": [ - "required", - "default" - ] + } } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/varchar": { - "post": { - "summary": "Create varchar column", - "operationId": "tablesDBCreateVarcharColumn", - "consumes": [ - "application\/json" - ], + "\/teams": { + "get": { + "summary": "List teams", + "operationId": "teamsList", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "tablesDB" + "teams" ], - "description": "Create a varchar column.\n", + "description": "Get a list of all the teams in which the current user is a member. You can use the parameters to filter your results.", "responses": { - "202": { - "description": "ColumnVarchar", + "200": { + "description": "Teams List", "schema": { - "$ref": "#\/definitions\/columnVarchar" + "$ref": "#\/definitions\/teamList" } } }, "deprecated": false, "x-appwrite": { - "method": "createVarcharColumn", - "group": "columns", - "weight": 377, + "method": "list", + "group": "teams", + "weight": 579, "cookies": false, "type": "", - "demo": "tablesdb\/create-varchar-column.md", + "demo": "teams\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write" - ], + "scope": "teams.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-varchar-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/list-teams.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "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, total, billingPlan", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" }, { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", - "required": true, + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, "type": "string", - "x-example": "<TABLE_ID>", - "in": "path" + "x-example": "<SEARCH>", + "default": "", + "in": "query" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "key": { - "type": "string", - "description": "Column Key.", - "default": null, - "x-example": null - }, - "size": { - "type": "integer", - "description": "Column size for varchar columns, in number of characters. Maximum size is 16381.", - "default": null, - "x-example": 1, - "format": "int32" - }, - "required": { - "type": "boolean", - "description": "Is column required?", - "default": null, - "x-example": false - }, - "default": { - "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "default": null, - "x-example": "<DEFAULT>", - "x-nullable": true - }, - "array": { - "type": "boolean", - "description": "Is column an array?", - "default": false, - "x-example": false - }, - "encrypt": { - "type": "boolean", - "description": "Toggle encryption for the column. Encryption enhances security by not storing any plain text values in the database. However, encrypted columns cannot be queried.", - "default": false, - "x-example": false - } - }, - "required": [ - "key", - "size", - "required" - ] - } + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" } ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/varchar\/{key}": { - "patch": { - "summary": "Update varchar column", - "operationId": "tablesDBUpdateVarcharColumn", + }, + "post": { + "summary": "Create team", + "operationId": "teamsCreate", "consumes": [ "application\/json" ], @@ -33694,489 +38974,363 @@ "application\/json" ], "tags": [ - "tablesDB" + "teams" ], - "description": "Update a varchar column. Changing the `default` value will not update already existing rows.\n", + "description": "Create a new team. The user who creates the team will automatically be assigned as the owner of the team. Only the users with the owner role can invite new members, add new owners and delete or update the team.", "responses": { - "200": { - "description": "ColumnVarchar", + "201": { + "description": "Team", "schema": { - "$ref": "#\/definitions\/columnVarchar" + "$ref": "#\/definitions\/team" } } }, "deprecated": false, "x-appwrite": { - "method": "updateVarcharColumn", - "group": "columns", - "weight": 378, + "method": "create", + "group": "teams", + "weight": 577, "cookies": false, "type": "", - "demo": "tablesdb\/update-varchar-column.md", + "demo": "teams\/create.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write" - ], + "scope": "teams.write", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-varchar-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", - "required": true, - "type": "string", - "x-example": "<TABLE_ID>", - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", - "required": true, - "type": "string", - "in": "path" - }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "required": { - "type": "boolean", - "description": "Is column required?", - "default": null, - "x-example": false - }, - "default": { + "teamId": { "type": "string", - "description": "Default value for column when not provided. Cannot be set when column is required.", - "default": null, - "x-example": "<DEFAULT>", - "x-nullable": true - }, - "size": { - "type": "integer", - "description": "Maximum size of the varchar column.", + "description": "Team ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", "default": null, - "x-example": 1, - "format": "int32", - "x-nullable": true + "x-example": "<TEAM_ID>" }, - "newKey": { + "name": { "type": "string", - "description": "New Column Key.", + "description": "Team name. Max length: 128 chars.", "default": null, + "x-example": "<NAME>" + }, + "roles": { + "type": "array", + "description": "Array of strings. Use this param to set the roles in the team for the user who created it. The default role is **owner**. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 32 characters long.", + "default": [ + "owner" + ], "x-example": null, - "x-nullable": true + "items": { + "type": "string" + } } }, "required": [ - "required", - "default" + "teamId", + "name" ] } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/{key}": { + "\/teams\/{teamId}": { "get": { - "summary": "Get column", - "operationId": "tablesDBGetColumn", + "summary": "Get team", + "operationId": "teamsGet", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "tablesDB" + "teams" ], - "description": "Get column by ID.", + "description": "Get a team by its ID. All team members have read access for this resource.", "responses": { "200": { - "description": "ColumnBoolean, or ColumnInteger, or ColumnFloat, or ColumnEmail, or ColumnEnum, or ColumnURL, or ColumnIP, or ColumnDatetime, or ColumnRelationship, or ColumnString", + "description": "Team", "schema": { - "x-oneOf": [ - { - "$ref": "#\/definitions\/columnBoolean" - }, - { - "$ref": "#\/definitions\/columnInteger" - }, - { - "$ref": "#\/definitions\/columnFloat" - }, - { - "$ref": "#\/definitions\/columnEmail" - }, - { - "$ref": "#\/definitions\/columnEnum" - }, - { - "$ref": "#\/definitions\/columnUrl" - }, - { - "$ref": "#\/definitions\/columnIp" - }, - { - "$ref": "#\/definitions\/columnDatetime" - }, - { - "$ref": "#\/definitions\/columnRelationship" - }, - { - "$ref": "#\/definitions\/columnString" - } - ] + "$ref": "#\/definitions\/team" } } }, "deprecated": false, "x-appwrite": { - "method": "getColumn", - "group": "columns", - "weight": 348, + "method": "get", + "group": "teams", + "weight": 578, "cookies": false, "type": "", - "demo": "tablesdb\/get-column.md", + "demo": "teams\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.read", - "collections.read" - ], + "scope": "teams.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "type": "string", - "x-example": "<TABLE_ID>", - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", + "name": "teamId", + "description": "Team ID.", "required": true, "type": "string", + "x-example": "<TEAM_ID>", "in": "path" } ] }, - "delete": { - "summary": "Delete column", - "operationId": "tablesDBDeleteColumn", + "put": { + "summary": "Update name", + "operationId": "teamsUpdateName", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ - "tablesDB" + "teams" ], - "description": "Deletes a column.", + "description": "Update the team's name by its unique ID.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Team", + "schema": { + "$ref": "#\/definitions\/team" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteColumn", - "group": "columns", - "weight": 349, + "method": "updateName", + "group": "teams", + "weight": 581, "cookies": false, "type": "", - "demo": "tablesdb\/delete-column.md", + "demo": "teams\/update-name.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write" - ], + "scope": "teams.write", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-name.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "type": "string", - "x-example": "<TABLE_ID>", + "x-example": "<TEAM_ID>", "in": "path" }, { - "name": "key", - "description": "Column Key.", - "required": true, - "type": "string", - "in": "path" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "New team name. Max length: 128 chars.", + "default": null, + "x-example": "<NAME>" + } + }, + "required": [ + "name" + ] + } } ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/columns\/{key}\/relationship": { - "patch": { - "summary": "Update relationship column", - "operationId": "tablesDBUpdateRelationshipColumn", + }, + "delete": { + "summary": "Delete team", + "operationId": "teamsDelete", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ - "tablesDB" + "teams" ], - "description": "Update relationship column. [Learn more about relationship columns](https:\/\/appwrite.io\/docs\/databases-relationships#relationship-columns).\n", + "description": "Delete a team using its ID. Only team members with the owner role can delete the team.", "responses": { - "200": { - "description": "ColumnRelationship", - "schema": { - "$ref": "#\/definitions\/columnRelationship" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateRelationshipColumn", - "group": "columns", - "weight": 372, + "method": "delete", + "group": "teams", + "weight": 580, "cookies": false, "type": "", - "demo": "tablesdb\/update-relationship-column.md", + "demo": "teams\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write" - ], + "scope": "teams.write", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-relationship-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "type": "string", - "x-example": "<TABLE_ID>", - "in": "path" - }, - { - "name": "key", - "description": "Column Key.", + "name": "teamId", + "description": "Team ID.", "required": true, "type": "string", + "x-example": "<TEAM_ID>", "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "onDelete": { - "type": "string", - "description": "Constraints option", - "default": null, - "x-example": "cascade", - "enum": [ - "cascade", - "restrict", - "setNull" - ], - "x-enum-name": "RelationMutate", - "x-enum-keys": [], - "x-nullable": true - }, - "newKey": { - "type": "string", - "description": "New Column Key.", - "default": null, - "x-example": null, - "x-nullable": true - } - } - } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/indexes": { + "\/teams\/{teamId}\/memberships": { "get": { - "summary": "List indexes", - "operationId": "tablesDBListIndexes", + "summary": "List team memberships", + "operationId": "teamsListMemberships", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "tablesDB" + "teams" ], - "description": "List indexes on the table.", + "description": "Use this endpoint to list a team's members using the team's ID. All team members have read access to this endpoint. Hide sensitive attributes from the response by toggling membership privacy in the Console.", "responses": { "200": { - "description": "Column Indexes List", + "description": "Memberships List", "schema": { - "$ref": "#\/definitions\/columnIndexList" + "$ref": "#\/definitions\/membershipList" } } }, "deprecated": false, "x-appwrite": { - "method": "listIndexes", - "group": "indexes", - "weight": 388, + "method": "listMemberships", + "group": "memberships", + "weight": 586, "cookies": false, "type": "", - "demo": "tablesdb\/list-indexes.md", + "demo": "teams\/list-memberships.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.read", - "collections.read" - ], + "scope": "teams.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-indexes.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/list-team-members.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "name": "teamId", + "description": "Team ID.", "required": true, "type": "string", - "x-example": "<TABLE_ID>", + "x-example": "<TEAM_ID>", "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 columns: key, type, status, attributes, error", + "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, teamId, invited, joined, confirm, roles", "required": false, "type": "array", "collectionFormat": "multi", @@ -34186,6 +39340,15 @@ "default": [], "in": "query" }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "type": "string", + "x-example": "<SEARCH>", + "default": "", + "in": "query" + }, { "name": "total", "description": "When set to false, the total count returned will be 0 and will not be calculated.", @@ -34198,8 +39361,8 @@ ] }, "post": { - "summary": "Create index", - "operationId": "tablesDBCreateIndex", + "summary": "Create team membership", + "operationId": "teamsCreateMembership", "consumes": [ "application\/json" ], @@ -34207,65 +39370,57 @@ "application\/json" ], "tags": [ - "tablesDB" + "teams" ], - "description": "Creates an index on the columns listed. Your index should include all the columns you will query in a single request.\nType can be `key`, `fulltext`, or `unique`.", + "description": "Invite a new member to join your team. Provide an ID for existing users, or invite unregistered users using an email or phone number. If initiated from a Client SDK, Appwrite will send an email or sms with a link to join the team to the invited user, and an account will be created for them if one doesn't exist. If initiated from a Server SDK, the new member will be added automatically to the team.\n\nYou only need to provide one of a user ID, email, or phone number. Appwrite will prioritize accepting the user ID > email > phone number if you provide more than one of these parameters.\n\nUse the `url` parameter to redirect the user from the invitation email to your app. After the user is redirected, use the [Update Team Membership Status](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/teams#updateMembershipStatus) endpoint to allow the user to accept the invitation to the team. \n\nPlease note that to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) Appwrite will accept the only redirect URLs under the domains you have added as a platform on the Appwrite Console.\n", "responses": { - "202": { - "description": "Index", + "201": { + "description": "Membership", "schema": { - "$ref": "#\/definitions\/columnIndex" + "$ref": "#\/definitions\/membership" } } }, "deprecated": false, "x-appwrite": { - "method": "createIndex", - "group": "indexes", - "weight": 385, + "method": "createMembership", + "group": "memberships", + "weight": 584, "cookies": false, "type": "", - "demo": "tablesdb\/create-index.md", - "rate-limit": 0, + "demo": "teams\/create-membership.md", + "rate-limit": 10, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write" - ], + "scope": "teams.write", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-index.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team-membership.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "name": "teamId", + "description": "Team ID.", "required": true, "type": "string", - "x-example": "<TABLE_ID>", + "x-example": "<TEAM_ID>", "in": "path" }, { @@ -34274,260 +39429,162 @@ "schema": { "type": "object", "properties": { - "key": { + "email": { "type": "string", - "description": "Index Key.", - "default": null, - "x-example": null + "description": "Email of the new team member.", + "default": "", + "x-example": "email@example.com", + "format": "email" }, - "type": { + "userId": { "type": "string", - "description": "Index type.", - "default": null, - "x-example": "key", - "enum": [ - "key", - "fulltext", - "unique", - "spatial" - ], - "x-enum-name": "IndexType", - "x-enum-keys": [] + "description": "ID of the user to be added to a team.", + "default": "", + "x-example": "<USER_ID>" }, - "columns": { + "phone": { + "type": "string", + "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "default": "", + "x-example": "+12065550100", + "format": "phone" + }, + "roles": { "type": "array", - "description": "Array of columns to index. Maximum of 100 columns are allowed, each 32 characters long.", + "description": "Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 81 characters long.", "default": null, "x-example": null, "items": { "type": "string" } }, - "orders": { - "type": "array", - "description": "Array of index orders. Maximum of 100 orders are allowed.", - "default": [], - "x-example": null, - "items": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "x-enum-name": "OrderBy", - "x-enum-keys": [] - } + "url": { + "type": "string", + "description": "URL to redirect the user back to your app from the invitation email. This parameter is not required when an API key is supplied. 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.", + "default": "", + "x-example": "https:\/\/example.com", + "format": "url" }, - "lengths": { - "type": "array", - "description": "Length of index. Maximum of 100", - "default": [], - "x-example": null, - "items": { - "type": "integer" - } + "name": { + "type": "string", + "description": "Name of the new team member. Max length: 128 chars.", + "default": "", + "x-example": "<NAME>" } }, "required": [ - "key", - "type", - "columns" + "roles" ] } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/indexes\/{key}": { + "\/teams\/{teamId}\/memberships\/{membershipId}": { "get": { - "summary": "Get index", - "operationId": "tablesDBGetIndex", + "summary": "Get team membership", + "operationId": "teamsGetMembership", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "tablesDB" + "teams" ], - "description": "Get index by ID.", + "description": "Get a team member by the membership unique id. All team members have read access for this resource. Hide sensitive attributes from the response by toggling membership privacy in the Console.", "responses": { "200": { - "description": "Index", + "description": "Membership", "schema": { - "$ref": "#\/definitions\/columnIndex" + "$ref": "#\/definitions\/membership" } } }, "deprecated": false, "x-appwrite": { - "method": "getIndex", - "group": "indexes", - "weight": 386, + "method": "getMembership", + "group": "memberships", + "weight": 585, "cookies": false, "type": "", - "demo": "tablesdb\/get-index.md", + "demo": "teams\/get-membership.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.read", - "collections.read" - ], + "scope": "teams.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-index.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-member.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "name": "teamId", + "description": "Team ID.", "required": true, "type": "string", - "x-example": "<TABLE_ID>", + "x-example": "<TEAM_ID>", "in": "path" }, { - "name": "key", - "description": "Index Key.", + "name": "membershipId", + "description": "Membership ID.", "required": true, "type": "string", + "x-example": "<MEMBERSHIP_ID>", "in": "path" } ] }, - "delete": { - "summary": "Delete index", - "operationId": "tablesDBDeleteIndex", + "patch": { + "summary": "Update team membership", + "operationId": "teamsUpdateMembership", "consumes": [ "application\/json" ], - "produces": [], - "tags": [ - "tablesDB" - ], - "description": "Delete an index.", - "responses": { - "204": { - "description": "No content" - } - }, - "deprecated": false, - "x-appwrite": { - "method": "deleteIndex", - "group": "indexes", - "weight": 387, - "cookies": false, - "type": "", - "demo": "tablesdb\/delete-index.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": [ - "tables.write", - "collections.write" - ], - "platforms": [ - "console", - "server" - ], - "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-index.md", - "auth": { - "Project": [], - "Key": [] - } - }, - "security": [ - { - "Project": [], - "Key": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", - "required": true, - "type": "string", - "x-example": "<TABLE_ID>", - "in": "path" - }, - { - "name": "key", - "description": "Index Key.", - "required": true, - "type": "string", - "in": "path" - } - ] - } - }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows": { - "get": { - "summary": "List rows", - "operationId": "tablesDBListRows", - "consumes": [], "produces": [ "application\/json" ], "tags": [ - "tablesDB" + "teams" ], - "description": "Get a list of all the user's rows in a given table. You can use the query params to filter your results.", + "description": "Modify the roles of a team member. Only team members with the owner role have access to this endpoint. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions).\n", "responses": { "200": { - "description": "Rows List", + "description": "Membership", "schema": { - "$ref": "#\/definitions\/rowList" + "$ref": "#\/definitions\/membership" } } }, "deprecated": false, "x-appwrite": { - "method": "listRows", - "group": "rows", - "weight": 397, + "method": "updateMembership", + "group": "memberships", + "weight": 587, "cookies": false, "type": "", - "demo": "tablesdb\/list-rows.md", + "demo": "teams\/update-membership.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "rows.read", - "documents.read" - ], + "scope": "teams.write", "platforms": [ "console", "client", @@ -34535,7 +39592,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/list-rows.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership.md", "auth": { "Project": [], "Session": [] @@ -34551,88 +39608,72 @@ ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "type": "string", - "x-example": "<DATABASE_ID>", + "x-example": "<TEAM_ID>", "in": "path" }, { - "name": "tableId", - "description": "Table ID. You can create a new table using the TablesDB service [server integration](https:\/\/appwrite.io\/docs\/products\/databases\/tables#create-table).", + "name": "membershipId", + "description": "Membership ID.", "required": true, "type": "string", - "x-example": "<TABLE_ID>", + "x-example": "<MEMBERSHIP_ID>", "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, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" - }, - { - "name": "transactionId", - "description": "Transaction ID to read uncommitted changes within the transaction.", - "required": false, - "type": "string", - "x-example": "<TRANSACTION_ID>", - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "roles": { + "type": "array", + "description": "An array of strings. Use this param to set the user's roles in the team. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 81 characters long.", + "default": null, + "x-example": null, + "items": { + "type": "string" + } + } + }, + "required": [ + "roles" + ] + } } ] }, - "post": { - "summary": "Create row", - "operationId": "tablesDBCreateRow", + "delete": { + "summary": "Delete team membership", + "operationId": "teamsDeleteMembership", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ - "tablesDB" + "teams" ], - "description": "Create a new Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "description": "This endpoint allows a user to leave a team or for a team owner to delete the membership of any other team member. You can also use this endpoint to delete a user membership even if it is not accepted.", "responses": { - "201": { - "description": "Row", - "schema": { - "$ref": "#\/definitions\/row" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "createRow", - "group": "rows", - "weight": 389, + "method": "deleteMembership", + "group": "memberships", + "weight": 803, "cookies": false, "type": "", - "demo": "tablesdb\/create-row.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": [ - "rows.write", - "documents.write" - ], + "demo": "teams\/delete-membership.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", "platforms": [ "console", "client", @@ -34640,70 +39681,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/create-row.md", - "methods": [ - { - "name": "createRow", - "namespace": "tablesDB", - "desc": "Create row", - "auth": { - "Project": [], - "Session": [] - }, - "parameters": [ - "databaseId", - "tableId", - "rowId", - "data", - "permissions", - "transactionId" - ], - "required": [ - "databaseId", - "tableId", - "rowId", - "data" - ], - "responses": [ - { - "code": 201, - "model": "#\/definitions\/row" - } - ], - "description": "Create a new Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", - "demo": "tablesdb\/create-row.md", - "public": true - }, - { - "name": "createRows", - "namespace": "tablesDB", - "desc": "Create rows", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "databaseId", - "tableId", - "rows", - "transactionId" - ], - "required": [ - "databaseId", - "tableId", - "rows" - ], - "responses": [ - { - "code": 201, - "model": "#\/definitions\/rowList" - } - ], - "description": "Create new Rows. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", - "demo": "tablesdb\/create-rows.md", - "public": true - } - ], + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team-membership.md", "auth": { "Project": [], "Session": [] @@ -34713,79 +39691,34 @@ { "Project": [], "Session": [], - "Key": [], - "JWT": [] - } - ], - "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable). Make sure to define columns before creating rows.", - "required": true, - "type": "string", - "x-example": "<TABLE_ID>", - "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "rowId": { - "type": "string", - "description": "Row ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": "", - "x-example": "<ROW_ID>" - }, - "data": { - "type": "object", - "description": "Row data as JSON object.", - "default": [], - "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":30,\"isAdmin\":false}" - }, - "permissions": { - "type": "array", - "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).", - "default": null, - "x-example": "[\"read(\"any\")\"]", - "x-nullable": true, - "items": { - "type": "string" - } - }, - "rows": { - "type": "array", - "description": "Array of rows data as JSON objects.", - "default": [], - "x-example": null, - "items": { - "type": "object" - } - }, - "transactionId": { - "type": "string", - "description": "Transaction ID for staging the operation.", - "default": null, - "x-example": "<TRANSACTION_ID>", - "x-nullable": true - } - } - } + "Key": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "teamId", + "description": "Team ID.", + "required": true, + "type": "string", + "x-example": "<TEAM_ID>", + "in": "path" + }, + { + "name": "membershipId", + "description": "Membership ID.", + "required": true, + "type": "string", + "x-example": "<MEMBERSHIP_ID>", + "in": "path" } ] - }, - "put": { - "summary": "Upsert rows", - "operationId": "tablesDBUpsertRows", + } + }, + "\/teams\/{teamId}\/memberships\/{membershipId}\/status": { + "patch": { + "summary": "Update team membership status", + "operationId": "teamsUpdateMembershipStatus", "consumes": [ "application\/json" ], @@ -34793,96 +39726,64 @@ "application\/json" ], "tags": [ - "tablesDB" + "teams" ], - "description": "Create or update Rows. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.\n", + "description": "Use this endpoint to allow a user to accept an invitation to join a team after being redirected back to your app from the invitation email received by the user.\n\nIf the request is successful, a session for the user is automatically created.\n", "responses": { - "201": { - "description": "Rows List", + "200": { + "description": "Membership", "schema": { - "$ref": "#\/definitions\/rowList" + "$ref": "#\/definitions\/membership" } } }, "deprecated": false, "x-appwrite": { - "method": "upsertRows", - "group": "rows", - "weight": 394, + "method": "updateMembershipStatus", + "group": "memberships", + "weight": 589, "cookies": false, "type": "", - "demo": "tablesdb\/upsert-rows.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": [ - "rows.write", - "documents.write" - ], + "demo": "teams\/update-membership-status.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "public", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/upsert-rows.md", - "methods": [ - { - "name": "upsertRows", - "namespace": "tablesDB", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "databaseId", - "tableId", - "rows", - "transactionId" - ], - "required": [ - "databaseId", - "tableId", - "rows" - ], - "responses": [ - { - "code": 201, - "model": "#\/definitions\/rowList" - } - ], - "description": "Create or update Rows. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.\n", - "demo": "tablesdb\/upsert-rows.md", - "public": true - } - ], + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership-status.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "type": "string", - "x-example": "<DATABASE_ID>", + "x-example": "<TEAM_ID>", "in": "path" }, { - "name": "tableId", - "description": "Table ID.", + "name": "membershipId", + "description": "Membership ID.", "required": true, "type": "string", - "x-example": "<TABLE_ID>", + "x-example": "<MEMBERSHIP_ID>", "in": "path" }, { @@ -34891,137 +39792,94 @@ "schema": { "type": "object", "properties": { - "rows": { - "type": "array", - "description": "Array of row data as JSON objects. May contain partial rows.", + "userId": { + "type": "string", + "description": "User ID.", "default": null, - "x-example": null, - "items": { - "type": "object" - } + "x-example": "<USER_ID>" }, - "transactionId": { + "secret": { "type": "string", - "description": "Transaction ID for staging the operation.", + "description": "Secret key.", "default": null, - "x-example": "<TRANSACTION_ID>", - "x-nullable": true + "x-example": "<SECRET>" } }, "required": [ - "rows" + "userId", + "secret" ] } } ] - }, - "patch": { - "summary": "Update rows", - "operationId": "tablesDBUpdateRows", - "consumes": [ - "application\/json" - ], + } + }, + "\/teams\/{teamId}\/prefs": { + "get": { + "summary": "Get team preferences", + "operationId": "teamsGetPrefs", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "tablesDB" + "teams" ], - "description": "Update all rows that match your queries, if no queries are submitted then all rows are updated. You can pass only specific fields to be updated.", + "description": "Get the team's shared preferences by its unique ID. If a preference doesn't need to be shared by all team members, prefer storing them in [user preferences](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#getPrefs).", "responses": { "200": { - "description": "Rows List", + "description": "Preferences", "schema": { - "$ref": "#\/definitions\/rowList" + "$ref": "#\/definitions\/preferences" } } }, "deprecated": false, "x-appwrite": { - "method": "updateRows", - "group": "rows", - "weight": 392, + "method": "getPrefs", + "group": "teams", + "weight": 582, "cookies": false, "type": "", - "demo": "tablesdb\/update-rows.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": [ - "rows.write", - "documents.write" - ], + "demo": "teams\/get-prefs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-rows.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-prefs.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", + "name": "teamId", + "description": "Team ID.", "required": true, "type": "string", - "x-example": "<TABLE_ID>", + "x-example": "<TEAM_ID>", "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "data": { - "type": "object", - "description": "Row data as JSON object. Include only column and value pairs to be updated.", - "default": [], - "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":33,\"isAdmin\":false}" - }, - "queries": { - "type": "array", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "transactionId": { - "type": "string", - "description": "Transaction ID for staging the operation.", - "default": null, - "x-example": "<TRANSACTION_ID>", - "x-nullable": true - } - } - } } ] }, - "delete": { - "summary": "Delete rows", - "operationId": "tablesDBDeleteRows", + "put": { + "summary": "Update team preferences", + "operationId": "teamsUpdatePrefs", "consumes": [ "application\/json" ], @@ -35029,65 +39887,56 @@ "application\/json" ], "tags": [ - "tablesDB" + "teams" ], - "description": "Bulk delete rows using queries, if no queries are passed then all rows are deleted.", + "description": "Update the team's preferences by its unique ID. The object you pass is stored as is and replaces any previous value. The maximum allowed prefs size is 64kB and throws an error if exceeded.", "responses": { "200": { - "description": "Rows List", + "description": "Preferences", "schema": { - "$ref": "#\/definitions\/rowList" + "$ref": "#\/definitions\/preferences" } } }, "deprecated": false, "x-appwrite": { - "method": "deleteRows", - "group": "rows", - "weight": 396, + "method": "updatePrefs", + "group": "teams", + "weight": 583, "cookies": false, "type": "", - "demo": "tablesdb\/delete-rows.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": [ - "rows.write", - "documents.write" - ], + "demo": "teams\/update-prefs.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "teams.write", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-rows.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-prefs.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "name": "teamId", + "description": "Team ID.", "required": true, "type": "string", - "x-example": "<TABLE_ID>", + "x-example": "<TEAM_ID>", "in": "path" }, { @@ -35096,112 +39945,90 @@ "schema": { "type": "object", "properties": { - "queries": { - "type": "array", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", - "default": [], - "x-example": null, - "items": { - "type": "string" - } - }, - "transactionId": { - "type": "string", - "description": "Transaction ID for staging the operation.", - "default": null, - "x-example": "<TRANSACTION_ID>", - "x-nullable": true + "prefs": { + "type": "object", + "description": "Prefs key-value JSON object.", + "default": {}, + "x-example": "{}" } - } + }, + "required": [ + "prefs" + ] } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}": { + "\/tokens\/buckets\/{bucketId}\/files\/{fileId}": { "get": { - "summary": "Get row", - "operationId": "tablesDBGetRow", + "summary": "List tokens", + "operationId": "tokensList", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "tablesDB" + "tokens" ], - "description": "Get a row by its unique ID. This endpoint response returns a JSON object with the row data.", + "description": "List all the tokens created for a specific file or bucket. You can use the query params to filter your results.", "responses": { "200": { - "description": "Row", + "description": "Resource Tokens List", "schema": { - "$ref": "#\/definitions\/row" + "$ref": "#\/definitions\/resourceTokenList" } } }, "deprecated": false, "x-appwrite": { - "method": "getRow", - "group": "rows", - "weight": 390, + "method": "list", + "group": "files", + "weight": 593, "cookies": false, "type": "", - "demo": "tablesdb\/get-row.md", + "demo": "tokens\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": [ - "rows.read", - "documents.read" - ], + "scope": "tokens.read", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/get-row.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", "required": true, "type": "string", - "x-example": "<TABLE_ID>", + "x-example": "<BUCKET_ID>", "in": "path" }, { - "name": "rowId", - "description": "Row ID.", + "name": "fileId", + "description": "File unique ID.", "required": true, "type": "string", - "x-example": "<ROW_ID>", + "x-example": "<FILE_ID>", "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.", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: expire", "required": false, "type": "array", "collectionFormat": "multi", @@ -35212,18 +40039,19 @@ "in": "query" }, { - "name": "transactionId", - "description": "Transaction ID to read uncommitted changes within the transaction.", + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", "required": false, - "type": "string", - "x-example": "<TRANSACTION_ID>", + "type": "boolean", + "x-example": false, + "default": true, "in": "query" } ] }, - "put": { - "summary": "Upsert a row", - "operationId": "tablesDBUpsertRow", + "post": { + "summary": "Create file token", + "operationId": "tokensCreateFileToken", "consumes": [ "application\/json" ], @@ -35231,148 +40059,145 @@ "application\/json" ], "tags": [ - "tablesDB" + "tokens" ], - "description": "Create or update a Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", + "description": "Create a new token. A token is linked to a file. Token can be passed as a request URL search parameter.", "responses": { "201": { - "description": "Row", + "description": "ResourceToken", "schema": { - "$ref": "#\/definitions\/row" + "$ref": "#\/definitions\/resourceToken" } } }, "deprecated": false, "x-appwrite": { - "method": "upsertRow", - "group": "rows", - "weight": 393, + "method": "createFileToken", + "group": "files", + "weight": 591, "cookies": false, "type": "", - "demo": "tablesdb\/upsert-row.md", - "rate-limit": 120, + "demo": "tokens\/create-file-token.md", + "rate-limit": 60, "rate-time": 60, "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": [ - "rows.write", - "documents.write" - ], + "scope": "tokens.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/upsert-row.md", - "methods": [ - { - "name": "upsertRow", - "namespace": "tablesDB", - "desc": "", - "auth": { - "Project": [], - "Session": [] - }, - "parameters": [ - "databaseId", - "tableId", - "rowId", - "data", - "permissions", - "transactionId" - ], - "required": [ - "databaseId", - "tableId", - "rowId" - ], - "responses": [ - { - "code": 201, - "model": "#\/definitions\/row" + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "bucketId", + "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", + "required": true, + "type": "string", + "x-example": "<BUCKET_ID>", + "in": "path" + }, + { + "name": "fileId", + "description": "File unique ID.", + "required": true, + "type": "string", + "x-example": "<FILE_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "expire": { + "type": "string", + "description": "Token expiry date", + "default": null, + "x-example": null, + "x-nullable": true } - ], - "description": "Create or update a Row. Before using this route, you should create a new table resource using either a [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable) API or directly from your database console.", - "demo": "tablesdb\/upsert-row.md", - "public": true + } + } + } + ] + } + }, + "\/tokens\/{tokenId}": { + "get": { + "summary": "Get token", + "operationId": "tokensGet", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "tokens" + ], + "description": "Get a token by its unique ID.", + "responses": { + "200": { + "description": "ResourceToken", + "schema": { + "$ref": "#\/definitions\/resourceToken" } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "get", + "group": "tokens", + "weight": 592, + "cookies": false, + "type": "", + "demo": "tokens\/get.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "tokens.read", + "platforms": [ + "console", + "server" ], + "packaging": false, + "public": true, "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "type": "string", - "x-example": "<TABLE_ID>", - "in": "path" - }, - { - "name": "rowId", - "description": "Row ID.", + "name": "tokenId", + "description": "Token ID.", "required": true, "type": "string", - "x-example": "<ROW_ID>", + "x-example": "<TOKEN_ID>", "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "data": { - "type": "object", - "description": "Row data as JSON object. Include all required columns of the row to be created or updated.", - "default": [], - "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":33,\"isAdmin\":false}" - }, - "permissions": { - "type": "array", - "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "default": null, - "x-example": "[\"read(\"any\")\"]", - "x-nullable": true, - "items": { - "type": "string" - } - }, - "transactionId": { - "type": "string", - "description": "Transaction ID for staging the operation.", - "default": null, - "x-example": "<TRANSACTION_ID>", - "x-nullable": true - } - } - } } ] }, "patch": { - "summary": "Update row", - "operationId": "tablesDBUpdateRow", + "summary": "Update token", + "operationId": "tokensUpdate", "consumes": [ "application\/json" ], @@ -35380,76 +40205,53 @@ "application\/json" ], "tags": [ - "tablesDB" + "tokens" ], - "description": "Update a row by its unique ID. Using the patch method you can pass only specific fields that will get updated.", + "description": "Update a token by its unique ID. Use this endpoint to update a token's expiry date.", "responses": { "200": { - "description": "Row", + "description": "ResourceToken", "schema": { - "$ref": "#\/definitions\/row" + "$ref": "#\/definitions\/resourceToken" } } }, "deprecated": false, "x-appwrite": { - "method": "updateRow", - "group": "rows", - "weight": 391, + "method": "update", + "group": "tokens", + "weight": 594, "cookies": false, "type": "", - "demo": "tablesdb\/update-row.md", - "rate-limit": 120, + "demo": "tokens\/update.md", + "rate-limit": 60, "rate-time": 60, "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": [ - "rows.write", - "documents.write" - ], + "scope": "tokens.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/update-row.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "type": "string", - "x-example": "<TABLE_ID>", - "in": "path" - }, - { - "name": "rowId", - "description": "Row ID.", + "name": "tokenId", + "description": "Token unique ID.", "required": true, "type": "string", - "x-example": "<ROW_ID>", + "x-example": "<TOKEN_ID>", "in": "path" }, { @@ -35458,27 +40260,11 @@ "schema": { "type": "object", "properties": { - "data": { - "type": "object", - "description": "Row data as JSON object. Include only columns and value pairs to be updated.", - "default": [], - "x-example": "{\"username\":\"walter.obrien\",\"email\":\"walter.obrien@example.com\",\"fullName\":\"Walter O'Brien\",\"age\":33,\"isAdmin\":false}" - }, - "permissions": { - "type": "array", - "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", - "default": null, - "x-example": "[\"read(\"any\")\"]", - "x-nullable": true, - "items": { - "type": "string" - } - }, - "transactionId": { + "expire": { "type": "string", - "description": "Transaction ID for staging the operation.", + "description": "File token expiry date", "default": null, - "x-example": "<TRANSACTION_ID>", + "x-example": null, "x-nullable": true } } @@ -35487,16 +40273,16 @@ ] }, "delete": { - "summary": "Delete row", - "operationId": "tablesDBDeleteRow", + "summary": "Delete token", + "operationId": "tokensDelete", "consumes": [ "application\/json" ], "produces": [], "tags": [ - "tablesDB" + "tokens" ], - "description": "Delete a row by its unique ID.", + "description": "Delete a token by its unique ID.", "responses": { "204": { "description": "No content" @@ -35504,88 +40290,233 @@ }, "deprecated": false, "x-appwrite": { - "method": "deleteRow", - "group": "rows", - "weight": 395, + "method": "delete", + "group": "tokens", + "weight": 595, "cookies": false, "type": "", - "demo": "tablesdb\/delete-row.md", + "demo": "tokens\/delete.md", "rate-limit": 60, "rate-time": 60, "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": [ - "rows.write", - "documents.write" - ], + "scope": "tokens.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/delete-row.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "databaseId", - "description": "Database ID.", + "name": "tokenId", + "description": "Token ID.", "required": true, "type": "string", - "x-example": "<DATABASE_ID>", + "x-example": "<TOKEN_ID>", "in": "path" - }, + } + ] + } + }, + "\/users": { + "get": { + "summary": "List users", + "operationId": "usersList", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "users" + ], + "description": "Get a list of all the project's users. You can use the query params to filter your results.", + "responses": { + "200": { + "description": "Users List", + "schema": { + "$ref": "#\/definitions\/userList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "list", + "group": "users", + "weight": 115, + "cookies": false, + "type": "", + "demo": "users\/list.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-users.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ { - "name": "tableId", - "description": "Table ID. You can create a new table using the Database service [server integration](https:\/\/appwrite.io\/docs\/references\/cloud\/server-dart\/tablesDB#createTable).", - "required": true, - "type": "string", - "x-example": "<TABLE_ID>", - "in": "path" + "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, email, phone, status, passwordUpdate, registration, emailVerification, phoneVerification, labels", + "required": false, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" }, { - "name": "rowId", - "description": "Row ID.", - "required": true, + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, "type": "string", - "x-example": "<ROW_ID>", - "in": "path" + "x-example": "<SEARCH>", + "default": "", + "in": "query" }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" + } + ] + }, + "post": { + "summary": "Create user", + "operationId": "usersCreate", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "users" + ], + "description": "Create a new user.", + "responses": { + "201": { + "description": "User", + "schema": { + "$ref": "#\/definitions\/user" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "create", + "group": "users", + "weight": 106, + "cookies": false, + "type": "", + "demo": "users\/create.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-user.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "transactionId": { + "userId": { "type": "string", - "description": "Transaction ID for staging the operation.", + "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.", "default": null, - "x-example": "<TRANSACTION_ID>", + "x-example": "<USER_ID>" + }, + "email": { + "type": "string", + "description": "User email.", + "default": null, + "x-example": "email@example.com", + "format": "email", + "x-nullable": true + }, + "phone": { + "type": "string", + "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", + "default": null, + "x-example": "+12065550100", + "format": "phone", "x-nullable": true + }, + "password": { + "type": "string", + "description": "Plain text user password. Must be at least 8 chars.", + "default": "", + "x-example": null + }, + "name": { + "type": "string", + "description": "User name. Max length: 128 chars.", + "default": "", + "x-example": "<NAME>" } - } + }, + "required": [ + "userId" + ] } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}\/{column}\/decrement": { - "patch": { - "summary": "Decrement row column", - "operationId": "tablesDBDecrementRowColumn", + "\/users\/argon2": { + "post": { + "summary": "Create user with Argon2 password", + "operationId": "usersCreateArgon2User", "consumes": [ "application\/json" ], @@ -35593,123 +40524,95 @@ "application\/json" ], "tags": [ - "tablesDB" + "users" ], - "description": "Decrement a specific column of a row by a given value.", + "description": "Create a new user. Password provided must be hashed with the [Argon2](https:\/\/en.wikipedia.org\/wiki\/Argon2) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", "responses": { - "200": { - "description": "Row", + "201": { + "description": "User", "schema": { - "$ref": "#\/definitions\/row" + "$ref": "#\/definitions\/user" } } }, "deprecated": false, "x-appwrite": { - "method": "decrementRowColumn", - "group": "rows", - "weight": 400, + "method": "createArgon2User", + "group": "users", + "weight": 109, "cookies": false, "type": "", - "demo": "tablesdb\/decrement-row-column.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": [ - "rows.write", - "documents.write" - ], + "demo": "users\/create-argon-2-user.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", "platforms": [ - "client", - "server", - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/decrement-row-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-argon2-user.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "JWT": [], "Key": [] } ], "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "type": "string", - "x-example": "<TABLE_ID>", - "in": "path" - }, - { - "name": "rowId", - "description": "Row ID.", - "required": true, - "type": "string", - "x-example": "<ROW_ID>", - "in": "path" - }, - { - "name": "column", - "description": "Column key.", - "required": true, - "type": "string", - "in": "path" - }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "value": { - "type": "number", - "description": "Value to increment the column by. The value must be a number.", - "default": 1, - "x-example": null, - "format": "float" + "userId": { + "type": "string", + "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.", + "default": null, + "x-example": "<USER_ID>" }, - "min": { - "type": "number", - "description": "Minimum value for the column. If the current value is lesser than this value, an exception will be thrown.", + "email": { + "type": "string", + "description": "User email.", "default": null, - "x-example": null, - "format": "float", - "x-nullable": true + "x-example": "email@example.com", + "format": "email" }, - "transactionId": { + "password": { "type": "string", - "description": "Transaction ID for staging the operation.", + "description": "User password hashed using Argon2.", "default": null, - "x-example": "<TRANSACTION_ID>", - "x-nullable": true + "x-example": "password", + "format": "password" + }, + "name": { + "type": "string", + "description": "User name. Max length: 128 chars.", + "default": "", + "x-example": "<NAME>" } - } + }, + "required": [ + "userId", + "email", + "password" + ] } } ] } }, - "\/tablesdb\/{databaseId}\/tables\/{tableId}\/rows\/{rowId}\/{column}\/increment": { - "patch": { - "summary": "Increment row column", - "operationId": "tablesDBIncrementRowColumn", + "\/users\/bcrypt": { + "post": { + "summary": "Create user with bcrypt password", + "operationId": "usersCreateBcryptUser", "consumes": [ "application\/json" ], @@ -35717,176 +40620,145 @@ "application\/json" ], "tags": [ - "tablesDB" + "users" ], - "description": "Increment a specific column of a row by a given value.", + "description": "Create a new user. Password provided must be hashed with the [Bcrypt](https:\/\/en.wikipedia.org\/wiki\/Bcrypt) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", "responses": { - "200": { - "description": "Row", + "201": { + "description": "User", "schema": { - "$ref": "#\/definitions\/row" + "$ref": "#\/definitions\/user" } } }, "deprecated": false, "x-appwrite": { - "method": "incrementRowColumn", - "group": "rows", - "weight": 399, - "cookies": false, - "type": "", - "demo": "tablesdb\/increment-row-column.md", - "rate-limit": 120, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": [ - "rows.write", - "documents.write" - ], + "method": "createBcryptUser", + "group": "users", + "weight": 107, + "cookies": false, + "type": "", + "demo": "users\/create-bcrypt-user.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", "platforms": [ - "client", - "server", - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/tablesdb\/increment-row-column.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-bcrypt-user.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "JWT": [], "Key": [] } ], "parameters": [ - { - "name": "databaseId", - "description": "Database ID.", - "required": true, - "type": "string", - "x-example": "<DATABASE_ID>", - "in": "path" - }, - { - "name": "tableId", - "description": "Table ID.", - "required": true, - "type": "string", - "x-example": "<TABLE_ID>", - "in": "path" - }, - { - "name": "rowId", - "description": "Row ID.", - "required": true, - "type": "string", - "x-example": "<ROW_ID>", - "in": "path" - }, - { - "name": "column", - "description": "Column key.", - "required": true, - "type": "string", - "in": "path" - }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "value": { - "type": "number", - "description": "Value to increment the column by. The value must be a number.", - "default": 1, - "x-example": null, - "format": "float" + "userId": { + "type": "string", + "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.", + "default": null, + "x-example": "<USER_ID>" }, - "max": { - "type": "number", - "description": "Maximum value for the column. If the current value is greater than this value, an error will be thrown.", + "email": { + "type": "string", + "description": "User email.", "default": null, - "x-example": null, - "format": "float", - "x-nullable": true + "x-example": "email@example.com", + "format": "email" }, - "transactionId": { + "password": { "type": "string", - "description": "Transaction ID for staging the operation.", + "description": "User password hashed using Bcrypt.", "default": null, - "x-example": "<TRANSACTION_ID>", - "x-nullable": true + "x-example": "password", + "format": "password" + }, + "name": { + "type": "string", + "description": "User name. Max length: 128 chars.", + "default": "", + "x-example": "<NAME>" } - } + }, + "required": [ + "userId", + "email", + "password" + ] } } ] } }, - "\/teams": { + "\/users\/identities": { "get": { - "summary": "List teams", - "operationId": "teamsList", + "summary": "List identities", + "operationId": "usersListIdentities", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "teams" + "users" ], - "description": "Get a list of all the teams in which the current user is a member. You can use the parameters to filter your results.", + "description": "Get identities for all users.", "responses": { "200": { - "description": "Teams List", + "description": "Identities List", "schema": { - "$ref": "#\/definitions\/teamList" + "$ref": "#\/definitions\/identityList" } } }, "deprecated": false, "x-appwrite": { - "method": "list", - "group": "teams", - "weight": 107, + "method": "listIdentities", + "group": "identities", + "weight": 123, "cookies": false, "type": "", - "demo": "teams\/list.md", + "demo": "users\/list-identities.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "users.read", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/list-teams.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-identities.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "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, total, billingPlan", + "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, "type": "array", "collectionFormat": "multi", @@ -35915,168 +40787,167 @@ "in": "query" } ] - }, - "post": { - "summary": "Create team", - "operationId": "teamsCreate", + } + }, + "\/users\/identities\/{identityId}": { + "delete": { + "summary": "Delete identity", + "operationId": "usersDeleteIdentity", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ - "teams" + "users" ], - "description": "Create a new team. The user who creates the team will automatically be assigned as the owner of the team. Only the users with the owner role can invite new members, add new owners and delete or update the team.", + "description": "Delete an identity by its unique ID.", "responses": { - "201": { - "description": "Team", - "schema": { - "$ref": "#\/definitions\/team" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "create", - "group": "teams", - "weight": 106, + "method": "deleteIdentity", + "group": "identities", + "weight": 146, "cookies": false, "type": "", - "demo": "teams\/create.md", + "demo": "users\/delete-identity.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": "users.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-identity.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "teamId": { - "type": "string", - "description": "Team ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": null, - "x-example": "<TEAM_ID>" - }, - "name": { - "type": "string", - "description": "Team name. Max length: 128 chars.", - "default": null, - "x-example": "<NAME>" - }, - "roles": { - "type": "array", - "description": "Array of strings. Use this param to set the roles in the team for the user who created it. The default role is **owner**. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 32 characters long.", - "default": [ - "owner" - ], - "x-example": null, - "items": { - "type": "string" - } - } - }, - "required": [ - "teamId", - "name" - ] - } + "name": "identityId", + "description": "Identity ID.", + "required": true, + "type": "string", + "x-example": "<IDENTITY_ID>", + "in": "path" } ] } }, - "\/teams\/{teamId}": { - "get": { - "summary": "Get team", - "operationId": "teamsGet", - "consumes": [], + "\/users\/md5": { + "post": { + "summary": "Create user with MD5 password", + "operationId": "usersCreateMD5User", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "teams" + "users" ], - "description": "Get a team by its ID. All team members have read access for this resource.", + "description": "Create a new user. Password provided must be hashed with the [MD5](https:\/\/en.wikipedia.org\/wiki\/MD5) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", "responses": { - "200": { - "description": "Team", + "201": { + "description": "User", "schema": { - "$ref": "#\/definitions\/team" + "$ref": "#\/definitions\/user" } } }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": "teams", + "method": "createMD5User", + "group": "users", "weight": 108, "cookies": false, "type": "", - "demo": "teams\/get.md", + "demo": "users\/create-md-5-user.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "users.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-md5-user.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", - "required": true, - "type": "string", - "x-example": "<TEAM_ID>", - "in": "path" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "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.", + "default": null, + "x-example": "<USER_ID>" + }, + "email": { + "type": "string", + "description": "User email.", + "default": null, + "x-example": "email@example.com", + "format": "email" + }, + "password": { + "type": "string", + "description": "User password hashed using MD5.", + "default": null, + "x-example": "password", + "format": "password" + }, + "name": { + "type": "string", + "description": "User name. Max length: 128 chars.", + "default": "", + "x-example": "<NAME>" + } + }, + "required": [ + "userId", + "email", + "password" + ] + } } ] - }, - "put": { - "summary": "Update name", - "operationId": "teamsUpdateName", + } + }, + "\/users\/phpass": { + "post": { + "summary": "Create user with PHPass password", + "operationId": "usersCreatePHPassUser", "consumes": [ "application\/json" ], @@ -36084,237 +40955,347 @@ "application\/json" ], "tags": [ - "teams" + "users" ], - "description": "Update the team's name by its unique ID.", + "description": "Create a new user. Password provided must be hashed with the [PHPass](https:\/\/www.openwall.com\/phpass\/) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", "responses": { - "200": { - "description": "Team", + "201": { + "description": "User", "schema": { - "$ref": "#\/definitions\/team" + "$ref": "#\/definitions\/user" } } }, "deprecated": false, "x-appwrite": { - "method": "updateName", - "group": "teams", - "weight": 110, + "method": "createPHPassUser", + "group": "users", + "weight": 111, "cookies": false, "type": "", - "demo": "teams\/update-name.md", + "demo": "users\/create-ph-pass-user.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": "users.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-name.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-phpass-user.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "type": "string", - "x-example": "<TEAM_ID>", - "in": "path" - }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "name": { + "userId": { "type": "string", - "description": "New team name. Max length: 128 chars.", + "description": "User ID. Choose a custom ID or pass the string `ID.unique()`to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "default": null, + "x-example": "<USER_ID>" + }, + "email": { + "type": "string", + "description": "User email.", + "default": null, + "x-example": "email@example.com", + "format": "email" + }, + "password": { + "type": "string", + "description": "User password hashed using PHPass.", "default": null, + "x-example": "password", + "format": "password" + }, + "name": { + "type": "string", + "description": "User name. Max length: 128 chars.", + "default": "", "x-example": "<NAME>" } }, "required": [ - "name" + "userId", + "email", + "password" ] } } ] - }, - "delete": { - "summary": "Delete team", - "operationId": "teamsDelete", + } + }, + "\/users\/scrypt": { + "post": { + "summary": "Create user with Scrypt password", + "operationId": "usersCreateScryptUser", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ - "teams" + "users" ], - "description": "Delete a team using its ID. Only team members with the owner role can delete the team.", + "description": "Create a new user. Password provided must be hashed with the [Scrypt](https:\/\/github.com\/Tarsnap\/scrypt) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", "responses": { - "204": { - "description": "No content" + "201": { + "description": "User", + "schema": { + "$ref": "#\/definitions\/user" + } } }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": "teams", + "method": "createScryptUser", + "group": "users", "weight": 112, "cookies": false, "type": "", - "demo": "teams\/delete.md", + "demo": "users\/create-scrypt-user.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": "users.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-scrypt-user.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", - "required": true, - "type": "string", - "x-example": "<TEAM_ID>", - "in": "path" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "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.", + "default": null, + "x-example": "<USER_ID>" + }, + "email": { + "type": "string", + "description": "User email.", + "default": null, + "x-example": "email@example.com", + "format": "email" + }, + "password": { + "type": "string", + "description": "User password hashed using Scrypt.", + "default": null, + "x-example": "password", + "format": "password" + }, + "passwordSalt": { + "type": "string", + "description": "Optional salt used to hash password.", + "default": null, + "x-example": "<PASSWORD_SALT>" + }, + "passwordCpu": { + "type": "integer", + "description": "Optional CPU cost used to hash password.", + "default": null, + "x-example": null, + "format": "int32" + }, + "passwordMemory": { + "type": "integer", + "description": "Optional memory cost used to hash password.", + "default": null, + "x-example": null, + "format": "int32" + }, + "passwordParallel": { + "type": "integer", + "description": "Optional parallelization cost used to hash password.", + "default": null, + "x-example": null, + "format": "int32" + }, + "passwordLength": { + "type": "integer", + "description": "Optional hash length used to hash password.", + "default": null, + "x-example": null, + "format": "int32" + }, + "name": { + "type": "string", + "description": "User name. Max length: 128 chars.", + "default": "", + "x-example": "<NAME>" + } + }, + "required": [ + "userId", + "email", + "password", + "passwordSalt", + "passwordCpu", + "passwordMemory", + "passwordParallel", + "passwordLength" + ] + } } ] } }, - "\/teams\/{teamId}\/memberships": { - "get": { - "summary": "List team memberships", - "operationId": "teamsListMemberships", - "consumes": [], + "\/users\/scrypt-modified": { + "post": { + "summary": "Create user with Scrypt modified password", + "operationId": "usersCreateScryptModifiedUser", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "teams" + "users" ], - "description": "Use this endpoint to list a team's members using the team's ID. All team members have read access to this endpoint. Hide sensitive attributes from the response by toggling membership privacy in the Console.", + "description": "Create a new user. Password provided must be hashed with the [Scrypt Modified](https:\/\/gist.github.com\/Meldiron\/eecf84a0225eccb5a378d45bb27462cc) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", "responses": { - "200": { - "description": "Memberships List", + "201": { + "description": "User", "schema": { - "$ref": "#\/definitions\/membershipList" + "$ref": "#\/definitions\/user" } } }, "deprecated": false, "x-appwrite": { - "method": "listMemberships", - "group": "memberships", - "weight": 114, + "method": "createScryptModifiedUser", + "group": "users", + "weight": 113, "cookies": false, "type": "", - "demo": "teams\/list-memberships.md", + "demo": "users\/create-scrypt-modified-user.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "users.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/list-team-members.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-scrypt-modified-user.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", - "required": true, - "type": "string", - "x-example": "<TEAM_ID>", - "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: userId, teamId, invited, joined, confirm, roles", - "required": false, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "type": "string", - "x-example": "<SEARCH>", - "default": "", - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "userId": { + "type": "string", + "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.", + "default": null, + "x-example": "<USER_ID>" + }, + "email": { + "type": "string", + "description": "User email.", + "default": null, + "x-example": "email@example.com", + "format": "email" + }, + "password": { + "type": "string", + "description": "User password hashed using Scrypt Modified.", + "default": null, + "x-example": "password", + "format": "password" + }, + "passwordSalt": { + "type": "string", + "description": "Salt used to hash password.", + "default": null, + "x-example": "<PASSWORD_SALT>" + }, + "passwordSaltSeparator": { + "type": "string", + "description": "Salt separator used to hash password.", + "default": null, + "x-example": "<PASSWORD_SALT_SEPARATOR>" + }, + "passwordSignerKey": { + "type": "string", + "description": "Signer key used to hash password.", + "default": null, + "x-example": "<PASSWORD_SIGNER_KEY>" + }, + "name": { + "type": "string", + "description": "User name. Max length: 128 chars.", + "default": "", + "x-example": "<NAME>" + } + }, + "required": [ + "userId", + "email", + "password", + "passwordSalt", + "passwordSaltSeparator", + "passwordSignerKey" + ] + } } ] - }, + } + }, + "\/users\/sha": { "post": { - "summary": "Create team membership", - "operationId": "teamsCreateMembership", + "summary": "Create user with SHA password", + "operationId": "usersCreateSHAUser", "consumes": [ "application\/json" ], @@ -36322,285 +41303,235 @@ "application\/json" ], "tags": [ - "teams" + "users" ], - "description": "Invite a new member to join your team. Provide an ID for existing users, or invite unregistered users using an email or phone number. If initiated from a Client SDK, Appwrite will send an email or sms with a link to join the team to the invited user, and an account will be created for them if one doesn't exist. If initiated from a Server SDK, the new member will be added automatically to the team.\n\nYou only need to provide one of a user ID, email, or phone number. Appwrite will prioritize accepting the user ID > email > phone number if you provide more than one of these parameters.\n\nUse the `url` parameter to redirect the user from the invitation email to your app. After the user is redirected, use the [Update Team Membership Status](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/teams#updateMembershipStatus) endpoint to allow the user to accept the invitation to the team. \n\nPlease note that to avoid a [Redirect Attack](https:\/\/github.com\/OWASP\/CheatSheetSeries\/blob\/master\/cheatsheets\/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) Appwrite will accept the only redirect URLs under the domains you have added as a platform on the Appwrite Console.\n", + "description": "Create a new user. Password provided must be hashed with the [SHA](https:\/\/en.wikipedia.org\/wiki\/Secure_Hash_Algorithm) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", "responses": { "201": { - "description": "Membership", + "description": "User", "schema": { - "$ref": "#\/definitions\/membership" + "$ref": "#\/definitions\/user" } } }, "deprecated": false, "x-appwrite": { - "method": "createMembership", - "group": "memberships", - "weight": 113, + "method": "createSHAUser", + "group": "users", + "weight": 110, "cookies": false, "type": "", - "demo": "teams\/create-membership.md", - "rate-limit": 10, + "demo": "users\/create-sha-user.md", + "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": "users.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/create-team-membership.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-sha-user.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ - { - "name": "teamId", - "description": "Team ID.", - "required": true, - "type": "string", - "x-example": "<TEAM_ID>", - "in": "path" - }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "email": { - "type": "string", - "description": "Email of the new team member.", - "default": "", - "x-example": "email@example.com", - "format": "email" - }, "userId": { "type": "string", - "description": "ID of the user to be added to a team.", - "default": "", + "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.", + "default": null, "x-example": "<USER_ID>" }, - "phone": { + "email": { "type": "string", - "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "default": "", - "x-example": "+12065550100", - "format": "phone" + "description": "User email.", + "default": null, + "x-example": "email@example.com", + "format": "email" }, - "roles": { - "type": "array", - "description": "Array of strings. Use this param to set the user roles in the team. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 32 characters long.", + "password": { + "type": "string", + "description": "User password hashed using SHA.", "default": null, - "x-example": null, - "items": { - "type": "string" - } + "x-example": "password", + "format": "password" }, - "url": { + "passwordVersion": { "type": "string", - "description": "URL to redirect the user back to your app from the invitation email. This parameter is not required when an API key is supplied. 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.", + "description": "Optional SHA version used to hash password. Allowed values are: 'sha1', 'sha224', 'sha256', 'sha384', 'sha512\/224', 'sha512\/256', 'sha512', 'sha3-224', 'sha3-256', 'sha3-384', 'sha3-512'", "default": "", - "x-example": "https:\/\/example.com", - "format": "url" + "x-example": "sha1", + "enum": [ + "sha1", + "sha224", + "sha256", + "sha384", + "sha512\/224", + "sha512\/256", + "sha512", + "sha3-224", + "sha3-256", + "sha3-384", + "sha3-512" + ], + "x-enum-name": "PasswordHash", + "x-enum-keys": [] }, "name": { "type": "string", - "description": "Name of the new team member. Max length: 128 chars.", + "description": "User name. Max length: 128 chars.", "default": "", "x-example": "<NAME>" } }, "required": [ - "roles" + "userId", + "email", + "password" ] } } ] } }, - "\/teams\/{teamId}\/memberships\/{membershipId}": { + "\/users\/{userId}": { "get": { - "summary": "Get team membership", - "operationId": "teamsGetMembership", + "summary": "Get user", + "operationId": "usersGet", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "teams" + "users" ], - "description": "Get a team member by the membership unique id. All team members have read access for this resource. Hide sensitive attributes from the response by toggling membership privacy in the Console.", + "description": "Get a user by its unique ID.", "responses": { "200": { - "description": "Membership", + "description": "User", "schema": { - "$ref": "#\/definitions\/membership" + "$ref": "#\/definitions\/user" } } }, "deprecated": false, "x-appwrite": { - "method": "getMembership", - "group": "memberships", - "weight": 115, + "method": "get", + "group": "users", + "weight": 116, "cookies": false, "type": "", - "demo": "teams\/get-membership.md", + "demo": "users\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "users.read", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-member.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", - "required": true, - "type": "string", - "x-example": "<TEAM_ID>", - "in": "path" - }, - { - "name": "membershipId", - "description": "Membership ID.", + "name": "userId", + "description": "User ID.", "required": true, "type": "string", - "x-example": "<MEMBERSHIP_ID>", + "x-example": "<USER_ID>", "in": "path" } ] }, - "patch": { - "summary": "Update membership", - "operationId": "teamsUpdateMembership", + "delete": { + "summary": "Delete user", + "operationId": "usersDelete", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ - "teams" + "users" ], - "description": "Modify the roles of a team member. Only team members with the owner role have access to this endpoint. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions).\n", + "description": "Delete a user by its unique ID, thereby releasing it's ID. Since ID is released and can be reused, all user-related resources like documents or storage files should be deleted before user deletion. If you want to keep ID reserved, use the [updateStatus](https:\/\/appwrite.io\/docs\/server\/users#usersUpdateStatus) endpoint instead.", "responses": { - "200": { - "description": "Membership", - "schema": { - "$ref": "#\/definitions\/membership" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateMembership", - "group": "memberships", - "weight": 116, + "method": "delete", + "group": "users", + "weight": 144, "cookies": false, "type": "", - "demo": "teams\/update-membership.md", + "demo": "users\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": "users.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", - "required": true, - "type": "string", - "x-example": "<TEAM_ID>", - "in": "path" - }, - { - "name": "membershipId", - "description": "Membership ID.", + "name": "userId", + "description": "User ID.", "required": true, "type": "string", - "x-example": "<MEMBERSHIP_ID>", + "x-example": "<USER_ID>", "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "roles": { - "type": "array", - "description": "An array of strings. Use this param to set the user's roles in the team. A role can be any string. Learn more about [roles and permissions](https:\/\/appwrite.io\/docs\/permissions). Maximum of 100 roles are allowed, each 32 characters long.", - "default": null, - "x-example": null, - "items": { - "type": "string" - } - } - }, - "required": [ - "roles" - ] - } } ] - }, - "delete": { - "summary": "Delete team membership", - "operationId": "teamsDeleteMembership", + } + }, + "\/users\/{userId}\/email": { + "patch": { + "summary": "Update email", + "operationId": "usersUpdateEmail", "consumes": [ "application\/json" ], @@ -36608,71 +41539,82 @@ "application\/json" ], "tags": [ - "teams" + "users" ], - "description": "This endpoint allows a user to leave a team or for a team owner to delete the membership of any other team member. You can also use this endpoint to delete a user membership even if it is not accepted.", + "description": "Update the user email by its unique ID.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "User", + "schema": { + "$ref": "#\/definitions\/user" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteMembership", - "group": null, - "weight": 555, + "method": "updateEmail", + "group": "users", + "weight": 129, "cookies": false, "type": "", - "demo": "teams\/delete-membership.md", + "demo": "users\/update-email.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": "users.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/delete-team-membership.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-email.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "Key": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "userId", + "description": "User ID.", "required": true, "type": "string", - "x-example": "<TEAM_ID>", + "x-example": "<USER_ID>", "in": "path" }, { - "name": "membershipId", - "description": "Membership ID.", - "required": true, - "type": "string", - "x-example": "<MEMBERSHIP_ID>", - "in": "path" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "email": { + "type": "string", + "description": "User email.", + "default": null, + "x-example": "email@example.com", + "format": "email" + } + }, + "required": [ + "email" + ] + } } ] } }, - "\/teams\/{teamId}\/memberships\/{membershipId}\/status": { - "patch": { - "summary": "Update team membership status", - "operationId": "teamsUpdateMembershipStatus", + "\/users\/{userId}\/jwts": { + "post": { + "summary": "Create user JWT", + "operationId": "usersCreateJWT", "consumes": [ "application\/json" ], @@ -36680,64 +41622,54 @@ "application\/json" ], "tags": [ - "teams" + "users" ], - "description": "Use this endpoint to allow a user to accept an invitation to join a team after being redirected back to your app from the invitation email received by the user.\n\nIf the request is successful, a session for the user is automatically created.\n", + "description": "Use this endpoint to create a JSON Web Token for user by its unique ID. You can use the resulting JWT to authenticate on behalf of the user. The JWT secret will become invalid if the session it uses gets deleted.", "responses": { - "200": { - "description": "Membership", + "201": { + "description": "JWT", "schema": { - "$ref": "#\/definitions\/membership" + "$ref": "#\/definitions\/jwt" } } }, "deprecated": false, "x-appwrite": { - "method": "updateMembershipStatus", - "group": "memberships", - "weight": 117, + "method": "createJWT", + "group": "sessions", + "weight": 147, "cookies": false, "type": "", - "demo": "teams\/update-membership-status.md", + "demo": "users\/create-jwt.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "public", + "scope": "users.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-membership-status.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-user-jwt.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", - "required": true, - "type": "string", - "x-example": "<TEAM_ID>", - "in": "path" - }, - { - "name": "membershipId", - "description": "Membership ID.", + "name": "userId", + "description": "User ID.", "required": true, "type": "string", - "x-example": "<MEMBERSHIP_ID>", + "x-example": "<USER_ID>", "in": "path" }, { @@ -36746,212 +41678,232 @@ "schema": { "type": "object", "properties": { - "userId": { + "sessionId": { "type": "string", - "description": "User ID.", - "default": null, - "x-example": "<USER_ID>" + "description": "Session ID. Use the string 'recent' to use the most recent session. Defaults to the most recent session.", + "default": "", + "x-example": "<SESSION_ID>" }, - "secret": { - "type": "string", - "description": "Secret key.", - "default": null, - "x-example": "<SECRET>" + "duration": { + "type": "integer", + "description": "Time in seconds before JWT expires. Default duration is 900 seconds, and maximum is 3600 seconds.", + "default": 900, + "x-example": 0, + "format": "int32" } - }, - "required": [ - "userId", - "secret" - ] + } } } ] } }, - "\/teams\/{teamId}\/prefs": { - "get": { - "summary": "Get team preferences", - "operationId": "teamsGetPrefs", - "consumes": [], + "\/users\/{userId}\/labels": { + "put": { + "summary": "Update user labels", + "operationId": "usersUpdateLabels", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "teams" + "users" ], - "description": "Get the team's shared preferences by its unique ID. If a preference doesn't need to be shared by all team members, prefer storing them in [user preferences](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#getPrefs).", + "description": "Update the user labels by its unique ID. \n\nLabels can be used to grant access to resources. While teams are a way for user's to share access to a resource, labels can be defined by the developer to grant access without an invitation. See the [Permissions docs](https:\/\/appwrite.io\/docs\/permissions) for more info.", "responses": { "200": { - "description": "Preferences", + "description": "User", "schema": { - "$ref": "#\/definitions\/preferences" + "$ref": "#\/definitions\/user" } } }, "deprecated": false, "x-appwrite": { - "method": "getPrefs", - "group": "teams", - "weight": 109, + "method": "updateLabels", + "group": "users", + "weight": 125, "cookies": false, "type": "", - "demo": "teams\/get-prefs.md", + "demo": "users\/update-labels.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.read", + "scope": "users.write", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/get-team-prefs.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-labels.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "userId", + "description": "User ID.", "required": true, "type": "string", - "x-example": "<TEAM_ID>", + "x-example": "<USER_ID>", "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "labels": { + "type": "array", + "description": "Array of user labels. Replaces the previous labels. Maximum of 1000 labels are allowed, each up to 36 alphanumeric characters long.", + "default": null, + "x-example": null, + "items": { + "type": "string" + } + } + }, + "required": [ + "labels" + ] + } } ] - }, - "put": { - "summary": "Update preferences", - "operationId": "teamsUpdatePrefs", - "consumes": [ - "application\/json" - ], + } + }, + "\/users\/{userId}\/logs": { + "get": { + "summary": "List user logs", + "operationId": "usersListLogs", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "teams" + "users" ], - "description": "Update the team's preferences by its unique ID. The object you pass is stored as is and replaces any previous value. The maximum allowed prefs size is 64kB and throws an error if exceeded.", + "description": "Get the user activity logs list by its unique ID.", "responses": { "200": { - "description": "Preferences", + "description": "Logs List", "schema": { - "$ref": "#\/definitions\/preferences" + "$ref": "#\/definitions\/logList" } } }, "deprecated": false, "x-appwrite": { - "method": "updatePrefs", - "group": "teams", - "weight": 111, + "method": "listLogs", + "group": "logs", + "weight": 121, "cookies": false, "type": "", - "demo": "teams\/update-prefs.md", + "demo": "users\/list-logs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "teams.write", + "scope": "users.read", "platforms": [ "console", - "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/teams\/update-team-prefs.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-user-logs.md", "auth": { "Project": [], - "Session": [] + "Key": [] } }, "security": [ { "Project": [], - "Session": [], - "JWT": [] + "Key": [] } ], "parameters": [ { - "name": "teamId", - "description": "Team ID.", + "name": "userId", + "description": "User ID.", "required": true, "type": "string", - "x-example": "<TEAM_ID>", + "x-example": "<USER_ID>", "in": "path" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "prefs": { - "type": "object", - "description": "Prefs key-value JSON object.", - "default": {}, - "x-example": "{}" - } - }, - "required": [ - "prefs" - ] - } + "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, + "type": "array", + "collectionFormat": "multi", + "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, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" } ] } }, - "\/tokens\/buckets\/{bucketId}\/files\/{fileId}": { + "\/users\/{userId}\/memberships": { "get": { - "summary": "List tokens", - "operationId": "tokensList", + "summary": "List user memberships", + "operationId": "usersListMemberships", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "tokens" + "users" ], - "description": "List all the tokens created for a specific file or bucket. You can use the query params to filter your results.", + "description": "Get the user membership list by its unique ID.", "responses": { "200": { - "description": "Resource Tokens List", + "description": "Memberships List", "schema": { - "$ref": "#\/definitions\/resourceTokenList" + "$ref": "#\/definitions\/membershipList" } } }, "deprecated": false, "x-appwrite": { - "method": "list", - "group": "files", - "weight": 525, + "method": "listMemberships", + "group": "memberships", + "weight": 120, "cookies": false, "type": "", - "demo": "tokens\/list.md", + "demo": "users\/list-memberships.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "tokens.read", + "scope": "users.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-user-memberships.md", "auth": { "Project": [], "Key": [] @@ -36965,24 +41917,16 @@ ], "parameters": [ { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", - "required": true, - "type": "string", - "x-example": "<BUCKET_ID>", - "in": "path" - }, - { - "name": "fileId", - "description": "File unique ID.", + "name": "userId", + "description": "User ID.", "required": true, "type": "string", - "x-example": "<FILE_ID>", + "x-example": "<USER_ID>", "in": "path" }, { "name": "queries", - "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long. You may filter on the following attributes: expire", + "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, teamId, invited, joined, confirm, roles", "required": false, "type": "array", "collectionFormat": "multi", @@ -36992,6 +41936,15 @@ "default": [], "in": "query" }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "type": "string", + "x-example": "<SEARCH>", + "default": "", + "in": "query" + }, { "name": "total", "description": "When set to false, the total count returned will be 0 and will not be calculated.", @@ -37002,10 +41955,12 @@ "in": "query" } ] - }, - "post": { - "summary": "Create file token", - "operationId": "tokensCreateFileToken", + } + }, + "\/users\/{userId}\/mfa": { + "patch": { + "summary": "Update MFA", + "operationId": "usersUpdateMfa", "consumes": [ "application\/json" ], @@ -37013,35 +41968,98 @@ "application\/json" ], "tags": [ - "tokens" + "users" ], - "description": "Create a new token. A token is linked to a file. Token can be passed as a request URL search parameter.", + "description": "Enable or disable MFA on a user account.", "responses": { - "201": { - "description": "ResourceToken", + "200": { + "description": "User", "schema": { - "$ref": "#\/definitions\/resourceToken" + "$ref": "#\/definitions\/user" } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "createFileToken", - "group": "files", - "weight": 523, + "method": "updateMfa", + "group": "users", + "weight": 134, "cookies": false, "type": "", - "demo": "tokens\/create-file-token.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "tokens.write", + "demo": "users\/update-mfa.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", "platforms": [ "console", "server" ], "packaging": false, - "public": true, + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-mfa.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.updateMFA" + }, + "methods": [ + { + "name": "updateMfa", + "namespace": "users", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId", + "mfa" + ], + "required": [ + "userId", + "mfa" + ], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/user" + } + ], + "description": "Enable or disable MFA on a user account.", + "demo": "users\/update-mfa.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.updateMFA" + } + }, + { + "name": "updateMFA", + "namespace": "users", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId", + "mfa" + ], + "required": [ + "userId", + "mfa" + ], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/user" + } + ], + "description": "Enable or disable MFA on a user account.", + "demo": "users\/update-mfa.md", + "public": true + } + ], "auth": { "Project": [], "Key": [] @@ -37055,19 +42073,11 @@ ], "parameters": [ { - "name": "bucketId", - "description": "Storage bucket unique ID. You can create a new storage bucket using the Storage service [server integration](https:\/\/appwrite.io\/docs\/server\/storage#createBucket).", - "required": true, - "type": "string", - "x-example": "<BUCKET_ID>", - "in": "path" - }, - { - "name": "fileId", - "description": "File unique ID.", + "name": "userId", + "description": "User ID.", "required": true, "type": "string", - "x-example": "<FILE_ID>", + "x-example": "<USER_ID>", "in": "path" }, { @@ -37076,57 +42086,250 @@ "schema": { "type": "object", "properties": { - "expire": { - "type": "string", - "description": "Token expiry date", + "mfa": { + "type": "boolean", + "description": "Enable or disable MFA.", "default": null, - "x-example": null, - "x-nullable": true + "x-example": false + } + }, + "required": [ + "mfa" + ] + } + } + ] + } + }, + "\/users\/{userId}\/mfa\/authenticators\/{type}": { + "delete": { + "summary": "Delete authenticator", + "operationId": "usersDeleteMfaAuthenticator", + "consumes": [ + "application\/json" + ], + "produces": [], + "tags": [ + "users" + ], + "description": "Delete an authenticator app.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": true, + "x-appwrite": { + "method": "deleteMfaAuthenticator", + "group": "mfa", + "weight": 139, + "cookies": false, + "type": "", + "demo": "users\/delete-mfa-authenticator.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-mfa-authenticator.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.deleteMFAAuthenticator" + }, + "methods": [ + { + "name": "deleteMfaAuthenticator", + "namespace": "users", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId", + "type" + ], + "required": [ + "userId", + "type" + ], + "responses": [ + { + "code": 204 } + ], + "description": "Delete an authenticator app.", + "demo": "users\/delete-mfa-authenticator.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.deleteMFAAuthenticator" } + }, + { + "name": "deleteMFAAuthenticator", + "namespace": "users", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId", + "type" + ], + "required": [ + "userId", + "type" + ], + "responses": [ + { + "code": 204 + } + ], + "description": "Delete an authenticator app.", + "demo": "users\/delete-mfa-authenticator.md", + "public": true } + ], + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "type": "string", + "x-example": "<USER_ID>", + "in": "path" + }, + { + "name": "type", + "description": "Type of authenticator.", + "required": true, + "type": "string", + "x-example": "totp", + "enum": [ + "totp" + ], + "x-enum-name": "AuthenticatorType", + "x-enum-keys": [], + "in": "path" } ] } }, - "\/tokens\/{tokenId}": { + "\/users\/{userId}\/mfa\/factors": { "get": { - "summary": "Get token", - "operationId": "tokensGet", + "summary": "List factors", + "operationId": "usersListMfaFactors", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "tokens" + "users" ], - "description": "Get a token by its unique ID.", + "description": "List the factors available on the account to be used as a MFA challange.", "responses": { "200": { - "description": "ResourceToken", + "description": "MFAFactors", "schema": { - "$ref": "#\/definitions\/resourceToken" + "$ref": "#\/definitions\/mfaFactors" + } + } + }, + "deprecated": true, + "x-appwrite": { + "method": "listMfaFactors", + "group": "mfa", + "weight": 135, + "cookies": false, + "type": "", + "demo": "users\/list-mfa-factors.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-mfa-factors.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.listMFAFactors" + }, + "methods": [ + { + "name": "listMfaFactors", + "namespace": "users", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/mfaFactors" + } + ], + "description": "List the factors available on the account to be used as a MFA challange.", + "demo": "users\/list-mfa-factors.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.listMFAFactors" + } + }, + { + "name": "listMFAFactors", + "namespace": "users", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/mfaFactors" + } + ], + "description": "List the factors available on the account to be used as a MFA challange.", + "demo": "users\/list-mfa-factors.md", + "public": true } - } - }, - "deprecated": false, - "x-appwrite": { - "method": "get", - "group": "tokens", - "weight": 524, - "cookies": false, - "type": "", - "demo": "tokens\/get.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "tokens.read", - "platforms": [ - "console", - "server" ], - "packaging": false, - "public": true, "auth": { "Project": [], "Key": [] @@ -37140,54 +42343,113 @@ ], "parameters": [ { - "name": "tokenId", - "description": "Token ID.", + "name": "userId", + "description": "User ID.", "required": true, "type": "string", - "x-example": "<TOKEN_ID>", + "x-example": "<USER_ID>", "in": "path" } ] - }, - "patch": { - "summary": "Update token", - "operationId": "tokensUpdate", - "consumes": [ - "application\/json" - ], + } + }, + "\/users\/{userId}\/mfa\/recovery-codes": { + "get": { + "summary": "Get MFA recovery codes", + "operationId": "usersGetMfaRecoveryCodes", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "tokens" + "users" ], - "description": "Update a token by its unique ID. Use this endpoint to update a token's expiry date.", + "description": "Get recovery codes that can be used as backup for MFA flow by User ID. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", "responses": { "200": { - "description": "ResourceToken", + "description": "MFA Recovery Codes", "schema": { - "$ref": "#\/definitions\/resourceToken" + "$ref": "#\/definitions\/mfaRecoveryCodes" } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "update", - "group": "tokens", - "weight": 526, + "method": "getMfaRecoveryCodes", + "group": "mfa", + "weight": 136, "cookies": false, "type": "", - "demo": "tokens\/update.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "tokens.write", + "demo": "users\/get-mfa-recovery-codes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.read", "platforms": [ "console", "server" ], "packaging": false, - "public": true, + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-mfa-recovery-codes.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.getMFARecoveryCodes" + }, + "methods": [ + { + "name": "getMfaRecoveryCodes", + "namespace": "users", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/mfaRecoveryCodes" + } + ], + "description": "Get recovery codes that can be used as backup for MFA flow by User ID. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", + "demo": "users\/get-mfa-recovery-codes.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.getMFARecoveryCodes" + } + }, + { + "name": "getMFARecoveryCodes", + "namespace": "users", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/mfaRecoveryCodes" + } + ], + "description": "Get recovery codes that can be used as backup for MFA flow by User ID. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", + "demo": "users\/get-mfa-recovery-codes.md", + "public": true + } + ], "auth": { "Project": [], "Key": [] @@ -37201,65 +42463,113 @@ ], "parameters": [ { - "name": "tokenId", - "description": "Token unique ID.", + "name": "userId", + "description": "User ID.", "required": true, "type": "string", - "x-example": "<TOKEN_ID>", + "x-example": "<USER_ID>", "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "expire": { - "type": "string", - "description": "File token expiry date", - "default": null, - "x-example": null, - "x-nullable": true - } - } - } } ] }, - "delete": { - "summary": "Delete token", - "operationId": "tokensDelete", + "put": { + "summary": "Update MFA recovery codes (regenerate)", + "operationId": "usersUpdateMfaRecoveryCodes", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ - "tokens" + "users" ], - "description": "Delete a token by its unique ID.", + "description": "Regenerate recovery codes that can be used as backup for MFA flow by User ID. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", "responses": { - "204": { - "description": "No content" + "200": { + "description": "MFA Recovery Codes", + "schema": { + "$ref": "#\/definitions\/mfaRecoveryCodes" + } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "delete", - "group": "tokens", - "weight": 527, + "method": "updateMfaRecoveryCodes", + "group": "mfa", + "weight": 138, "cookies": false, "type": "", - "demo": "tokens\/delete.md", - "rate-limit": 60, - "rate-time": 60, - "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", - "scope": "tokens.write", + "demo": "users\/update-mfa-recovery-codes.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", "platforms": [ "console", "server" ], "packaging": false, - "public": true, + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-mfa-recovery-codes.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.updateMFARecoveryCodes" + }, + "methods": [ + { + "name": "updateMfaRecoveryCodes", + "namespace": "users", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/mfaRecoveryCodes" + } + ], + "description": "Regenerate recovery codes that can be used as backup for MFA flow by User ID. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", + "demo": "users\/update-mfa-recovery-codes.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.updateMFARecoveryCodes" + } + }, + { + "name": "updateMFARecoveryCodes", + "namespace": "users", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 200, + "model": "#\/definitions\/mfaRecoveryCodes" + } + ], + "description": "Regenerate recovery codes that can be used as backup for MFA flow by User ID. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", + "demo": "users\/update-mfa-recovery-codes.md", + "public": false + } + ], "auth": { "Project": [], "Key": [] @@ -37273,55 +42583,113 @@ ], "parameters": [ { - "name": "tokenId", - "description": "Token ID.", + "name": "userId", + "description": "User ID.", "required": true, "type": "string", - "x-example": "<TOKEN_ID>", + "x-example": "<USER_ID>", "in": "path" } ] - } - }, - "\/users": { - "get": { - "summary": "List users", - "operationId": "usersList", - "consumes": [], + }, + "patch": { + "summary": "Create MFA recovery codes", + "operationId": "usersCreateMfaRecoveryCodes", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ "users" ], - "description": "Get a list of all the project's users. You can use the query params to filter your results.", + "description": "Generate recovery codes used as backup for MFA flow for User ID. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method by client SDK.", "responses": { - "200": { - "description": "Users List", + "201": { + "description": "MFA Recovery Codes", "schema": { - "$ref": "#\/definitions\/userList" + "$ref": "#\/definitions\/mfaRecoveryCodes" } } }, - "deprecated": false, + "deprecated": true, "x-appwrite": { - "method": "list", - "group": "users", - "weight": 129, + "method": "createMfaRecoveryCodes", + "group": "mfa", + "weight": 137, "cookies": false, "type": "", - "demo": "users\/list.md", + "demo": "users\/create-mfa-recovery-codes.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": "users.write", "platforms": [ "console", "server" ], "packaging": false, - "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-users.md", + "public": false, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-mfa-recovery-codes.md", + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.createMFARecoveryCodes" + }, + "methods": [ + { + "name": "createMfaRecoveryCodes", + "namespace": "users", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/mfaRecoveryCodes" + } + ], + "description": "Generate recovery codes used as backup for MFA flow for User ID. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method by client SDK.", + "demo": "users\/create-mfa-recovery-codes.md", + "public": false, + "deprecated": { + "since": "1.8.0", + "replaceWith": "users.createMFARecoveryCodes" + } + }, + { + "name": "createMFARecoveryCodes", + "namespace": "users", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "userId" + ], + "required": [ + "userId" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/mfaRecoveryCodes" + } + ], + "description": "Generate recovery codes used as backup for MFA flow for User ID. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method by client SDK.", + "demo": "users\/create-mfa-recovery-codes.md", + "public": true + } + ], "auth": { "Project": [], "Key": [] @@ -37335,40 +42703,20 @@ ], "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, email, phone, status, passwordUpdate, registration, emailVerification, phoneVerification, labels", - "required": false, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, + "name": "userId", + "description": "User ID.", + "required": true, "type": "string", - "x-example": "<SEARCH>", - "default": "", - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" + "x-example": "<USER_ID>", + "in": "path" } ] - }, - "post": { - "summary": "Create user", - "operationId": "usersCreate", + } + }, + "\/users\/{userId}\/name": { + "patch": { + "summary": "Update name", + "operationId": "usersUpdateName", "consumes": [ "application\/json" ], @@ -37378,9 +42726,9 @@ "tags": [ "users" ], - "description": "Create a new user.", + "description": "Update the user name by its unique ID.", "responses": { - "201": { + "200": { "description": "User", "schema": { "$ref": "#\/definitions\/user" @@ -37389,12 +42737,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "create", + "method": "updateName", "group": "users", - "weight": 120, + "weight": 127, "cookies": false, "type": "", - "demo": "users\/create.md", + "demo": "users\/update-name.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -37405,7 +42753,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-user.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-name.md", "auth": { "Project": [], "Key": [] @@ -37418,59 +42766,39 @@ } ], "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "type": "string", + "x-example": "<USER_ID>", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "userId": { - "type": "string", - "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.", - "default": null, - "x-example": "<USER_ID>" - }, - "email": { - "type": "string", - "description": "User email.", - "default": null, - "x-example": "email@example.com", - "format": "email", - "x-nullable": true - }, - "phone": { - "type": "string", - "description": "Phone number. Format this number with a leading '+' and a country code, e.g., +16175551212.", - "default": null, - "x-example": "+12065550100", - "format": "phone", - "x-nullable": true - }, - "password": { - "type": "string", - "description": "Plain text user password. Must be at least 8 chars.", - "default": "", - "x-example": null - }, "name": { "type": "string", "description": "User name. Max length: 128 chars.", - "default": "", + "default": null, "x-example": "<NAME>" } }, "required": [ - "userId" + "name" ] } } ] } }, - "\/users\/argon2": { - "post": { - "summary": "Create user with Argon2 password", - "operationId": "usersCreateArgon2User", + "\/users\/{userId}\/password": { + "patch": { + "summary": "Update password", + "operationId": "usersUpdatePassword", "consumes": [ "application\/json" ], @@ -37480,9 +42808,9 @@ "tags": [ "users" ], - "description": "Create a new user. Password provided must be hashed with the [Argon2](https:\/\/en.wikipedia.org\/wiki\/Argon2) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "description": "Update the user password by its unique ID.", "responses": { - "201": { + "200": { "description": "User", "schema": { "$ref": "#\/definitions\/user" @@ -37491,12 +42819,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "createArgon2User", + "method": "updatePassword", "group": "users", - "weight": 123, + "weight": 128, "cookies": false, "type": "", - "demo": "users\/create-argon-2-user.md", + "demo": "users\/update-password.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -37507,7 +42835,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-argon2-user.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-password.md", "auth": { "Project": [], "Key": [] @@ -37520,42 +42848,28 @@ } ], "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "type": "string", + "x-example": "<USER_ID>", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "userId": { - "type": "string", - "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.", - "default": null, - "x-example": "<USER_ID>" - }, - "email": { - "type": "string", - "description": "User email.", - "default": null, - "x-example": "email@example.com", - "format": "email" - }, "password": { "type": "string", - "description": "User password hashed using Argon2.", + "description": "New user password. Must be at least 8 chars.", "default": null, - "x-example": "password", - "format": "password" - }, - "name": { - "type": "string", - "description": "User name. Max length: 128 chars.", - "default": "", - "x-example": "<NAME>" + "x-example": null } }, - "required": [ - "userId", - "email", + "required": [ "password" ] } @@ -37563,10 +42877,10 @@ ] } }, - "\/users\/bcrypt": { - "post": { - "summary": "Create user with bcrypt password", - "operationId": "usersCreateBcryptUser", + "\/users\/{userId}\/phone": { + "patch": { + "summary": "Update phone", + "operationId": "usersUpdatePhone", "consumes": [ "application\/json" ], @@ -37576,9 +42890,9 @@ "tags": [ "users" ], - "description": "Create a new user. Password provided must be hashed with the [Bcrypt](https:\/\/en.wikipedia.org\/wiki\/Bcrypt) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "description": "Update the user phone by its unique ID.", "responses": { - "201": { + "200": { "description": "User", "schema": { "$ref": "#\/definitions\/user" @@ -37587,12 +42901,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "createBcryptUser", + "method": "updatePhone", "group": "users", - "weight": 121, + "weight": 130, "cookies": false, "type": "", - "demo": "users\/create-bcrypt-user.md", + "demo": "users\/update-phone.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -37603,7 +42917,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-bcrypt-user.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-phone.md", "auth": { "Project": [], "Key": [] @@ -37616,53 +42930,40 @@ } ], "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "type": "string", + "x-example": "<USER_ID>", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "userId": { - "type": "string", - "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.", - "default": null, - "x-example": "<USER_ID>" - }, - "email": { - "type": "string", - "description": "User email.", - "default": null, - "x-example": "email@example.com", - "format": "email" - }, - "password": { + "number": { "type": "string", - "description": "User password hashed using Bcrypt.", + "description": "User phone number.", "default": null, - "x-example": "password", - "format": "password" - }, - "name": { - "type": "string", - "description": "User name. Max length: 128 chars.", - "default": "", - "x-example": "<NAME>" + "x-example": "+12065550100", + "format": "phone" } }, "required": [ - "userId", - "email", - "password" + "number" ] } } ] } }, - "\/users\/identities": { + "\/users\/{userId}\/prefs": { "get": { - "summary": "List identities", - "operationId": "usersListIdentities", + "summary": "Get user preferences", + "operationId": "usersGetPrefs", "consumes": [], "produces": [ "application\/json" @@ -37670,23 +42971,23 @@ "tags": [ "users" ], - "description": "Get identities for all users.", + "description": "Get the user preferences by its unique ID.", "responses": { "200": { - "description": "Identities List", + "description": "Preferences", "schema": { - "$ref": "#\/definitions\/identityList" + "$ref": "#\/definitions\/preferences" } } }, "deprecated": false, "x-appwrite": { - "method": "listIdentities", - "group": "identities", - "weight": 137, + "method": "getPrefs", + "group": "users", + "weight": 117, "cookies": false, "type": "", - "demo": "users\/list-identities.md", + "demo": "users\/get-prefs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -37697,7 +42998,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-identities.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user-prefs.md", "auth": { "Project": [], "Key": [] @@ -37711,63 +43012,44 @@ ], "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, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, + "name": "userId", + "description": "User ID.", + "required": true, "type": "string", - "x-example": "<SEARCH>", - "default": "", - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" + "x-example": "<USER_ID>", + "in": "path" } ] - } - }, - "\/users\/identities\/{identityId}": { - "delete": { - "summary": "Delete identity", - "operationId": "usersDeleteIdentity", + }, + "patch": { + "summary": "Update user preferences", + "operationId": "usersUpdatePrefs", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ "users" ], - "description": "Delete an identity by its unique ID.", + "description": "Update the user preferences by its unique ID. 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": { - "204": { - "description": "No content" + "200": { + "description": "Preferences", + "schema": { + "$ref": "#\/definitions\/preferences" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteIdentity", - "group": "identities", - "weight": 160, + "method": "updatePrefs", + "group": "users", + "weight": 132, "cookies": false, "type": "", - "demo": "users\/delete-identity.md", + "demo": "users\/update-prefs.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -37778,7 +43060,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-identity.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-prefs.md", "auth": { "Project": [], "Key": [] @@ -37792,57 +43074,73 @@ ], "parameters": [ { - "name": "identityId", - "description": "Identity ID.", + "name": "userId", + "description": "User ID.", "required": true, "type": "string", - "x-example": "<IDENTITY_ID>", + "x-example": "<USER_ID>", "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "prefs": { + "type": "object", + "description": "Prefs key-value JSON object.", + "default": {}, + "x-example": "{}" + } + }, + "required": [ + "prefs" + ] + } } ] } }, - "\/users\/md5": { - "post": { - "summary": "Create user with MD5 password", - "operationId": "usersCreateMD5User", - "consumes": [ - "application\/json" - ], + "\/users\/{userId}\/sessions": { + "get": { + "summary": "List user sessions", + "operationId": "usersListSessions", + "consumes": [], "produces": [ "application\/json" ], "tags": [ "users" ], - "description": "Create a new user. Password provided must be hashed with the [MD5](https:\/\/en.wikipedia.org\/wiki\/MD5) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "description": "Get the user sessions list by its unique ID.", "responses": { - "201": { - "description": "User", + "200": { + "description": "Sessions List", "schema": { - "$ref": "#\/definitions\/user" + "$ref": "#\/definitions\/sessionList" } } }, "deprecated": false, "x-appwrite": { - "method": "createMD5User", - "group": "users", - "weight": 122, + "method": "listSessions", + "group": "sessions", + "weight": 119, "cookies": false, "type": "", - "demo": "users\/create-md-5-user.md", + "demo": "users\/list-sessions.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "users.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-md5-user.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-user-sessions.md", "auth": { "Project": [], "Key": [] @@ -37856,52 +43154,27 @@ ], "parameters": [ { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "userId": { - "type": "string", - "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.", - "default": null, - "x-example": "<USER_ID>" - }, - "email": { - "type": "string", - "description": "User email.", - "default": null, - "x-example": "email@example.com", - "format": "email" - }, - "password": { - "type": "string", - "description": "User password hashed using MD5.", - "default": null, - "x-example": "password", - "format": "password" - }, - "name": { - "type": "string", - "description": "User name. Max length: 128 chars.", - "default": "", - "x-example": "<NAME>" - } - }, - "required": [ - "userId", - "email", - "password" - ] - } + "name": "userId", + "description": "User ID.", + "required": true, + "type": "string", + "x-example": "<USER_ID>", + "in": "path" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" } ] - } - }, - "\/users\/phpass": { + }, "post": { - "summary": "Create user with PHPass password", - "operationId": "usersCreatePHPassUser", + "summary": "Create session", + "operationId": "usersCreateSession", "consumes": [ "application\/json" ], @@ -37911,23 +43184,23 @@ "tags": [ "users" ], - "description": "Create a new user. Password provided must be hashed with the [PHPass](https:\/\/www.openwall.com\/phpass\/) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "description": "Creates a session for a user. Returns an immediately usable session object.\n\nIf you want to generate a token for a custom authentication flow, use the [POST \/users\/{userId}\/tokens](https:\/\/appwrite.io\/docs\/server\/users#createToken) endpoint.", "responses": { "201": { - "description": "User", + "description": "Session", "schema": { - "$ref": "#\/definitions\/user" + "$ref": "#\/definitions\/session" } } }, "deprecated": false, "x-appwrite": { - "method": "createPHPassUser", - "group": "users", - "weight": 125, + "method": "createSession", + "group": "sessions", + "weight": 140, "cookies": false, "type": "", - "demo": "users\/create-ph-pass-user.md", + "demo": "users\/create-session.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -37938,7 +43211,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-phpass-user.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-session.md", "auth": { "Project": [], "Key": [] @@ -37952,78 +43225,98 @@ ], "parameters": [ { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "userId": { - "type": "string", - "description": "User ID. Choose a custom ID or pass the string `ID.unique()`to auto generate it. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", - "default": null, - "x-example": "<USER_ID>" - }, - "email": { - "type": "string", - "description": "User email.", - "default": null, - "x-example": "email@example.com", - "format": "email" - }, - "password": { - "type": "string", - "description": "User password hashed using PHPass.", - "default": null, - "x-example": "password", - "format": "password" - }, - "name": { - "type": "string", - "description": "User name. Max length: 128 chars.", - "default": "", - "x-example": "<NAME>" - } - }, - "required": [ - "userId", - "email", - "password" - ] - } + "name": "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.", + "required": true, + "type": "string", + "x-example": "<USER_ID>", + "in": "path" } ] - } - }, - "\/users\/scrypt": { - "post": { - "summary": "Create user with Scrypt password", - "operationId": "usersCreateScryptUser", + }, + "delete": { + "summary": "Delete user sessions", + "operationId": "usersDeleteSessions", "consumes": [ "application\/json" ], - "produces": [ + "produces": [], + "tags": [ + "users" + ], + "description": "Delete all user's sessions by using the user's unique ID.", + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteSessions", + "group": "sessions", + "weight": 143, + "cookies": false, + "type": "", + "demo": "users\/delete-sessions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "users.write", + "platforms": [ + "console", + "server" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-user-sessions.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "type": "string", + "x-example": "<USER_ID>", + "in": "path" + } + ] + } + }, + "\/users\/{userId}\/sessions\/{sessionId}": { + "delete": { + "summary": "Delete user session", + "operationId": "usersDeleteSession", + "consumes": [ "application\/json" ], + "produces": [], "tags": [ "users" ], - "description": "Create a new user. Password provided must be hashed with the [Scrypt](https:\/\/github.com\/Tarsnap\/scrypt) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "description": "Delete a user sessions by its unique ID.", "responses": { - "201": { - "description": "User", - "schema": { - "$ref": "#\/definitions\/user" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "createScryptUser", - "group": "users", - "weight": 126, + "method": "deleteSession", + "group": "sessions", + "weight": 142, "cookies": false, "type": "", - "demo": "users\/create-scrypt-user.md", + "demo": "users\/delete-session.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -38034,7 +43327,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-scrypt-user.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-user-session.md", "auth": { "Project": [], "Key": [] @@ -38048,91 +43341,28 @@ ], "parameters": [ { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "userId": { - "type": "string", - "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.", - "default": null, - "x-example": "<USER_ID>" - }, - "email": { - "type": "string", - "description": "User email.", - "default": null, - "x-example": "email@example.com", - "format": "email" - }, - "password": { - "type": "string", - "description": "User password hashed using Scrypt.", - "default": null, - "x-example": "password", - "format": "password" - }, - "passwordSalt": { - "type": "string", - "description": "Optional salt used to hash password.", - "default": null, - "x-example": "<PASSWORD_SALT>" - }, - "passwordCpu": { - "type": "integer", - "description": "Optional CPU cost used to hash password.", - "default": null, - "x-example": null, - "format": "int32" - }, - "passwordMemory": { - "type": "integer", - "description": "Optional memory cost used to hash password.", - "default": null, - "x-example": null, - "format": "int32" - }, - "passwordParallel": { - "type": "integer", - "description": "Optional parallelization cost used to hash password.", - "default": null, - "x-example": null, - "format": "int32" - }, - "passwordLength": { - "type": "integer", - "description": "Optional hash length used to hash password.", - "default": null, - "x-example": null, - "format": "int32" - }, - "name": { - "type": "string", - "description": "User name. Max length: 128 chars.", - "default": "", - "x-example": "<NAME>" - } - }, - "required": [ - "userId", - "email", - "password", - "passwordSalt", - "passwordCpu", - "passwordMemory", - "passwordParallel", - "passwordLength" - ] - } + "name": "userId", + "description": "User ID.", + "required": true, + "type": "string", + "x-example": "<USER_ID>", + "in": "path" + }, + { + "name": "sessionId", + "description": "Session ID.", + "required": true, + "type": "string", + "x-example": "<SESSION_ID>", + "in": "path" } ] } }, - "\/users\/scrypt-modified": { - "post": { - "summary": "Create user with Scrypt modified password", - "operationId": "usersCreateScryptModifiedUser", + "\/users\/{userId}\/status": { + "patch": { + "summary": "Update user status", + "operationId": "usersUpdateStatus", "consumes": [ "application\/json" ], @@ -38142,9 +43372,9 @@ "tags": [ "users" ], - "description": "Create a new user. Password provided must be hashed with the [Scrypt Modified](https:\/\/gist.github.com\/Meldiron\/eecf84a0225eccb5a378d45bb27462cc) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "description": "Update the user status by its unique ID. Use this endpoint as an alternative to deleting a user if you want to keep user's ID reserved.", "responses": { - "201": { + "200": { "description": "User", "schema": { "$ref": "#\/definitions\/user" @@ -38153,12 +43383,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "createScryptModifiedUser", + "method": "updateStatus", "group": "users", - "weight": 127, + "weight": 124, "cookies": false, "type": "", - "demo": "users\/create-scrypt-modified-user.md", + "demo": "users\/update-status.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -38169,7 +43399,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-scrypt-modified-user.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-status.md", "auth": { "Project": [], "Key": [] @@ -38182,74 +43412,120 @@ } ], "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "type": "string", + "x-example": "<USER_ID>", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "userId": { - "type": "string", - "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.", - "default": null, - "x-example": "<USER_ID>" - }, - "email": { - "type": "string", - "description": "User email.", - "default": null, - "x-example": "email@example.com", - "format": "email" - }, - "password": { - "type": "string", - "description": "User password hashed using Scrypt Modified.", - "default": null, - "x-example": "password", - "format": "password" - }, - "passwordSalt": { - "type": "string", - "description": "Salt used to hash password.", - "default": null, - "x-example": "<PASSWORD_SALT>" - }, - "passwordSaltSeparator": { - "type": "string", - "description": "Salt separator used to hash password.", - "default": null, - "x-example": "<PASSWORD_SALT_SEPARATOR>" - }, - "passwordSignerKey": { - "type": "string", - "description": "Signer key used to hash password.", + "status": { + "type": "boolean", + "description": "User Status. To activate the user pass `true` and to block the user pass `false`.", "default": null, - "x-example": "<PASSWORD_SIGNER_KEY>" - }, - "name": { - "type": "string", - "description": "User name. Max length: 128 chars.", - "default": "", - "x-example": "<NAME>" + "x-example": false } }, "required": [ - "userId", - "email", - "password", - "passwordSalt", - "passwordSaltSeparator", - "passwordSignerKey" + "status" ] } } ] } }, - "\/users\/sha": { + "\/users\/{userId}\/targets": { + "get": { + "summary": "List user targets", + "operationId": "usersListTargets", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "users" + ], + "description": "List the messaging targets that are associated with a user.", + "responses": { + "200": { + "description": "Target list", + "schema": { + "$ref": "#\/definitions\/targetList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listTargets", + "group": "targets", + "weight": 122, + "cookies": false, + "type": "", + "demo": "users\/list-targets.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "targets.read", + "platforms": [ + "server", + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-user-targets.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "type": "string", + "x-example": "<USER_ID>", + "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: userId, providerId, identifier, providerType", + "required": false, + "type": "array", + "collectionFormat": "multi", + "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, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" + } + ] + }, "post": { - "summary": "Create user with SHA password", - "operationId": "usersCreateSHAUser", + "summary": "Create user target", + "operationId": "usersCreateTarget", "consumes": [ "application\/json" ], @@ -38259,34 +43535,34 @@ "tags": [ "users" ], - "description": "Create a new user. Password provided must be hashed with the [SHA](https:\/\/en.wikipedia.org\/wiki\/Secure_Hash_Algorithm) algorithm. Use the [POST \/users](https:\/\/appwrite.io\/docs\/server\/users#usersCreate) endpoint to create users with a plain text password.", + "description": "Create a messaging target.", "responses": { "201": { - "description": "User", + "description": "Target", "schema": { - "$ref": "#\/definitions\/user" + "$ref": "#\/definitions\/target" } } }, "deprecated": false, "x-appwrite": { - "method": "createSHAUser", - "group": "users", - "weight": 124, + "method": "createTarget", + "group": "targets", + "weight": 114, "cookies": false, "type": "", - "demo": "users\/create-sha-user.md", + "demo": "users\/create-target.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "targets.write", "platforms": [ - "console", - "server" + "server", + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-sha-user.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-target.md", "auth": { "Project": [], "Key": [] @@ -38299,74 +43575,72 @@ } ], "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "type": "string", + "x-example": "<USER_ID>", + "in": "path" + }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "userId": { + "targetId": { "type": "string", - "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.", + "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.", "default": null, - "x-example": "<USER_ID>" + "x-example": "<TARGET_ID>" }, - "email": { + "providerType": { "type": "string", - "description": "User email.", + "description": "The target provider type. Can be one of the following: `email`, `sms` or `push`.", "default": null, - "x-example": "email@example.com", - "format": "email" + "x-example": "email", + "enum": [ + "email", + "sms", + "push" + ], + "x-enum-name": "MessagingProviderType", + "x-enum-keys": [] }, - "password": { + "identifier": { "type": "string", - "description": "User password hashed using SHA.", + "description": "The target identifier (token, email, phone etc.)", "default": null, - "x-example": "password", - "format": "password" + "x-example": "<IDENTIFIER>" }, - "passwordVersion": { + "providerId": { "type": "string", - "description": "Optional SHA version used to hash password. Allowed values are: 'sha1', 'sha224', 'sha256', 'sha384', 'sha512\/224', 'sha512\/256', 'sha512', 'sha3-224', 'sha3-256', 'sha3-384', 'sha3-512'", + "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.", "default": "", - "x-example": "sha1", - "enum": [ - "sha1", - "sha224", - "sha256", - "sha384", - "sha512\/224", - "sha512\/256", - "sha512", - "sha3-224", - "sha3-256", - "sha3-384", - "sha3-512" - ], - "x-enum-name": "PasswordHash", - "x-enum-keys": [] + "x-example": "<PROVIDER_ID>" }, "name": { "type": "string", - "description": "User name. Max length: 128 chars.", + "description": "Target name. Max length: 128 chars. For example: My Awesome App Galaxy S23.", "default": "", "x-example": "<NAME>" } }, "required": [ - "userId", - "email", - "password" + "targetId", + "providerType", + "identifier" ] } } ] } }, - "\/users\/{userId}": { + "\/users\/{userId}\/targets\/{targetId}": { "get": { - "summary": "Get user", - "operationId": "usersGet", + "summary": "Get user target", + "operationId": "usersGetTarget", "consumes": [], "produces": [ "application\/json" @@ -38374,34 +43648,104 @@ "tags": [ "users" ], - "description": "Get a user by its unique ID.", + "description": "Get a user's push notification target by ID.", "responses": { "200": { - "description": "User", + "description": "Target", "schema": { - "$ref": "#\/definitions\/user" + "$ref": "#\/definitions\/target" } } }, "deprecated": false, "x-appwrite": { - "method": "get", - "group": "users", - "weight": 130, + "method": "getTarget", + "group": "targets", + "weight": 118, "cookies": false, "type": "", - "demo": "users\/get.md", + "demo": "users\/get-target.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": "targets.read", "platforms": [ - "console", - "server" + "server", + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user-target.md", + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "userId", + "description": "User ID.", + "required": true, + "type": "string", + "x-example": "<USER_ID>", + "in": "path" + }, + { + "name": "targetId", + "description": "Target ID.", + "required": true, + "type": "string", + "x-example": "<TARGET_ID>", + "in": "path" + } + ] + }, + "patch": { + "summary": "Update user target", + "operationId": "usersUpdateTarget", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "users" + ], + "description": "Update a messaging target.", + "responses": { + "200": { + "description": "Target", + "schema": { + "$ref": "#\/definitions\/target" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateTarget", + "group": "targets", + "weight": 133, + "cookies": false, + "type": "", + "demo": "users\/update-target.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "targets.write", + "platforms": [ + "server", + "console" + ], + "packaging": false, + "public": true, + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-target.md", "auth": { "Project": [], "Key": [] @@ -38421,12 +43765,47 @@ "type": "string", "x-example": "<USER_ID>", "in": "path" + }, + { + "name": "targetId", + "description": "Target ID.", + "required": true, + "type": "string", + "x-example": "<TARGET_ID>", + "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "identifier": { + "type": "string", + "description": "The target identifier (token, email, phone etc.)", + "default": "", + "x-example": "<IDENTIFIER>" + }, + "providerId": { + "type": "string", + "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.", + "default": "", + "x-example": "<PROVIDER_ID>" + }, + "name": { + "type": "string", + "description": "Target name. Max length: 128 chars. For example: My Awesome App Galaxy S23.", + "default": "", + "x-example": "<NAME>" + } + } + } } ] }, "delete": { - "summary": "Delete user", - "operationId": "usersDelete", + "summary": "Delete user target", + "operationId": "usersDeleteTarget", "consumes": [ "application\/json" ], @@ -38434,7 +43813,7 @@ "tags": [ "users" ], - "description": "Delete a user by its unique ID, thereby releasing it's ID. Since ID is released and can be reused, all user-related resources like documents or storage files should be deleted before user deletion. If you want to keep ID reserved, use the [updateStatus](https:\/\/appwrite.io\/docs\/server\/users#usersUpdateStatus) endpoint instead.", + "description": "Delete a messaging target.", "responses": { "204": { "description": "No content" @@ -38442,23 +43821,23 @@ }, "deprecated": false, "x-appwrite": { - "method": "delete", - "group": "users", - "weight": 158, + "method": "deleteTarget", + "group": "targets", + "weight": 145, "cookies": false, "type": "", - "demo": "users\/delete.md", + "demo": "users\/delete-target.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "targets.write", "platforms": [ - "console", - "server" + "server", + "console" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-target.md", "auth": { "Project": [], "Key": [] @@ -38478,14 +43857,22 @@ "type": "string", "x-example": "<USER_ID>", "in": "path" + }, + { + "name": "targetId", + "description": "Target ID.", + "required": true, + "type": "string", + "x-example": "<TARGET_ID>", + "in": "path" } ] } }, - "\/users\/{userId}\/email": { - "patch": { - "summary": "Update email", - "operationId": "usersUpdateEmail", + "\/users\/{userId}\/tokens": { + "post": { + "summary": "Create token", + "operationId": "usersCreateToken", "consumes": [ "application\/json" ], @@ -38495,23 +43882,23 @@ "tags": [ "users" ], - "description": "Update the user email by its unique ID.", + "description": "Returns a token with a secret key for creating a session. Use the user ID and secret and submit a request to the [PUT \/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process.\n", "responses": { - "200": { - "description": "User", + "201": { + "description": "Token", "schema": { - "$ref": "#\/definitions\/user" + "$ref": "#\/definitions\/token" } } }, "deprecated": false, "x-appwrite": { - "method": "updateEmail", - "group": "users", - "weight": 143, + "method": "createToken", + "group": "sessions", + "weight": 141, "cookies": false, "type": "", - "demo": "users\/update-email.md", + "demo": "users\/create-token.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -38522,7 +43909,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-email.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-token.md", "auth": { "Project": [], "Key": [] @@ -38549,26 +43936,30 @@ "schema": { "type": "object", "properties": { - "email": { - "type": "string", - "description": "User email.", - "default": null, - "x-example": "email@example.com", - "format": "email" + "length": { + "type": "integer", + "description": "Token length in characters. The default length is 6 characters", + "default": 6, + "x-example": 4, + "format": "int32" + }, + "expire": { + "type": "integer", + "description": "Token expiration period in seconds. The default expiration is 15 minutes.", + "default": 900, + "x-example": 60, + "format": "int32" } - }, - "required": [ - "email" - ] + } } } ] } }, - "\/users\/{userId}\/jwts": { - "post": { - "summary": "Create user JWT", - "operationId": "usersCreateJWT", + "\/users\/{userId}\/verification": { + "patch": { + "summary": "Update email verification", + "operationId": "usersUpdateEmailVerification", "consumes": [ "application\/json" ], @@ -38578,23 +43969,23 @@ "tags": [ "users" ], - "description": "Use this endpoint to create a JSON Web Token for user by its unique ID. You can use the resulting JWT to authenticate on behalf of the user. The JWT secret will become invalid if the session it uses gets deleted.", + "description": "Update the user email verification status by its unique ID.", "responses": { - "201": { - "description": "JWT", + "200": { + "description": "User", "schema": { - "$ref": "#\/definitions\/jwt" + "$ref": "#\/definitions\/user" } } }, "deprecated": false, "x-appwrite": { - "method": "createJWT", - "group": "sessions", - "weight": 161, + "method": "updateEmailVerification", + "group": "users", + "weight": 131, "cookies": false, "type": "", - "demo": "users\/create-jwt.md", + "demo": "users\/update-email-verification.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -38605,7 +43996,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-user-jwt.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-email-verification.md", "auth": { "Project": [], "Key": [] @@ -38632,29 +44023,25 @@ "schema": { "type": "object", "properties": { - "sessionId": { - "type": "string", - "description": "Session ID. Use the string 'recent' to use the most recent session. Defaults to the most recent session.", - "default": "", - "x-example": "<SESSION_ID>" - }, - "duration": { - "type": "integer", - "description": "Time in seconds before JWT expires. Default duration is 900 seconds, and maximum is 3600 seconds.", - "default": 900, - "x-example": 0, - "format": "int32" + "emailVerification": { + "type": "boolean", + "description": "User email verification status.", + "default": null, + "x-example": false } - } + }, + "required": [ + "emailVerification" + ] } } ] } }, - "\/users\/{userId}\/labels": { - "put": { - "summary": "Update user labels", - "operationId": "usersUpdateLabels", + "\/users\/{userId}\/verification\/phone": { + "patch": { + "summary": "Update phone verification", + "operationId": "usersUpdatePhoneVerification", "consumes": [ "application\/json" ], @@ -38664,7 +44051,7 @@ "tags": [ "users" ], - "description": "Update the user labels by its unique ID. \n\nLabels can be used to grant access to resources. While teams are a way for user's to share access to a resource, labels can be defined by the developer to grant access without an invitation. See the [Permissions docs](https:\/\/appwrite.io\/docs\/permissions) for more info.", + "description": "Update the user phone verification status by its unique ID.", "responses": { "200": { "description": "User", @@ -38675,12 +44062,12 @@ }, "deprecated": false, "x-appwrite": { - "method": "updateLabels", + "method": "updatePhoneVerification", "group": "users", - "weight": 139, + "weight": 126, "cookies": false, "type": "", - "demo": "users\/update-labels.md", + "demo": "users\/update-phone-verification.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", @@ -38691,7 +44078,7 @@ ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-labels.md", + "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-phone-verification.md", "auth": { "Project": [], "Key": [] @@ -38718,63 +44105,59 @@ "schema": { "type": "object", "properties": { - "labels": { - "type": "array", - "description": "Array of user labels. Replaces the previous labels. Maximum of 1000 labels are allowed, each up to 36 alphanumeric characters long.", + "phoneVerification": { + "type": "boolean", + "description": "User phone verification status.", "default": null, - "x-example": null, - "items": { - "type": "string" - } + "x-example": false } }, "required": [ - "labels" + "phoneVerification" ] } } ] } }, - "\/users\/{userId}\/logs": { + "\/vectordb": { "get": { - "summary": "List user logs", - "operationId": "usersListLogs", + "summary": "List databases", + "operationId": "vectorDBList", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "users" + "vectorDB" ], - "description": "Get the user activity logs list by its unique ID.", + "description": false, "responses": { "200": { - "description": "Logs List", + "description": "Databases List", "schema": { - "$ref": "#\/definitions\/logList" + "$ref": "#\/definitions\/databaseList" } } }, "deprecated": false, "x-appwrite": { - "method": "listLogs", - "group": "logs", - "weight": 135, + "method": "list", + "group": "vectordb", + "weight": 431, "cookies": false, "type": "", - "demo": "users\/list-logs.md", + "demo": "vectordb\/list.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": "databases.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-user-logs.md", "auth": { "Project": [], "Key": [] @@ -38787,17 +44170,9 @@ } ], "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "type": "string", - "x-example": "<USER_ID>", - "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). Only supported methods are limit and offset", + "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, "type": "array", "collectionFormat": "multi", @@ -38807,6 +44182,15 @@ "default": [], "in": "query" }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "type": "string", + "x-example": "<SEARCH>", + "default": "", + "in": "query" + }, { "name": "total", "description": "When set to false, the total count returned will be 0 and will not be calculated.", @@ -38817,47 +44201,46 @@ "in": "query" } ] - } - }, - "\/users\/{userId}\/memberships": { - "get": { - "summary": "List user memberships", - "operationId": "usersListMemberships", - "consumes": [], + }, + "post": { + "summary": "Create database", + "operationId": "vectorDBCreate", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "users" + "vectorDB" ], - "description": "Get the user membership list by its unique ID.", + "description": false, "responses": { - "200": { - "description": "Memberships List", + "201": { + "description": "Database", "schema": { - "$ref": "#\/definitions\/membershipList" + "$ref": "#\/definitions\/database" } } }, "deprecated": false, "x-appwrite": { - "method": "listMemberships", - "group": "memberships", - "weight": 134, + "method": "create", + "group": "vectordb", + "weight": 427, "cookies": false, "type": "", - "demo": "users\/list-memberships.md", + "demo": "vectordb\/create.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-user-memberships.md", "auth": { "Project": [], "Key": [] @@ -38871,50 +44254,43 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", - "required": true, - "type": "string", - "x-example": "<USER_ID>", - "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: userId, teamId, invited, joined, confirm, roles", - "required": false, - "type": "array", - "collectionFormat": "multi", - "items": { - "type": "string" - }, - "default": [], - "in": "query" - }, - { - "name": "search", - "description": "Search term to filter your list results. Max length: 256 chars.", - "required": false, - "type": "string", - "x-example": "<SEARCH>", - "default": "", - "in": "query" - }, - { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", - "required": false, - "type": "boolean", - "x-example": false, - "default": true, - "in": "query" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "databaseId": { + "type": "string", + "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.", + "default": null, + "x-example": "<DATABASE_ID>" + }, + "name": { + "type": "string", + "description": "Database name. Max length: 128 chars.", + "default": null, + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "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.", + "default": true, + "x-example": false + } + }, + "required": [ + "databaseId", + "name" + ] + } } ] } }, - "\/users\/{userId}\/mfa": { - "patch": { - "summary": "Update MFA", - "operationId": "usersUpdateMfa", + "\/vectordb\/embeddings\/text": { + "post": { + "summary": "Create Text Embeddings", + "operationId": "vectorDBCreateTextEmbeddings", "consumes": [ "application\/json" ], @@ -38922,95 +44298,62 @@ "application\/json" ], "tags": [ - "users" + "vectorDB" ], - "description": "Enable or disable MFA on a user account.", + "description": false, "responses": { "200": { - "description": "User", + "description": "Embedding list", "schema": { - "$ref": "#\/definitions\/user" + "$ref": "#\/definitions\/embeddingList" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateMfa", - "group": "users", - "weight": 148, + "method": "createTextEmbeddings", + "group": "documents", + "weight": 454, "cookies": false, "type": "", - "demo": "users\/update-mfa.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "demo": "vectordb\/create-text-embeddings.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": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-mfa.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.updateMFA" - }, + "public": true, "methods": [ { - "name": "updateMfa", - "namespace": "users", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "userId", - "mfa" - ], - "required": [ - "userId", - "mfa" - ], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/user" - } - ], - "description": "Enable or disable MFA on a user account.", - "demo": "users\/update-mfa.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.updateMFA" - } - }, - { - "name": "updateMFA", - "namespace": "users", - "desc": "", + "name": "createTextEmbeddings", + "namespace": "vectorDB", + "desc": "Create Text Embedding", "auth": { "Project": [], "Key": [] }, "parameters": [ - "userId", - "mfa" + "databaseId", + "collectionId", + "documents" ], "required": [ - "userId", - "mfa" + "databaseId", + "collectionId", + "documents" ], "responses": [ { "code": 200, - "model": "#\/definitions\/user" + "model": "#\/definitions\/embeddingList" } ], - "description": "Enable or disable MFA on a user account.", - "demo": "users\/update-mfa.md", + "description": "", + "demo": "vectordb\/create-text-embeddings.md", "public": true } ], @@ -39022,135 +44365,289 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "JWT": [] } ], "parameters": [ - { - "name": "userId", - "description": "User ID.", - "required": true, - "type": "string", - "x-example": "<USER_ID>", - "in": "path" - }, { "name": "payload", "in": "body", "schema": { "type": "object", "properties": { - "mfa": { - "type": "boolean", - "description": "Enable or disable MFA.", + "texts": { + "type": "array", + "description": "Array of text to generate embeddings.", "default": null, - "x-example": false + "x-example": null, + "items": { + "type": "string" + } + }, + "model": { + "type": "string", + "description": "The embedding model to use for generating vector embeddings.", + "default": "embeddinggemma", + "x-example": "embeddinggemma", + "enum": [ + "embeddinggemma" + ], + "x-enum-name": null, + "x-enum-keys": [] } }, "required": [ - "mfa" + "texts" ] } } ] } }, - "\/users\/{userId}\/mfa\/authenticators\/{type}": { - "delete": { - "summary": "Delete authenticator", - "operationId": "usersDeleteMfaAuthenticator", + "\/vectordb\/transactions": { + "get": { + "summary": "List transactions", + "operationId": "vectorDBListTransactions", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "vectorDB" + ], + "description": false, + "responses": { + "200": { + "description": "Transaction List", + "schema": { + "$ref": "#\/definitions\/transactionList" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "listTransactions", + "group": "transactions", + "weight": 459, + "cookies": false, + "type": "", + "demo": "vectordb\/list-transactions.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "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, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + } + ] + }, + "post": { + "summary": "Create transaction", + "operationId": "vectorDBCreateTransaction", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ - "users" + "vectorDB" ], - "description": "Delete an authenticator app.", + "description": false, "responses": { - "204": { - "description": "No content" + "201": { + "description": "Transaction", + "schema": { + "$ref": "#\/definitions\/transaction" + } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "deleteMfaAuthenticator", - "group": "mfa", - "weight": 153, + "method": "createTransaction", + "group": "transactions", + "weight": 455, "cookies": false, "type": "", - "demo": "users\/delete-mfa-authenticator.md", + "demo": "vectordb\/create-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "documents.write", "platforms": [ "console", - "server" + "server", + "client" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-mfa-authenticator.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.deleteMFAAuthenticator" - }, - "methods": [ - { - "name": "deleteMfaAuthenticator", - "namespace": "users", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "userId", - "type" - ], - "required": [ - "userId", - "type" - ], - "responses": [ - { - "code": 204 + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "ttl": { + "type": "integer", + "description": "Seconds before the transaction expires.", + "default": 300, + "x-example": 60, + "format": "int32" } - ], - "description": "Delete an authenticator app.", - "demo": "users\/delete-mfa-authenticator.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.deleteMFAAuthenticator" } - }, - { - "name": "deleteMFAAuthenticator", - "namespace": "users", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "userId", - "type" - ], - "required": [ - "userId", - "type" - ], - "responses": [ - { - "code": 204 - } - ], - "description": "Delete an authenticator app.", - "demo": "users\/delete-mfa-authenticator.md", - "public": true } + } + ] + } + }, + "\/vectordb\/transactions\/{transactionId}": { + "get": { + "summary": "Get transaction", + "operationId": "vectorDBGetTransaction", + "consumes": [], + "produces": [ + "application\/json" + ], + "tags": [ + "vectorDB" + ], + "description": false, + "responses": { + "200": { + "description": "Transaction", + "schema": { + "$ref": "#\/definitions\/transaction" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "getTransaction", + "group": "transactions", + "weight": 456, + "cookies": false, + "type": "", + "demo": "vectordb\/get-transaction.md", + "rate-limit": 0, + "rate-time": 3600, + "rate-key": "url:{url},ip:{ip}", + "scope": "documents.read", + "platforms": [ + "console", + "server", + "client" + ], + "packaging": false, + "public": true, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [], + "Session": [], + "JWT": [] + } + ], + "parameters": [ + { + "name": "transactionId", + "description": "Transaction ID.", + "required": true, + "type": "string", + "x-example": "<TRANSACTION_ID>", + "in": "path" + } + ] + }, + "patch": { + "summary": "Update transaction", + "operationId": "vectorDBUpdateTransaction", + "consumes": [ + "application\/json" + ], + "produces": [ + "application\/json" + ], + "tags": [ + "vectorDB" + ], + "description": false, + "responses": { + "200": { + "description": "Transaction", + "schema": { + "$ref": "#\/definitions\/transaction" + } + } + }, + "deprecated": false, + "x-appwrite": { + "method": "updateTransaction", + "group": "transactions", + "weight": 457, + "cookies": false, + "type": "", + "demo": "vectordb\/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, "auth": { "Project": [], "Key": [] @@ -39159,131 +44656,78 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<TRANSACTION_ID>", "in": "path" }, { - "name": "type", - "description": "Type of authenticator.", - "required": true, - "type": "string", - "x-example": "totp", - "enum": [ - "totp" - ], - "x-enum-name": "AuthenticatorType", - "x-enum-keys": [], - "in": "path" + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "commit": { + "type": "boolean", + "description": "Commit transaction?", + "default": false, + "x-example": false + }, + "rollback": { + "type": "boolean", + "description": "Rollback transaction?", + "default": false, + "x-example": false + } + } + } } ] - } - }, - "\/users\/{userId}\/mfa\/factors": { - "get": { - "summary": "List factors", - "operationId": "usersListMfaFactors", - "consumes": [], - "produces": [ + }, + "delete": { + "summary": "Delete transaction", + "operationId": "vectorDBDeleteTransaction", + "consumes": [ "application\/json" ], + "produces": [], "tags": [ - "users" + "vectorDB" ], - "description": "List the factors available on the account to be used as a MFA challange.", + "description": false, "responses": { - "200": { - "description": "MFAFactors", - "schema": { - "$ref": "#\/definitions\/mfaFactors" - } + "204": { + "description": "No content" } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "listMfaFactors", - "group": "mfa", - "weight": 149, + "method": "deleteTransaction", + "group": "transactions", + "weight": 458, "cookies": false, "type": "", - "demo": "users\/list-mfa-factors.md", + "demo": "vectordb\/delete-transaction.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": "documents.write", "platforms": [ "console", - "server" + "server", + "client" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-mfa-factors.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.listMFAFactors" - }, - "methods": [ - { - "name": "listMfaFactors", - "namespace": "users", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "userId" - ], - "required": [ - "userId" - ], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/mfaFactors" - } - ], - "description": "List the factors available on the account to be used as a MFA challange.", - "demo": "users\/list-mfa-factors.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.listMFAFactors" - } - }, - { - "name": "listMFAFactors", - "namespace": "users", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "userId" - ], - "required": [ - "userId" - ], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/mfaFactors" - } - ], - "description": "List the factors available on the account to be used as a MFA challange.", - "demo": "users\/list-mfa-factors.md", - "public": true - } - ], + "public": true, "auth": { "Project": [], "Key": [] @@ -39292,118 +44736,64 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<TRANSACTION_ID>", "in": "path" } ] } }, - "\/users\/{userId}\/mfa\/recovery-codes": { - "get": { - "summary": "Get MFA recovery codes", - "operationId": "usersGetMfaRecoveryCodes", - "consumes": [], + "\/vectordb\/transactions\/{transactionId}\/operations": { + "post": { + "summary": "Create operations", + "operationId": "vectorDBCreateOperations", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "users" + "vectorDB" ], - "description": "Get recovery codes that can be used as backup for MFA flow by User ID. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", + "description": false, "responses": { - "200": { - "description": "MFA Recovery Codes", + "201": { + "description": "Transaction", "schema": { - "$ref": "#\/definitions\/mfaRecoveryCodes" + "$ref": "#\/definitions\/transaction" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "getMfaRecoveryCodes", - "group": "mfa", - "weight": 150, + "method": "createOperations", + "group": "transactions", + "weight": 460, "cookies": false, "type": "", - "demo": "users\/get-mfa-recovery-codes.md", + "demo": "vectordb\/create-operations.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": "documents.write", "platforms": [ "console", - "server" + "server", + "client" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-mfa-recovery-codes.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.getMFARecoveryCodes" - }, - "methods": [ - { - "name": "getMfaRecoveryCodes", - "namespace": "users", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "userId" - ], - "required": [ - "userId" - ], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/mfaRecoveryCodes" - } - ], - "description": "Get recovery codes that can be used as backup for MFA flow by User ID. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", - "demo": "users\/get-mfa-recovery-codes.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.getMFARecoveryCodes" - } - }, - { - "name": "getMFARecoveryCodes", - "namespace": "users", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "userId" - ], - "required": [ - "userId" - ], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/mfaRecoveryCodes" - } - ], - "description": "Get recovery codes that can be used as backup for MFA flow by User ID. Before getting codes, they must be generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", - "demo": "users\/get-mfa-recovery-codes.md", - "public": true - } - ], + "public": true, "auth": { "Project": [], "Key": [] @@ -39412,118 +44802,79 @@ "security": [ { "Project": [], - "Key": [] + "Key": [], + "Session": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "transactionId", + "description": "Transaction ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<TRANSACTION_ID>", "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "operations": { + "type": "array", + "description": "Array of staged operations.", + "default": [], + "x-example": "[\n\t {\n\t \"action\": \"create\",\n\t \"databaseId\": \"<DATABASE_ID>\",\n\t \"collectionId\": \"<COLLECTION_ID>\",\n\t \"documentId\": \"<DOCUMENT_ID>\",\n\t \"data\": {\n\t \"name\": \"Walter O'Brien\"\n\t }\n\t }\n\t]", + "items": { + "type": "object" + } + } + } + } } ] - }, - "put": { - "summary": "Update MFA recovery codes (regenerate)", - "operationId": "usersUpdateMfaRecoveryCodes", - "consumes": [ - "application\/json" - ], + } + }, + "\/vectordb\/{databaseId}": { + "get": { + "summary": "Get database", + "operationId": "vectorDBGet", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "users" + "vectorDB" ], - "description": "Regenerate recovery codes that can be used as backup for MFA flow by User ID. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", + "description": false, "responses": { "200": { - "description": "MFA Recovery Codes", + "description": "Database", "schema": { - "$ref": "#\/definitions\/mfaRecoveryCodes" + "$ref": "#\/definitions\/database" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "updateMfaRecoveryCodes", - "group": "mfa", - "weight": 152, + "method": "get", + "group": "vectordb", + "weight": 428, "cookies": false, "type": "", - "demo": "users\/update-mfa-recovery-codes.md", + "demo": "vectordb\/get.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "databases.read", "platforms": [ "console", "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-mfa-recovery-codes.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.updateMFARecoveryCodes" - }, - "methods": [ - { - "name": "updateMfaRecoveryCodes", - "namespace": "users", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "userId" - ], - "required": [ - "userId" - ], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/mfaRecoveryCodes" - } - ], - "description": "Regenerate recovery codes that can be used as backup for MFA flow by User ID. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", - "demo": "users\/update-mfa-recovery-codes.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.updateMFARecoveryCodes" - } - }, - { - "name": "updateMFARecoveryCodes", - "namespace": "users", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "userId" - ], - "required": [ - "userId" - ], - "responses": [ - { - "code": 200, - "model": "#\/definitions\/mfaRecoveryCodes" - } - ], - "description": "Regenerate recovery codes that can be used as backup for MFA flow by User ID. Before regenerating codes, they must be first generated using [createMfaRecoveryCodes](\/docs\/references\/cloud\/client-web\/account#createMfaRecoveryCodes) method.", - "demo": "users\/update-mfa-recovery-codes.md", - "public": false - } - ], + "public": true, "auth": { "Project": [], "Key": [] @@ -39537,18 +44888,18 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<DATABASE_ID>", "in": "path" } ] }, - "patch": { - "summary": "Create MFA recovery codes", - "operationId": "usersCreateMfaRecoveryCodes", + "put": { + "summary": "Update database", + "operationId": "vectorDBUpdate", "consumes": [ "application\/json" ], @@ -39556,94 +44907,35 @@ "application\/json" ], "tags": [ - "users" + "vectorDB" ], - "description": "Generate recovery codes used as backup for MFA flow for User ID. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method by client SDK.", + "description": false, "responses": { - "201": { - "description": "MFA Recovery Codes", + "200": { + "description": "Database", "schema": { - "$ref": "#\/definitions\/mfaRecoveryCodes" + "$ref": "#\/definitions\/database" } } }, - "deprecated": true, + "deprecated": false, "x-appwrite": { - "method": "createMfaRecoveryCodes", - "group": "mfa", - "weight": 151, + "method": "update", + "group": "vectordb", + "weight": 429, "cookies": false, "type": "", - "demo": "users\/create-mfa-recovery-codes.md", + "demo": "vectordb\/update.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, - "public": false, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-mfa-recovery-codes.md", - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.createMFARecoveryCodes" - }, - "methods": [ - { - "name": "createMfaRecoveryCodes", - "namespace": "users", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "userId" - ], - "required": [ - "userId" - ], - "responses": [ - { - "code": 201, - "model": "#\/definitions\/mfaRecoveryCodes" - } - ], - "description": "Generate recovery codes used as backup for MFA flow for User ID. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method by client SDK.", - "demo": "users\/create-mfa-recovery-codes.md", - "public": false, - "deprecated": { - "since": "1.8.0", - "replaceWith": "users.createMFARecoveryCodes" - } - }, - { - "name": "createMFARecoveryCodes", - "namespace": "users", - "desc": "", - "auth": { - "Project": [], - "Key": [] - }, - "parameters": [ - "userId" - ], - "required": [ - "userId" - ], - "responses": [ - { - "code": 201, - "model": "#\/definitions\/mfaRecoveryCodes" - } - ], - "description": "Generate recovery codes used as backup for MFA flow for User ID. Recovery codes can be used as a MFA verification type in [createMfaChallenge](\/docs\/references\/cloud\/client-web\/account#createMfaChallenge) method by client SDK.", - "demo": "users\/create-mfa-recovery-codes.md", - "public": true - } - ], + "public": true, "auth": { "Project": [], "Key": [] @@ -39657,57 +44949,73 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<DATABASE_ID>", "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Database name. Max length: 128 chars.", + "default": null, + "x-example": "<NAME>" + }, + "enabled": { + "type": "boolean", + "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.", + "default": true, + "x-example": false + } + }, + "required": [ + "name" + ] + } } ] - } - }, - "\/users\/{userId}\/name": { - "patch": { - "summary": "Update name", - "operationId": "usersUpdateName", + }, + "delete": { + "summary": "Delete database", + "operationId": "vectorDBDelete", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ - "users" + "vectorDB" ], - "description": "Update the user name by its unique ID.", + "description": false, "responses": { - "200": { - "description": "User", - "schema": { - "$ref": "#\/definitions\/user" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateName", - "group": "users", - "weight": 141, + "method": "delete", + "group": "vectordb", + "weight": 430, "cookies": false, "type": "", - "demo": "users\/update-name.md", + "demo": "vectordb\/delete.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "databases.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-name.md", "auth": { "Project": [], "Key": [] @@ -39721,75 +45029,54 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<DATABASE_ID>", "in": "path" - }, - { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "User name. Max length: 128 chars.", - "default": null, - "x-example": "<NAME>" - } - }, - "required": [ - "name" - ] - } } ] } }, - "\/users\/{userId}\/password": { - "patch": { - "summary": "Update password", - "operationId": "usersUpdatePassword", - "consumes": [ - "application\/json" - ], + "\/vectordb\/{databaseId}\/collections": { + "get": { + "summary": "List collections", + "operationId": "vectorDBListCollections", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "users" + "vectorDB" ], - "description": "Update the user password by its unique ID.", + "description": false, "responses": { "200": { - "description": "User", + "description": "VectorDB Collections List", "schema": { - "$ref": "#\/definitions\/user" + "$ref": "#\/definitions\/vectordbCollectionList" } } }, "deprecated": false, "x-appwrite": { - "method": "updatePassword", - "group": "users", - "weight": 142, + "method": "listCollections", + "group": "collections", + "weight": 438, "cookies": false, "type": "", - "demo": "users\/update-password.md", + "demo": "vectordb\/list-collections.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "collections.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-password.md", "auth": { "Project": [], "Key": [] @@ -39803,38 +45090,48 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "password": { - "type": "string", - "description": "New user password. Must be at least 8 chars.", - "default": null, - "x-example": null - } - }, - "required": [ - "password" - ] - } + "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, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + }, + { + "name": "search", + "description": "Search term to filter your list results. Max length: 256 chars.", + "required": false, + "type": "string", + "x-example": "<SEARCH>", + "default": "", + "in": "query" + }, + { + "name": "total", + "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "required": false, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" } ] - } - }, - "\/users\/{userId}\/phone": { - "patch": { - "summary": "Update phone", - "operationId": "usersUpdatePhone", + }, + "post": { + "summary": "Create collection", + "operationId": "vectorDBCreateCollection", "consumes": [ "application\/json" ], @@ -39842,36 +45139,35 @@ "application\/json" ], "tags": [ - "users" + "vectorDB" ], - "description": "Update the user phone by its unique ID.", + "description": false, "responses": { - "200": { - "description": "User", + "201": { + "description": "VectorDB Collection", "schema": { - "$ref": "#\/definitions\/user" + "$ref": "#\/definitions\/vectordbCollection" } } }, "deprecated": false, "x-appwrite": { - "method": "updatePhone", - "group": "users", - "weight": 144, + "method": "createCollection", + "group": "collections", + "weight": 434, "cookies": false, "type": "", - "demo": "users\/update-phone.md", + "demo": "vectordb\/create-collection.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "collections.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-phone.md", "auth": { "Project": [], "Key": [] @@ -39885,11 +45181,11 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { @@ -39898,61 +45194,95 @@ "schema": { "type": "object", "properties": { - "number": { + "collectionId": { "type": "string", - "description": "User phone number.", + "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.", "default": null, - "x-example": "+12065550100", - "format": "phone" + "x-example": "<COLLECTION_ID>" + }, + "name": { + "type": "string", + "description": "Collection name. Max length: 128 chars.", + "default": null, + "x-example": "<NAME>" + }, + "dimension": { + "type": "integer", + "description": "Embedding dimension.", + "default": null, + "x-example": 1, + "format": "int32" + }, + "permissions": { + "type": "array", + "description": "An array of permissions strings. By default, no user is granted with any permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "default": null, + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } + }, + "documentSecurity": { + "type": "boolean", + "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).", + "default": false, + "x-example": false + }, + "enabled": { + "type": "boolean", + "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.", + "default": true, + "x-example": false } }, "required": [ - "number" + "collectionId", + "name", + "dimension" ] } } ] } }, - "\/users\/{userId}\/prefs": { + "\/vectordb\/{databaseId}\/collections\/{collectionId}": { "get": { - "summary": "Get user preferences", - "operationId": "usersGetPrefs", + "summary": "Get collection", + "operationId": "vectorDBGetCollection", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "users" + "vectorDB" ], - "description": "Get the user preferences by its unique ID.", + "description": false, "responses": { "200": { - "description": "Preferences", + "description": "VectorDB Collection", "schema": { - "$ref": "#\/definitions\/preferences" + "$ref": "#\/definitions\/vectordbCollection" } } }, "deprecated": false, "x-appwrite": { - "method": "getPrefs", - "group": "users", - "weight": 131, + "method": "getCollection", + "group": "collections", + "weight": 435, "cookies": false, "type": "", - "demo": "users\/get-prefs.md", + "demo": "vectordb\/get-collection.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": "collections.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user-prefs.md", "auth": { "Project": [], "Key": [] @@ -39966,18 +45296,26 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", "in": "path" } ] }, - "patch": { - "summary": "Update user preferences", - "operationId": "usersUpdatePrefs", + "put": { + "summary": "Update collection", + "operationId": "vectorDBUpdateCollection", "consumes": [ "application\/json" ], @@ -39985,36 +45323,35 @@ "application\/json" ], "tags": [ - "users" + "vectorDB" ], - "description": "Update the user preferences by its unique ID. 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.", + "description": false, "responses": { "200": { - "description": "Preferences", + "description": "VectorDB Collection", "schema": { - "$ref": "#\/definitions\/preferences" + "$ref": "#\/definitions\/vectordbCollection" } } }, "deprecated": false, "x-appwrite": { - "method": "updatePrefs", - "group": "users", - "weight": 146, + "method": "updateCollection", + "group": "collections", + "weight": 436, "cookies": false, "type": "", - "demo": "users\/update-prefs.md", + "demo": "vectordb\/update-collection.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "collections.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-prefs.md", "auth": { "Project": [], "Key": [] @@ -40028,11 +45365,19 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", "in": "path" }, { @@ -40041,80 +45386,202 @@ "schema": { "type": "object", "properties": { - "prefs": { - "type": "object", - "description": "Prefs key-value JSON object.", - "default": {}, - "x-example": "{}" + "name": { + "type": "string", + "description": "Collection name. Max length: 128 chars.", + "default": null, + "x-example": "<NAME>" + }, + "dimension": { + "type": "integer", + "description": "Embedding dimensions.", + "default": null, + "x-example": 1, + "format": "int32" + }, + "permissions": { + "type": "array", + "description": "An array of permission strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "default": null, + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } + }, + "documentSecurity": { + "type": "boolean", + "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).", + "default": false, + "x-example": false + }, + "enabled": { + "type": "boolean", + "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.", + "default": true, + "x-example": false } }, "required": [ - "prefs" + "name" ] } } ] + }, + "delete": { + "summary": "Delete collection", + "operationId": "vectorDBDeleteCollection", + "consumes": [ + "application\/json" + ], + "produces": [], + "tags": [ + "vectorDB" + ], + "description": false, + "responses": { + "204": { + "description": "No content" + } + }, + "deprecated": false, + "x-appwrite": { + "method": "deleteCollection", + "group": "collections", + "weight": 437, + "cookies": false, + "type": "", + "demo": "vectordb\/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, + "auth": { + "Project": [], + "Key": [] + } + }, + "security": [ + { + "Project": [], + "Key": [] + } + ], + "parameters": [ + { + "name": "databaseId", + "description": "Database ID.", + "required": true, + "type": "string", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", + "in": "path" + } + ] } }, - "\/users\/{userId}\/sessions": { + "\/vectordb\/{databaseId}\/collections\/{collectionId}\/documents": { "get": { - "summary": "List user sessions", - "operationId": "usersListSessions", + "summary": "List documents", + "operationId": "vectorDBListDocuments", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "users" + "vectorDB" ], - "description": "Get the user sessions list by its unique ID.", + "description": false, "responses": { "200": { - "description": "Sessions List", + "description": "Documents List", "schema": { - "$ref": "#\/definitions\/sessionList" + "$ref": "#\/definitions\/documentList" } } }, "deprecated": false, "x-appwrite": { - "method": "listSessions", - "group": "sessions", - "weight": 133, + "method": "listDocuments", + "group": "documents", + "weight": 449, "cookies": false, "type": "", - "demo": "users\/list-sessions.md", + "demo": "vectordb\/list-documents.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.read", + "scope": "documents.read", "platforms": [ "console", + "client", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-user-sessions.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", "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, + "type": "array", + "collectionFormat": "multi", + "items": { + "type": "string" + }, + "default": [], + "in": "query" + }, + { + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", + "required": false, + "type": "string", + "x-example": "<TRANSACTION_ID>", + "in": "query" + }, { "name": "total", "description": "When set to false, the total count returned will be 0 and will not be calculated.", @@ -40123,12 +45590,22 @@ "x-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, + "type": "integer", + "format": "int32", + "x-example": 0, + "default": 0, + "in": "query" } ] }, "post": { - "summary": "Create session", - "operationId": "usersCreateSession", + "summary": "Create document", + "operationId": "vectorDBCreateDocument", "consumes": [ "application\/json" ], @@ -40136,93 +45613,244 @@ "application\/json" ], "tags": [ - "users" + "vectorDB" ], - "description": "Creates a session for a user. Returns an immediately usable session object.\n\nIf you want to generate a token for a custom authentication flow, use the [POST \/users\/{userId}\/tokens](https:\/\/appwrite.io\/docs\/server\/users#createToken) endpoint.", + "description": false, "responses": { "201": { - "description": "Session", + "description": "Document", "schema": { - "$ref": "#\/definitions\/session" + "$ref": "#\/definitions\/document" } } }, "deprecated": false, "x-appwrite": { - "method": "createSession", - "group": "sessions", - "weight": 154, + "method": "createDocument", + "group": "documents", + "weight": 445, "cookies": false, "type": "", - "demo": "users\/create-session.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "demo": "vectordb\/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, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-session.md", + "methods": [ + { + "name": "createDocument", + "namespace": "vectorDB", + "desc": "Create document", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions" + ], + "required": [ + "databaseId", + "collectionId", + "documentId", + "data" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/document" + } + ], + "description": "", + "demo": "vectordb\/create-document.md", + "public": true + }, + { + "name": "createDocuments", + "namespace": "vectorDB", + "desc": "Create documents", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documents" + ], + "required": [ + "databaseId", + "collectionId", + "documents" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/documentList" + } + ], + "description": "", + "demo": "vectordb\/create-documents.md", + "public": true + } + ], "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "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.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<DATABASE_ID>", + "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, + "type": "string", + "x-example": "<COLLECTION_ID>", "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "documentId": { + "type": "string", + "description": "Document ID. Choose a custom ID or generate a random ID with `ID.unique()`. Valid chars are a-z, A-Z, 0-9, period, hyphen, and underscore. Can't start with a special char. Max length is 36 chars.", + "default": "", + "x-example": "<DOCUMENT_ID>" + }, + "data": { + "type": "object", + "description": "Document data as JSON object.", + "default": [], + "x-example": "{\"embeddings\": [0.12, -0.55, 0.88, 1.02], \"metadata\": {\"key\":\"value\"} }" + }, + "permissions": { + "type": "array", + "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).", + "default": null, + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } + }, + "documents": { + "type": "array", + "description": "Array of documents data as JSON objects.", + "default": [], + "x-example": null, + "items": { + "type": "object" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "default": null, + "x-example": "<TRANSACTION_ID>" + } + } + } } ] }, - "delete": { - "summary": "Delete user sessions", - "operationId": "usersDeleteSessions", + "put": { + "summary": "Upsert documents", + "operationId": "vectorDBUpsertDocuments", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ - "users" + "vectorDB" ], - "description": "Delete all user's sessions by using the user's unique ID.", + "description": false, "responses": { - "204": { - "description": "No content" + "201": { + "description": "Documents List", + "schema": { + "$ref": "#\/definitions\/documentList" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteSessions", - "group": "sessions", - "weight": 157, + "method": "upsertDocuments", + "group": "documents", + "weight": 452, "cookies": false, "type": "", - "demo": "users\/delete-sessions.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "demo": "vectordb\/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, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-user-sessions.md", + "methods": [ + { + "name": "upsertDocuments", + "namespace": "vectorDB", + "desc": "", + "auth": { + "Project": [], + "Key": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documents", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documents" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/documentList" + } + ], + "description": "", + "demo": "vectordb\/upsert-documents.md", + "public": true + } + ], "auth": { "Project": [], "Key": [] @@ -40236,52 +45864,89 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "documents": { + "type": "array", + "description": "Array of document data as JSON objects. May contain partial documents.", + "default": null, + "x-example": null, + "items": { + "type": "object" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "default": null, + "x-example": "<TRANSACTION_ID>" + } + }, + "required": [ + "documents" + ] + } } ] - } - }, - "\/users\/{userId}\/sessions\/{sessionId}": { - "delete": { - "summary": "Delete user session", - "operationId": "usersDeleteSession", + }, + "patch": { + "summary": "Update documents", + "operationId": "vectorDBUpdateDocuments", "consumes": [ "application\/json" ], - "produces": [], + "produces": [ + "application\/json" + ], "tags": [ - "users" + "vectorDB" ], - "description": "Delete a user sessions by its unique ID.", + "description": false, "responses": { - "204": { - "description": "No content" + "200": { + "description": "Documents List", + "schema": { + "$ref": "#\/definitions\/documentList" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteSession", - "group": "sessions", - "weight": 156, + "method": "updateDocuments", + "group": "documents", + "weight": 451, "cookies": false, "type": "", - "demo": "users\/delete-session.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "demo": "vectordb\/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, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-user-session.md", "auth": { "Project": [], "Key": [] @@ -40295,28 +45960,56 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "sessionId", - "description": "Session ID.", + "name": "collectionId", + "description": "Collection ID.", "required": true, "type": "string", - "x-example": "<SESSION_ID>", + "x-example": "<COLLECTION_ID>", "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "data": { + "type": "object", + "description": "Document data as JSON object. Include only attribute and value pairs to be updated.", + "default": [], + "x-example": "{}" + }, + "queries": { + "type": "array", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "default": null, + "x-example": "<TRANSACTION_ID>" + } + } + } } ] - } - }, - "\/users\/{userId}\/status": { - "patch": { - "summary": "Update user status", - "operationId": "usersUpdateStatus", + }, + "delete": { + "summary": "Delete documents", + "operationId": "vectorDBDeleteDocuments", "consumes": [ "application\/json" ], @@ -40324,36 +46017,35 @@ "application\/json" ], "tags": [ - "users" + "vectorDB" ], - "description": "Update the user status by its unique ID. Use this endpoint as an alternative to deleting a user if you want to keep user's ID reserved.", + "description": false, "responses": { "200": { - "description": "User", + "description": "Documents List", "schema": { - "$ref": "#\/definitions\/user" + "$ref": "#\/definitions\/documentList" } } }, "deprecated": false, "x-appwrite": { - "method": "updateStatus", - "group": "users", - "weight": 138, + "method": "deleteDocuments", + "group": "documents", + "weight": 453, "cookies": false, "type": "", - "demo": "users\/update-status.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "demo": "vectordb\/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, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-status.md", "auth": { "Project": [], "Key": [] @@ -40367,11 +46059,19 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", "in": "path" }, { @@ -40380,83 +46080,107 @@ "schema": { "type": "object", "properties": { - "status": { - "type": "boolean", - "description": "User Status. To activate the user pass `true` and to block the user pass `false`.", + "queries": { + "type": "array", + "description": "Array of query strings generated using the Query class provided by the SDK. [Learn more about queries](https:\/\/appwrite.io\/docs\/queries). Maximum of 100 queries are allowed, each 4096 characters long.", + "default": [], + "x-example": null, + "items": { + "type": "string" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", "default": null, - "x-example": false + "x-example": "<TRANSACTION_ID>" } - }, - "required": [ - "status" - ] + } } } ] } }, - "\/users\/{userId}\/targets": { + "\/vectordb\/{databaseId}\/collections\/{collectionId}\/documents\/{documentId}": { "get": { - "summary": "List user targets", - "operationId": "usersListTargets", + "summary": "Get document", + "operationId": "vectorDBGetDocument", "consumes": [], "produces": [ "application\/json" ], "tags": [ - "users" + "vectorDB" ], - "description": "List the messaging targets that are associated with a user.", + "description": false, "responses": { "200": { - "description": "Target list", + "description": "Document", "schema": { - "$ref": "#\/definitions\/targetList" + "$ref": "#\/definitions\/document" } } }, "deprecated": false, "x-appwrite": { - "method": "listTargets", - "group": "targets", - "weight": 136, + "method": "getDocument", + "group": "documents", + "weight": 448, "cookies": false, "type": "", - "demo": "users\/list-targets.md", + "demo": "vectordb\/get-document.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "targets.read", + "scope": "documents.read", "platforms": [ - "server", - "console" + "console", + "client", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/list-user-targets.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "type": "string", + "x-example": "<DOCUMENT_ID>", "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: userId, providerId, identifier, providerType", + "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, "type": "array", "collectionFormat": "multi", @@ -40467,19 +46191,18 @@ "in": "query" }, { - "name": "total", - "description": "When set to false, the total count returned will be 0 and will not be calculated.", + "name": "transactionId", + "description": "Transaction ID to read uncommitted changes within the transaction.", "required": false, - "type": "boolean", - "x-example": false, - "default": true, + "type": "string", + "x-example": "<TRANSACTION_ID>", "in": "query" } ] }, - "post": { - "summary": "Create user target", - "operationId": "usersCreateTarget", + "put": { + "summary": "Upsert a document", + "operationId": "vectorDBUpsertDocument", "consumes": [ "application\/json" ], @@ -40487,54 +46210,105 @@ "application\/json" ], "tags": [ - "users" + "vectorDB" ], - "description": "Create a messaging target.", + "description": false, "responses": { "201": { - "description": "Target", + "description": "Document", "schema": { - "$ref": "#\/definitions\/target" + "$ref": "#\/definitions\/document" } } }, "deprecated": false, "x-appwrite": { - "method": "createTarget", - "group": "targets", - "weight": 128, + "method": "upsertDocument", + "group": "documents", + "weight": 447, "cookies": false, "type": "", - "demo": "users\/create-target.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "targets.write", + "demo": "vectordb\/upsert-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", "platforms": [ - "server", - "console" + "console", + "client", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-target.md", + "methods": [ + { + "name": "upsertDocument", + "namespace": "vectorDB", + "desc": "", + "auth": { + "Project": [], + "Session": [] + }, + "parameters": [ + "databaseId", + "collectionId", + "documentId", + "data", + "permissions", + "transactionId" + ], + "required": [ + "databaseId", + "collectionId", + "documentId" + ], + "responses": [ + { + "code": 201, + "model": "#\/definitions\/document" + } + ], + "description": "", + "demo": "vectordb\/upsert-document.md", + "public": true + } + ], "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID.", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "type": "string", + "x-example": "<DOCUMENT_ID>", "in": "path" }, { @@ -40543,189 +46317,213 @@ "schema": { "type": "object", "properties": { - "targetId": { - "type": "string", - "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.", - "default": null, - "x-example": "<TARGET_ID>" + "data": { + "type": "object", + "description": "Document data as JSON object. Include all required fields of the document to be created or updated.", + "default": [], + "x-example": "{}" }, - "providerType": { - "type": "string", - "description": "The target provider type. Can be one of the following: `email`, `sms` or `push`.", + "permissions": { + "type": "array", + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", "default": null, - "x-example": "email", - "enum": [ - "email", - "sms", - "push" - ], - "x-enum-name": "MessagingProviderType", - "x-enum-keys": [] + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } }, - "identifier": { + "transactionId": { "type": "string", - "description": "The target identifier (token, email, phone etc.)", + "description": "Transaction ID for staging the operation.", "default": null, - "x-example": "<IDENTIFIER>" - }, - "providerId": { - "type": "string", - "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.", - "default": "", - "x-example": "<PROVIDER_ID>" - }, - "name": { - "type": "string", - "description": "Target name. Max length: 128 chars. For example: My Awesome App Galaxy S23.", - "default": "", - "x-example": "<NAME>" + "x-example": "<TRANSACTION_ID>" } - }, - "required": [ - "targetId", - "providerType", - "identifier" - ] + } } } ] - } - }, - "\/users\/{userId}\/targets\/{targetId}": { - "get": { - "summary": "Get user target", - "operationId": "usersGetTarget", - "consumes": [], + }, + "patch": { + "summary": "Update document", + "operationId": "vectorDBUpdateDocument", + "consumes": [ + "application\/json" + ], "produces": [ "application\/json" ], "tags": [ - "users" + "vectorDB" ], - "description": "Get a user's push notification target by ID.", + "description": false, "responses": { "200": { - "description": "Target", + "description": "Document", "schema": { - "$ref": "#\/definitions\/target" + "$ref": "#\/definitions\/document" } } }, "deprecated": false, "x-appwrite": { - "method": "getTarget", - "group": "targets", - "weight": 132, + "method": "updateDocument", + "group": "documents", + "weight": 446, "cookies": false, "type": "", - "demo": "users\/get-target.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "targets.read", + "demo": "vectordb\/update-document.md", + "rate-limit": 120, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", "platforms": [ - "server", - "console" + "console", + "client", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/get-user-target.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "targetId", - "description": "Target ID.", + "name": "collectionId", + "description": "Collection ID.", "required": true, "type": "string", - "x-example": "<TARGET_ID>", + "x-example": "<COLLECTION_ID>", + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "type": "string", + "x-example": "<DOCUMENT_ID>", "in": "path" + }, + { + "name": "payload", + "in": "body", + "schema": { + "type": "object", + "properties": { + "data": { + "type": "object", + "description": "Document data as JSON object. Include only fields and value pairs to be updated.", + "default": [], + "x-example": "{}" + }, + "permissions": { + "type": "array", + "description": "An array of permissions strings. By default, the current permissions are inherited. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "default": null, + "x-example": "[\"read(\"any\")\"]", + "items": { + "type": "string" + } + }, + "transactionId": { + "type": "string", + "description": "Transaction ID for staging the operation.", + "default": null, + "x-example": "<TRANSACTION_ID>" + } + } + } } ] }, - "patch": { - "summary": "Update user target", - "operationId": "usersUpdateTarget", + "delete": { + "summary": "Delete document", + "operationId": "vectorDBDeleteDocument", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ - "users" + "vectorDB" ], - "description": "Update a messaging target.", + "description": false, "responses": { - "200": { - "description": "Target", - "schema": { - "$ref": "#\/definitions\/target" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updateTarget", - "group": "targets", - "weight": 147, + "method": "deleteDocument", + "group": "documents", + "weight": 450, "cookies": false, "type": "", - "demo": "users\/update-target.md", - "rate-limit": 0, - "rate-time": 3600, - "rate-key": "url:{url},ip:{ip}", - "scope": "targets.write", + "demo": "vectordb\/delete-document.md", + "rate-limit": 60, + "rate-time": 60, + "rate-key": "ip:{ip},method:{method},url:{url},userId:{userId}", + "scope": "documents.write", "platforms": [ - "server", - "console" + "console", + "client", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-target.md", "auth": { "Project": [], - "Key": [] + "Session": [] } }, "security": [ { "Project": [], - "Key": [] + "Session": [], + "Key": [], + "JWT": [] } ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "targetId", - "description": "Target ID.", + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", "required": true, "type": "string", - "x-example": "<TARGET_ID>", + "x-example": "<COLLECTION_ID>", + "in": "path" + }, + { + "name": "documentId", + "description": "Document ID.", + "required": true, + "type": "string", + "x-example": "<DOCUMENT_ID>", "in": "path" }, { @@ -40734,64 +46532,56 @@ "schema": { "type": "object", "properties": { - "identifier": { - "type": "string", - "description": "The target identifier (token, email, phone etc.)", - "default": "", - "x-example": "<IDENTIFIER>" - }, - "providerId": { - "type": "string", - "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.", - "default": "", - "x-example": "<PROVIDER_ID>" - }, - "name": { + "transactionId": { "type": "string", - "description": "Target name. Max length: 128 chars. For example: My Awesome App Galaxy S23.", - "default": "", - "x-example": "<NAME>" + "description": "Transaction ID for staging the operation.", + "default": null, + "x-example": "<TRANSACTION_ID>" } } } } ] - }, - "delete": { - "summary": "Delete user target", - "operationId": "usersDeleteTarget", - "consumes": [ + } + }, + "\/vectordb\/{databaseId}\/collections\/{collectionId}\/indexes": { + "get": { + "summary": "List indexes", + "operationId": "vectorDBListIndexes", + "consumes": [], + "produces": [ "application\/json" ], - "produces": [], "tags": [ - "users" + "vectorDB" ], - "description": "Delete a messaging target.", + "description": false, "responses": { - "204": { - "description": "No content" + "200": { + "description": "Indexes List", + "schema": { + "$ref": "#\/definitions\/indexList" + } } }, "deprecated": false, "x-appwrite": { - "method": "deleteTarget", - "group": "targets", - "weight": 159, + "method": "listIndexes", + "group": "indexes", + "weight": 444, "cookies": false, "type": "", - "demo": "users\/delete-target.md", + "demo": "vectordb\/list-indexes.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "targets.write", + "scope": "collections.read", "platforms": [ - "server", - "console" + "console", + "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/delete-target.md", "auth": { "Project": [], "Key": [] @@ -40805,28 +46595,47 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "targetId", - "description": "Target ID.", + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", "required": true, "type": "string", - "x-example": "<TARGET_ID>", + "x-example": "<COLLECTION_ID>", "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, + "type": "array", + "collectionFormat": "multi", + "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, + "type": "boolean", + "x-example": false, + "default": true, + "in": "query" } ] - } - }, - "\/users\/{userId}\/tokens": { + }, "post": { - "summary": "Create token", - "operationId": "usersCreateToken", + "summary": "Create index", + "operationId": "vectorDBCreateIndex", "consumes": [ "application\/json" ], @@ -40834,36 +46643,35 @@ "application\/json" ], "tags": [ - "users" + "vectorDB" ], - "description": "Returns a token with a secret key for creating a session. Use the user ID and secret and submit a request to the [PUT \/account\/sessions\/token](https:\/\/appwrite.io\/docs\/references\/cloud\/client-web\/account#createSession) endpoint to complete the login process.\n", + "description": false, "responses": { - "201": { - "description": "Token", + "202": { + "description": "Index", "schema": { - "$ref": "#\/definitions\/token" + "$ref": "#\/definitions\/index" } } }, "deprecated": false, "x-appwrite": { - "method": "createToken", - "group": "sessions", - "weight": 155, + "method": "createIndex", + "group": "indexes", + "weight": 441, "cookies": false, "type": "", - "demo": "users\/create-token.md", + "demo": "vectordb\/create-index.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "collections.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/create-token.md", "auth": { "Project": [], "Key": [] @@ -40877,11 +46685,19 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<DATABASE_ID>", + "in": "path" + }, + { + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", "in": "path" }, { @@ -40890,67 +46706,110 @@ "schema": { "type": "object", "properties": { - "length": { - "type": "integer", - "description": "Token length in characters. The default length is 6 characters", - "default": 6, - "x-example": 4, - "format": "int32" + "key": { + "type": "string", + "description": "Index Key.", + "default": null, + "x-example": null }, - "expire": { - "type": "integer", - "description": "Token expiration period in seconds. The default expiration is 15 minutes.", - "default": 900, - "x-example": 60, - "format": "int32" + "type": { + "type": "string", + "description": "Index type.", + "default": null, + "x-example": "hnsw_euclidean", + "enum": [ + "hnsw_euclidean", + "hnsw_dot", + "hnsw_cosine", + "object", + "key", + "unique" + ], + "x-enum-name": "VectorIndexType", + "x-enum-keys": [] + }, + "attributes": { + "type": "array", + "description": "Array of attributes to index. Maximum of 100 attributes are allowed, each 32 characters long.", + "default": null, + "x-example": null, + "items": { + "type": "string" + } + }, + "orders": { + "type": "array", + "description": "Array of index orders. Maximum of 100 orders are allowed.", + "default": [], + "x-example": null, + "items": { + "type": "string", + "enum": [ + "asc", + "desc" + ], + "x-enum-name": "OrderBy", + "x-enum-keys": [] + } + }, + "lengths": { + "type": "array", + "description": "Length of index. Maximum of 100", + "default": [], + "x-example": null, + "items": { + "type": "integer" + } } - } + }, + "required": [ + "key", + "type", + "attributes" + ] } } ] } }, - "\/users\/{userId}\/verification": { - "patch": { - "summary": "Update email verification", - "operationId": "usersUpdateEmailVerification", - "consumes": [ - "application\/json" - ], + "\/vectordb\/{databaseId}\/collections\/{collectionId}\/indexes\/{key}": { + "get": { + "summary": "Get index", + "operationId": "vectorDBGetIndex", + "consumes": [], "produces": [ "application\/json" ], "tags": [ - "users" + "vectorDB" ], - "description": "Update the user email verification status by its unique ID.", + "description": false, "responses": { "200": { - "description": "User", + "description": "Index", "schema": { - "$ref": "#\/definitions\/user" + "$ref": "#\/definitions\/index" } } }, "deprecated": false, "x-appwrite": { - "method": "updateEmailVerification", - "group": "users", - "weight": 145, + "method": "getIndex", + "group": "indexes", + "weight": 442, "cookies": false, "type": "", - "demo": "users\/update-email-verification.md", + "demo": "vectordb\/get-index.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "collections.read", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-email-verification.md", "auth": { "Project": [], "Key": [] @@ -40964,75 +46823,64 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "emailVerification": { - "type": "boolean", - "description": "User email verification status.", - "default": null, - "x-example": false - } - }, - "required": [ - "emailVerification" - ] - } + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", + "in": "path" + }, + { + "name": "key", + "description": "Index Key.", + "required": true, + "type": "string", + "in": "path" } ] - } - }, - "\/users\/{userId}\/verification\/phone": { - "patch": { - "summary": "Update phone verification", - "operationId": "usersUpdatePhoneVerification", + }, + "delete": { + "summary": "Delete index", + "operationId": "vectorDBDeleteIndex", "consumes": [ "application\/json" ], - "produces": [ - "application\/json" - ], + "produces": [], "tags": [ - "users" + "vectorDB" ], - "description": "Update the user phone verification status by its unique ID.", + "description": false, "responses": { - "200": { - "description": "User", - "schema": { - "$ref": "#\/definitions\/user" - } + "204": { + "description": "No content" } }, "deprecated": false, "x-appwrite": { - "method": "updatePhoneVerification", - "group": "users", - "weight": 140, + "method": "deleteIndex", + "group": "indexes", + "weight": 443, "cookies": false, "type": "", - "demo": "users\/update-phone-verification.md", + "demo": "vectordb\/delete-index.md", "rate-limit": 0, "rate-time": 3600, "rate-key": "url:{url},ip:{ip}", - "scope": "users.write", + "scope": "collections.write", "platforms": [ "console", "server" ], "packaging": false, "public": true, - "edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/master\/docs\/references\/users\/update-user-phone-verification.md", "auth": { "Project": [], "Key": [] @@ -41046,30 +46894,27 @@ ], "parameters": [ { - "name": "userId", - "description": "User ID.", + "name": "databaseId", + "description": "Database ID.", "required": true, "type": "string", - "x-example": "<USER_ID>", + "x-example": "<DATABASE_ID>", "in": "path" }, { - "name": "payload", - "in": "body", - "schema": { - "type": "object", - "properties": { - "phoneVerification": { - "type": "boolean", - "description": "User phone verification status.", - "default": null, - "x-example": false - } - }, - "required": [ - "phoneVerification" - ] - } + "name": "collectionId", + "description": "Collection ID. You can create a new collection using the Database service [server integration](https:\/\/appwrite.io\/docs\/server\/databases#databasesCreateCollection).", + "required": true, + "type": "string", + "x-example": "<COLLECTION_ID>", + "in": "path" + }, + { + "name": "key", + "description": "Index Key.", + "required": true, + "type": "string", + "in": "path" } ] } @@ -42229,6 +48074,64 @@ "specifications": "" } }, + "vectordbCollectionList": { + "description": "VectorDB Collections List", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of collections that matched your query.", + "x-example": 5, + "format": "int32" + }, + "collections": { + "type": "array", + "description": "List of collections.", + "items": { + "type": "object", + "$ref": "#\/definitions\/vectordbCollection" + }, + "x-example": "" + } + }, + "required": [ + "total", + "collections" + ], + "example": { + "total": 5, + "collections": "" + } + }, + "embeddingList": { + "description": "Embedding list", + "type": "object", + "properties": { + "total": { + "type": "integer", + "description": "Total number of embeddings that matched your query.", + "x-example": 5, + "format": "int32" + }, + "embeddings": { + "type": "array", + "description": "List of embeddings.", + "items": { + "type": "object", + "$ref": "#\/definitions\/embedding" + }, + "x-example": "" + } + }, + "required": [ + "total", + "embeddings" + ], + "example": { + "total": 5, + "embeddings": "" + } + }, "database": { "description": "Database", "type": "object", @@ -42264,7 +48167,8 @@ "x-example": "legacy", "enum": [ "legacy", - "tablesdb" + "tablesdb", + "documentsdb" ] }, "policies": { @@ -42307,6 +48211,57 @@ "archives": {} } }, + "embedding": { + "description": "Embedding", + "type": "object", + "properties": { + "model": { + "type": "string", + "description": "Embedding model used to generate embeddings.", + "x-example": "embeddinggemma" + }, + "dimension": { + "type": "integer", + "description": "Number of dimensions for each embedding vector.", + "x-example": 768, + "format": "int32" + }, + "embedding": { + "type": "array", + "description": "Embedding vector values. If an error occurs, this will be an empty array.", + "items": { + "type": "number", + "format": "double" + }, + "x-example": [ + 0.01, + 0.02, + 0.03 + ] + }, + "error": { + "type": "string", + "description": "Error message if embedding generation fails. Empty string if no error.", + "x-example": "Error message" + } + }, + "required": [ + "model", + "dimension", + "embedding", + "error" + ], + "example": { + "model": "embeddinggemma", + "dimension": 768, + "embedding": [ + 0.01, + 0.02, + 0.03 + ], + "error": "Error message" + } + }, "collection": { "description": "Collection", "type": "object", @@ -43728,30 +49683,322 @@ "x-example": "2020-10-15T06:38:00.000+00:00" }, "default": { - "type": "array", + "type": "array", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "x-example": [ + [ + [ + 0, + 0 + ], + [ + 0, + 10 + ] + ], + [ + [ + 10, + 10 + ], + [ + 0, + 0 + ] + ] + ], + "x-nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": [ + [ + [ + 0, + 0 + ], + [ + 0, + 10 + ] + ], + [ + [ + 10, + 10 + ], + [ + 0, + 0 + ] + ] + ] + } + }, + "attributeVarchar": { + "description": "AttributeVarchar", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "x-example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "x-example": "string" + }, + "status": { + "type": "string", + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "x-example": "available", + "enum": [ + "available", + "processing", + "deleting", + "stuck", + "failed" + ], + "x-enum-name": "AttributeStatus" + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "x-example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "x-example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "x-example": false, + "x-nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "size": { + "type": "integer", + "description": "Attribute size.", + "x-example": 128, + "format": "int32" + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "x-example": "default", + "x-nullable": true + }, + "encrypt": { + "type": "boolean", + "description": "Defines whether this attribute is encrypted or not.", + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt", + "size" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "size": 128, + "default": "default", + "encrypt": false + } + }, + "attributeText": { + "description": "AttributeText", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "x-example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "x-example": "string" + }, + "status": { + "type": "string", + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "x-example": "available", + "enum": [ + "available", + "processing", + "deleting", + "stuck", + "failed" + ], + "x-enum-name": "AttributeStatus" + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "x-example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "x-example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "x-example": false, + "x-nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "string", + "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", + "x-example": "default", + "x-nullable": true + }, + "encrypt": { + "type": "boolean", + "description": "Defines whether this attribute is encrypted or not.", + "x-example": false, + "x-nullable": true + } + }, + "required": [ + "key", + "type", + "status", + "error", + "required", + "$createdAt", + "$updatedAt" + ], + "example": { + "key": "fullName", + "type": "string", + "status": "available", + "error": "string", + "required": true, + "array": false, + "$createdAt": "2020-10-15T06:38:00.000+00:00", + "$updatedAt": "2020-10-15T06:38:00.000+00:00", + "default": "default", + "encrypt": false + } + }, + "attributeMediumtext": { + "description": "AttributeMediumtext", + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "Attribute Key.", + "x-example": "fullName" + }, + "type": { + "type": "string", + "description": "Attribute type.", + "x-example": "string" + }, + "status": { + "type": "string", + "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", + "x-example": "available", + "enum": [ + "available", + "processing", + "deleting", + "stuck", + "failed" + ], + "x-enum-name": "AttributeStatus" + }, + "error": { + "type": "string", + "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", + "x-example": "string" + }, + "required": { + "type": "boolean", + "description": "Is attribute required?", + "x-example": true + }, + "array": { + "type": "boolean", + "description": "Is attribute an array?", + "x-example": false, + "x-nullable": true + }, + "$createdAt": { + "type": "string", + "description": "Attribute creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "$updatedAt": { + "type": "string", + "description": "Attribute update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" + }, + "default": { + "type": "string", "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "x-example": [ - [ - [ - 0, - 0 - ], - [ - 0, - 10 - ] - ], - [ - [ - 10, - 10 - ], - [ - 0, - 0 - ] - ] - ], + "x-example": "default", + "x-nullable": true + }, + "encrypt": { + "type": "boolean", + "description": "Defines whether this attribute is encrypted or not.", + "x-example": false, "x-nullable": true } }, @@ -43773,32 +50020,12 @@ "array": false, "$createdAt": "2020-10-15T06:38:00.000+00:00", "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "default": [ - [ - [ - 0, - 0 - ], - [ - 0, - 10 - ] - ], - [ - [ - 10, - 10 - ], - [ - 0, - 0 - ] - ] - ] + "default": "default", + "encrypt": false } }, - "attributeVarchar": { - "description": "AttributeVarchar", + "attributeLongtext": { + "description": "AttributeLongtext", "type": "object", "properties": { "key": { @@ -43850,12 +50077,6 @@ "description": "Attribute update date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "size": { - "type": "integer", - "description": "Attribute size.", - "x-example": 128, - "format": "int32" - }, "default": { "type": "string", "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", @@ -43876,8 +50097,7 @@ "error", "required", "$createdAt", - "$updatedAt", - "size" + "$updatedAt" ], "example": { "key": "fullName", @@ -43888,101 +50108,137 @@ "array": false, "$createdAt": "2020-10-15T06:38:00.000+00:00", "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "size": 128, "default": "default", "encrypt": false } }, - "attributeText": { - "description": "AttributeText", + "vectordbCollection": { + "description": "VectorDB Collection", "type": "object", "properties": { - "key": { + "$id": { "type": "string", - "description": "Attribute Key.", - "x-example": "fullName" + "description": "Collection ID.", + "x-example": "5e5ea5c16897e" }, - "type": { + "$createdAt": { "type": "string", - "description": "Attribute type.", - "x-example": "string" + "description": "Collection creation date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "status": { + "$updatedAt": { "type": "string", - "description": "Attribute status. Possible values: `available`, `processing`, `deleting`, `stuck`, or `failed`", - "x-example": "available", - "enum": [ - "available", - "processing", - "deleting", - "stuck", - "failed" - ], - "x-enum-name": "AttributeStatus" + "description": "Collection update date in ISO 8601 format.", + "x-example": "2020-10-15T06:38:00.000+00:00" }, - "error": { + "$permissions": { + "type": "array", + "description": "Collection permissions. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "items": { + "type": "string" + }, + "x-example": [ + "read(\"any\")" + ] + }, + "databaseId": { "type": "string", - "description": "Error message. Displays error generated on failure of creating or deleting an attribute.", - "x-example": "string" + "description": "Database ID.", + "x-example": "5e5ea5c16897e" }, - "required": { + "name": { + "type": "string", + "description": "Collection name.", + "x-example": "My Collection" + }, + "enabled": { "type": "boolean", - "description": "Is attribute required?", - "x-example": true + "description": "Collection enabled. Can be 'enabled' or 'disabled'. When disabled, the collection is inaccessible to users, but remains accessible to Server SDKs using API keys.", + "x-example": false }, - "array": { + "documentSecurity": { "type": "boolean", - "description": "Is attribute an array?", - "x-example": false, - "x-nullable": true + "description": "Whether document-level permissions are enabled. [Learn more about permissions](https:\/\/appwrite.io\/docs\/permissions).", + "x-example": true }, - "$createdAt": { - "type": "string", - "description": "Attribute creation date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "attributes": { + "type": "array", + "description": "Collection attributes.", + "items": { + "x-anyOf": [ + { + "$ref": "#\/definitions\/attributeObject" + }, + { + "$ref": "#\/definitions\/attributeVector" + } + ] + }, + "x-example": {} }, - "$updatedAt": { - "type": "string", - "description": "Attribute update date in ISO 8601 format.", - "x-example": "2020-10-15T06:38:00.000+00:00" + "indexes": { + "type": "array", + "description": "Collection indexes.", + "items": { + "type": "object", + "$ref": "#\/definitions\/index" + }, + "x-example": {} }, - "default": { - "type": "string", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "x-example": "default", - "x-nullable": true + "bytesMax": { + "type": "integer", + "description": "Maximum document size in bytes. Returns 0 when no limit applies.", + "x-example": 65535, + "format": "int32" }, - "encrypt": { - "type": "boolean", - "description": "Defines whether this attribute is encrypted or not.", - "x-example": false, - "x-nullable": true + "bytesUsed": { + "type": "integer", + "description": "Currently used document size in bytes based on defined attributes.", + "x-example": 1500, + "format": "int32" + }, + "dimension": { + "type": "integer", + "description": "Embedding dimension.", + "x-example": 1536, + "format": "int32" } }, "required": [ - "key", - "type", - "status", - "error", - "required", + "$id", "$createdAt", - "$updatedAt" + "$updatedAt", + "$permissions", + "databaseId", + "name", + "enabled", + "documentSecurity", + "attributes", + "indexes", + "bytesMax", + "bytesUsed", + "dimension" ], "example": { - "key": "fullName", - "type": "string", - "status": "available", - "error": "string", - "required": true, - "array": false, + "$id": "5e5ea5c16897e", "$createdAt": "2020-10-15T06:38:00.000+00:00", "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "default": "default", - "encrypt": false + "$permissions": [ + "read(\"any\")" + ], + "databaseId": "5e5ea5c16897e", + "name": "My Collection", + "enabled": false, + "documentSecurity": true, + "attributes": {}, + "indexes": {}, + "bytesMax": 65535, + "bytesUsed": 1500, + "dimension": 1536 } }, - "attributeMediumtext": { - "description": "AttributeMediumtext", + "attributeObject": { + "description": "AttributeObject", "type": "object", "properties": { "key": { @@ -44033,18 +50289,6 @@ "type": "string", "description": "Attribute update date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" - }, - "default": { - "type": "string", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "x-example": "default", - "x-nullable": true - }, - "encrypt": { - "type": "boolean", - "description": "Defines whether this attribute is encrypted or not.", - "x-example": false, - "x-nullable": true } }, "required": [ @@ -44064,13 +50308,11 @@ "required": true, "array": false, "$createdAt": "2020-10-15T06:38:00.000+00:00", - "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "default": "default", - "encrypt": false + "$updatedAt": "2020-10-15T06:38:00.000+00:00" } }, - "attributeLongtext": { - "description": "AttributeLongtext", + "attributeVector": { + "description": "AttributeVector", "type": "object", "properties": { "key": { @@ -44122,17 +50364,11 @@ "description": "Attribute update date in ISO 8601 format.", "x-example": "2020-10-15T06:38:00.000+00:00" }, - "default": { - "type": "string", - "description": "Default value for attribute when not provided. Cannot be set when attribute is required.", - "x-example": "default", - "x-nullable": true - }, - "encrypt": { - "type": "boolean", - "description": "Defines whether this attribute is encrypted or not.", - "x-example": false, - "x-nullable": true + "size": { + "type": "integer", + "description": "Vector dimensions.", + "x-example": 1536, + "format": "int32" } }, "required": [ @@ -44142,7 +50378,8 @@ "error", "required", "$createdAt", - "$updatedAt" + "$updatedAt", + "size" ], "example": { "key": "fullName", @@ -44153,8 +50390,7 @@ "array": false, "$createdAt": "2020-10-15T06:38:00.000+00:00", "$updatedAt": "2020-10-15T06:38:00.000+00:00", - "default": "default", - "encrypt": false + "size": 1536 } }, "table": { @@ -46205,8 +52441,8 @@ }, "$sequence": { "type": "integer", - "description": "Row automatically incrementing ID.", - "x-example": 1, + "description": "Row sequence ID.", + "x-example": "1", "format": "int32", "readOnly": true }, @@ -46255,7 +52491,7 @@ ], "example": { "$id": "5e5ea5c16897e", - "$sequence": 1, + "$sequence": "1", "$tableId": "5e5ea5c15117e", "$databaseId": "5e5ea5c15117e", "$createdAt": "2020-10-15T06:38:00.000+00:00", @@ -46276,8 +52512,8 @@ }, "$sequence": { "type": "integer", - "description": "Document automatically incrementing ID.", - "x-example": 1, + "description": "Document sequence ID.", + "x-example": "1", "format": "int32", "readOnly": true }, @@ -46326,7 +52562,7 @@ ], "example": { "$id": "5e5ea5c16897e", - "$sequence": 1, + "$sequence": "1", "$collectionId": "5e5ea5c15117e", "$databaseId": "5e5ea5c15117e", "$createdAt": "2020-10-15T06:38:00.000+00:00",